2007-09-18 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
2
3         * class.c (mono_class_init): Move the code that sets up class->methods to 
4         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
5
6         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
7         canonical instance of an inflated generic signature.
8         (mono_type_create_from_typespec): Remove an invalid free.
9
10         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
11
12 2007-09-18  Marek Habersack  <mhabersack@novell.com>
13
14         * domain-internals.h: added a declaration of the
15         mono_assembly_load_full_nosearch internal function.
16
17         * assembly.c (mono_assembly_load_with_partial_name): use
18         mono_try_assembly_resolve return value properly.
19         (mono_assembly_load_full_nosearch): copied the function body from
20         mono_assembly_load_full, without the code to invoke assembly
21         search hooks.
22         (mono_assembly_load_full): calls the above new function and if the
23         assembly is not resolved, invokes the search hooks.
24
25         * appdomain.c (mono_runtime_init): restore the global postload
26         assembly search handlers.
27
28 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
29
30         * class.c (mono_class_init): Make sure class->methods and class->properties
31         are never NULL in the generics case.
32
33         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
34
35 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
36
37         * metadata.c (free_generic_class): Disable some code to fix the build.
38
39         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
40
41         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
42         from the image mempool.
43
44         * metadata.c (free_generic_class): Free more data from the inflated class.
45
46         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
47
48         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
49         mempool.
50         (mono_type_create_from_typespec): Ditto.
51
52         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
53         MonoImage to the caller.
54         (mono_init_internal): Save the opened image in a global variable.
55         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
56
57         * reflection.c (resolve_object): Fix a leak.
58
59         * metadata.c: Fix the freeing of data in the generics caches.
60         
61         * metadata.c (free_generic_inst): Comment this out to fix the build.
62         (free_generic_class): Ditto.
63
64         * metadata.c: Free cached generic methods, instantinations and classes when
65         they are removed from the caches.
66         (mono_metadata_free_type): Free the type itself.
67
68         * class.c: Free the result of mono_class_inflate_generic_type () in a few
69         places.
70
71 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
72
73         * boehm-gc.c: restrict managed allocs to __thread supporting
74         architectures.
75
76 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
77
78         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
79         (mono_generic_class_get_class): Fix a leak.
80
81         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
82         mono_metadata_free_type ().
83         (mono_metadata_inflate_generic_inst): Fix a leak.
84
85 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
86
87         * mono-debug.c (free_header_data): Fix a leak missed earlier.
88
89         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
90         mempool.
91
92         * mono-debug.c (mono_debug_close_image): Fix call to 
93         g_hash_table_remove ().
94
95 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
96
97         * icall-def.h: redirect all the string ctor to the managed
98         CreateString () methods.
99         * string-icalls.c, string-icalls.h: removed dead code for string
100         ctors and icalls.
101
102 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
103
104         * mono-debug.c: Fix memory leaks.
105
106 2007-09-14  Jonathan Chambers <joncham@gmail.com>
107
108         * threads-types.h: Implement mono_hazard_pointer_set and 
109         mono_hazard_pointer_clear macros using do/while(0) to fix
110         compilation with MSVC.
111         
112         Code is contributed under MIT/X11 license.
113
114 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
115
116         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
117         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
118
119 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
120
121         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
122         icalls.
123
124 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
125
126         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
127         managed-code allocated as well.
128
129 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
130
131         * class.c (mono_class_is_assignable_from): Add support for generic variance.
132
133 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
134
135         * boehm-gc.c: fixed the build after the AOT changes.
136
137 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
138
139         * wrapper-types.h: Add an ALLOC wrapper type.
140
141         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
142         reference managed allocator methods.
143
144 2007-09-12  Marek Safar  <marek.safar@gmail.com>
145
146         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
147         of Type array and not MonoType, a fix suggested by Hari.
148         
149 2007-09-12  Jonathan Chambers <joncham@gmail.com>
150
151         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
152         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
153         
154         Code is contributed under MIT/X11 license.
155
156 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
157
158         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
159
160 2007-09-12  Marek Habersack  <mhabersack@novell.com>
161
162         * image.c (do_mono_image_open): if assembly file fails to open and
163         MONO_IOMAP is in effect, try to find the path in a
164         case-insensitive way.
165
166         * appdomain.c (mono_runtime_init): do not install postload hooks -
167         tests show that MS.NET doesn't use anything of that sort to
168         trigger the AppDomain.AssemblyResolve event.
169         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
170         made non-static.
171         (mono_runtime_init): init portability helpers here.
172
173         * assembly.c (mono_assembly_load_with_partial_name): if other   
174         attempts fail, trigger the AppDomain.AssemblyResolve event handler
175         to resolve the assembly.
176
177         * domain-internals.h: added mono_try_assembly_resolve and marked
178         it as internal.
179
180 2007-09-11  Jb Evain  <jbevain@novell.com>
181
182         * object-internals.h (MonoReflectionDynamicMethod): add
183         a `MonoReflectionType *owner` field. The owner is used
184         * reflection.c:
185         (mono_reflection_create_dynamic_method): use the owner of the dynamic
186         method as the class declaring the dynamic method.
187         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
188         dynamic method to the declaring type of the methodbuilder.
189
190 2007-09-11  Mark Probst  <mark.probst@gmail.com>
191
192         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
193         rules for calling methods via reflection.
194
195 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
196
197         * reflection.c (resolve_object): Add support for MonoGenericClass. 
198         Inflate MonoType's.
199
200 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
201
202         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
203         provide a managed method that does fast allocations without needing
204         a managed->unmanaged transition. Boehm GC implementation currently
205         enabled for ptrfree objects on sane architectures.
206
207 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
208
209         * marshal.c, marshal.h: exported a couple of useful functions and
210         added mono_mb_get_label () to easily handle backward branches.
211
212 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
213
214         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
215
216 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
217
218         * loader.c (find_method): Fixed the regression introduced while
219         fixing bug #81466.
220
221 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
222
223         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
224         well.
225         
226         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
227         icall.c reflection.c: Pass a MonoGenericContext argument to 
228         mono_lookup_dynamic_token ().
229
230         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
231         #82744.
232         
233 2007-09-09  Robert Jordan  <robertj@gmx.net>
234
235         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
236         for generic methods.
237
238         * object.c (mono_object_get_virtual_method): Handle generic methods.
239         Fixes bug #78882.
240
241         Code is contributed under MIT/X11 license.
242
243 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
244
245         * image.c: fix locking in mono_image_load_file_for_image ().
246
247 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
248
249         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
250         used only as a cache: added an icall to fill it.
251
252 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
253
254         * reflection.h: exposed mono_reflection_free_type_info
255         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
256         since mono_reflection_bind_generic_parameters makes a copy of it.
257         * reflection.c (free_type_info): subinfos should be freed.
258         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
259         made non static.
260         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
261         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
262         this fixes #82695 and #81726.
263    
264
265 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
266
267         * process.h, process.c:  added support for user profile/info in
268           ProcessStartInfo. For now only Windows works.
269
270 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
271
272         * metadata.c: consider the generic arguments when comparing
273         signatures (bug #82614).
274
275 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
276
277         * cil-coff.h, image.c: updated assembly loader to cope with the
278         PE32+ 64 bit file format.
279
280 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
281
282         * assembly.c, class.c, domain.c, loader.c: remove useless
283         inclusion of cil-coff.h.
284
285 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
286
287         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
288         if interface is marked with CoClassAttribute. 
289    
290         Code is contributed under MIT/X11 license.
291
292 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
293
294         * sgen-gc.c: ensure no object from the to space is copied again or finalized
295         if it's seen twice in major collections.
296
297 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
298
299         * sgen-gc.c: big objects are not copied to the gray area, but they
300         need to be considered for scanning, too, if they are brought alive
301         by an object ready for finalizations or a survived one.
302
303 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
304
305         * sgen-gc.c: properly account the number of disappearing links when
306         they are nullified.
307
308 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
309
310         * sgen-gc.c: share the code to scan the registered roots between the
311         different types of collections.
312
313 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
314
315         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
316
317 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
318
319         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
320         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
321
322 2007-08-28  Mark Probst  <mark.probst@gmail.com>
323
324         * security-manager.c (mono_security_manager_get_methods):
325         LinkDemandSecurityException now has 2 arguments instead of 3.
326
327 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
328
329         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
330         platforms which need it.
331
332 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
333
334         * sgen-gc.c: unregister thread data structures with a pthread_key_t
335         dtor.
336
337 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
338
339         * threads.c: free the thread static data on thread exit.
340
341 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
342
343         * class.c: walk the hierarchy to find the generic definition for
344         a class (fixes runtime part of bug #82498).
345
346 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
347
348         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
349         ...
350
351         * image.c (mono_image_close): Here. Hopefully fixes #82510.
352
353 2007-08-24  Mark Probst  <mark.probst@gmail.com>
354
355         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
356
357 2007-08-24  Robert Jordan  <robertj@gmx.net>
358
359         * appdomain.c: don't perform the ':'->';' substitution on Win32.
360
361 2007-08-24  Jb Evain  <jbevain@novell.com>
362
363         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
364         for byref types.
365
366 2007-08-24  Mark Probst  <mark.probst@gmail.com>
367
368         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
369         #82286.
370
371 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
372
373         * assembly.c: Fix a warning.
374         
375 2007-08-23  Marek Habersack  <mhabersack@novell.com>
376
377         * appdomain.c: parse the <runtime> section looking for the probing
378         element with the 'privatePath' attribute, which sets additional
379         directories in which the runtime should look for assemblies.
380
381 2007-08-23  Robert Jordan  <robertj@gmx.net>
382
383         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
384         Fixes #82499.
385
386 2007-08-23  Martin Baulig  <martin@ximian.com>
387
388         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
389         _mono_debug_init_corlib() and remove it from the header file.
390
391 2007-08-23  Martin Baulig  <martin@ximian.com>
392
393         * mono-debug-debugger.c
394         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
395         don't notify the debugger about it.
396
397         * mono-debug-debugger.h
398         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
399
400 2007-08-23  Robert Jordan  <robertj@gmx.net>
401
402         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
403         Code is contributed under MIT/X11 license.
404
405 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
406
407         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
408
409 2007-08-22  Martin Baulig  <martin@ximian.com>
410
411         * mono-debug.c: Store debugging info on a per-domain basis and
412         free it on domain unload.  Add support for unloading symbol files.
413
414         * mono-debug.h
415         (MonoDebugList): New typedef.
416         (MonoSymbolTable):
417         - add `data_tables and `type_table'.
418         - replace 'symbol_files' and `num_symbol_files' with a
419           `MonoDebugList *'.
420         (mono_debug_data_table): Removed.
421         (mono_debug_list_add): New public function.
422         (mono_debug_list_remove): New public function.
423         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
424         (mono_debug_init_2_memory): Renamed into
425         mono_debug_open_image_from_memory().
426         (mono_debug_close_image): New public function.
427         (mono_debug_domain_create): Likewise.
428         (mono_debug_domain_unload): Likewise.
429         (MONO_DEBUGGER_VERSION): Bump to 60.
430
431         * mono-debug-debugger.h
432         (MonoDebuggerEvent):
433         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
434         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
435         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
436         - rename `THREAD_CREATED' and `THREAD_EXITED' into
437           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
438         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
439           meaning.
440         (mono_debugger_add_symbol_file): Removed.
441         (mono_debugger_add_type): Removed.
442         (mono_debugger_lookup_type): Removed.
443         (mono_debugger_lookup_assembly): Removed.
444
445         * domain.c
446         (mono_domain_create): Call mono_debug_domain_create().
447         (mono_init_internal): Call mono_debug_init_corlib().
448
449         * assembly.c
450         (mono_assembly_close): Call mono_debug_close_image().
451
452 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
453
454         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
455         mmap call.
456
457 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
458
459         * sgen-gc.c: ensure section->pin_queue_end is initialized
460         correctly when non pinning objects in the section have been found.
461
462 2007-08-22  Marek Habersack  <mhabersack@novell.com>
463
464         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
465         containing a list of directories separated by ':'. MSDN docs say
466         the directories should be separated with ';'. Part of a bugfix for
467         bug #81446
468
469 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
470
471         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
472         it should MonoType and not MonoClass.
473
474 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
475
476         * culture-info-table.h : regenerated.
477
478 2007-08-20  William Holmes  <billholmes54@gmail.com>
479
480         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
481          to call ReplaceFile Kernel32 on windows or in io-layer.
482         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
483         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
484          as an internal call.
485
486         Code is contributed under MIT/X11 license.
487
488 2007-08-20  Jb Evain  <jbevain@novell.com>
489
490         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
491         and MONO_EXCEPTION_FIELD_ACCESS.
492
493         * debug-helpers.[c|h]: new mono_field_full_name function.
494
495 2007-08-20  Mark Probst  <mark.probst@gmail.com>
496
497         * class.c: Removed class_security_level() and moved it to
498         security-core-clr.c.
499
500         * security-core-clr.c, security-core-clr.h: class_security_level()
501         is now public and renamed to mono_security_core_clr_class_level().
502         It also looks for security attributes in the classes a class is
503         nested in.
504
505 2007-08-20  Mark Probst  <mark.probst@gmail.com>
506
507         * security-core-clr.c, security-core-clr.h: CoreCLR security
508         utility functions.
509
510         * Makefile.am: Added security-core-clr.[ch].
511
512         * security-manager.c, security-manager.h: Functions and enum for
513         setting and getting the security mode.
514
515         * class.c: CoreCLR security checks.
516
517 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
518
519         * icall-def.h, process.c, process.h: implemented icall to get
520         user/system processor times.
521
522 2007-08-17  Mark Probst  <mark.probst@gmail.com>
523
524         * domain.c, threads.c, class-internals.h, domain-internals.h: New
525         reader-lock-free jit_info_table.
526
527 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
528
529         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
530
531         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
532
533         * object-internals.h (MonoException): Add missing _data member.
534
535 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
536
537         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
538         checking that only methods with matching qname or fqname are picked
539         from implemented interfaces.
540
541 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
542
543         * verify.c (do_newarr):added, do type verification of
544         newarr ops, push the right value on the eval stack.
545         * verify.c (mono_method_verify): use do_newarr
546
547
548 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
549
550         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
551         factored the common code into get_boxable_mono_type, which
552         is now using mono_type_get_full, this fixed byref related tests.
553
554 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
555
556         * class.c: added mono_type_get_full, this function has the same
557         behavior of mono_class_get_full but the returned MonoType has
558         all metadata of the associated token in case of a typespec token.
559         * class.c: added mono_type_retrieve_from_typespec, used by 
560         mono_type_get_full to retrieve the token type.
561         * class.c (mono_class_create_from_typespec): changed to use
562         mono_type_retrieve_from_typespec.
563         * class.c (mono_ldtoken): changed to use mono_type_get_full
564         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
565         * class-internals.h: exported mono_type_get_full for internal use.
566
567 2007-08-16  Jb Evain  <jbevain@novell.com>
568
569         * domain.c (supported_runtimes): add entry for
570         the 'moonlight' runtime version.
571
572 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
573
574         * verify.c (mono_method_verify): small typo sliped in.  
575
576 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
577
578         * verify.c (do_unbox_value): added, do type verification of
579         unboxing ops
580         * verify.c (mono_method_verify): use do_unbox_value
581
582
583 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
584
585         * verify.c (dump_stack_value): fixed typo, was printing string
586         instead of object on stack.
587         * verify.c (do_box_value): moved the byref check up as it leads
588         to invalid code and should be done earlier.
589         * verify.c: improved error messages for and ldobj
590
591 2007-08-15  William Holmes  <billholmes54@gmail.com>
592
593         * marshal.c (emit_marshal_custom): Omit the call to 
594           marshal_native_to_managed when calling native to managed 
595           and the argument is specified as an out argument.
596
597         Code is contributed under MIT/X11 license.
598
599 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
600
601         * verify.c: fixed the type checks for generics, function pointers and vectors.
602         Added type verification for ldobj and ldtoken. The verifier
603         would segfault if header or signature of a method contained references
604         to non-existant types.
605
606 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
607
608         * marshal.c (cominterop_get_ccw): Patch from
609         Bill Holmes to no walk up interface hierarchy. 
610         All parent methods should be present in the interface for COM.
611    
612         Code is contributed under MIT/X11 license.
613
614 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
615
616         * marshal.c (emit_marshal_com_interface): Patch from
617         Bill Holmes to handle COM Interfaces as return values
618         for native->managed calls.
619    
620         Code is contributed under MIT/X11 license.
621
622 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
623
624         * marshal.c (cominterop_get_idispatch_for_object): Implement
625         for runtime callable wrappers.
626    
627         Code is contributed under MIT/X11 license.
628
629 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
630
631         * pedump.c (main): changed from mono_init to mono_init_from_assembly
632         so 2.0 types are accessible
633
634
635 2007-08-13  Miguel de Icaza  <miguel@novell.com>
636
637         * domain.c (mono_init_internal): Call mono_assembly_load_friends
638         once we load mscorlib.   Due to the order in which we initialize,
639         the mono_assembly_load_full routine that loads mscorlib did not
640         load friends.   We now load it once we load the
641         mono_defaults.internals_visible_class class. 
642
643         * assembly.c: Expose the mono_load_friend_assemblies method.
644
645 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
646
647         * verify.c: improved the handling of boxing, better
648         type checking for unary ops and conversion. Fix bug
649         regarding managed pointer compatibility checking
650
651 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
652
653         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
654
655         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
656
657 2007-08-09  Raja R Harinath  <rharinath@novell.com>
658
659         * reflection.c (dup_type): Remove.
660         * class.c (dup_type): Remove.
661         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
662         instead of the dodgy 'dup_type'.
663         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
664         handle the case where 'dup_type' needed the second argument.
665
666 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
667
668         * domain.c: Fix a warning.
669
670 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
671
672         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
673         checking that methods with the same fqname are not overridden
674         with a method from an ancestor.
675
676 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
677
678         * threads.c (free_thread_static_data_helper): Avoid a crash if
679         thread->static_data is not yet set.
680
681 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
682
683         * marshal.c: Use correct image when emitting
684         native wrapper for COM calls.
685    
686         Code is contributed under MIT/X11 license.
687
688 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
689
690         * icall-def.h, security.c, security.h :
691           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
692
693 2007-08-07  Martin Baulig  <martin@ximian.com>
694
695         * mono-debug-debugger.h
696         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
697
698         * domain.c (mono_domain_free): Call
699         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
700
701 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
702
703         * verify.c (check_underflow, check_overflow): error message now returns IL offset
704         * verify.c (in_same_block): code should test if either offset is inside the clauses
705         * verify.c (mono_method_verify): push the exception into the eval stack of exception
706         and filter blocks
707
708 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
709
710         * image.c (mono_image_close): Fix a leak.
711
712         * object.c (mono_runtime_invoke_array): Avoid using alloca.
713
714         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
715
716 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
717
718         * domain.c, threads.c, threads-types.h: fix memory retention issue
719         with thread static variables not being cleared on domain unload.
720         Reuse thread static slots after domain unload.
721
722 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
723
724         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
725         nullable type.
726
727         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
728         now done in mono_runtime_invoke_array.
729
730         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
731         receiver is a nullable type.
732
733         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
734         generic parameter.
735
736 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
737
738         * marshal.c: Implement COM Objects as return type for 
739         managed->unmanaged calls. Added Release calls for COM Object
740         out/return values in managed->unmanaged calls.
741
742         Code is contributed under MIT/X11 license.
743
744 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
745
746         * threads.h, threads-type.h: move the hazard pointer declarations
747         to the private header.
748
749 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
750
751         * file-io.c, appdomain.c: memory leak fixes.
752
753 2007-08-02  Dick Porter  <dick@ximian.com>
754
755         * socket-io.c
756         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
757         SO_REUSEADDR setting into io-layer/sockets.c.
758
759 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
760
761         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
762         from Object when called on a generic parameter. Fixes #82211.
763
764 2007-08-01  Dick Porter  <dick@ximian.com>
765
766         * file-io.c (convert_share): Test FileShare values bit-by-bit.
767         Fixes bug 79250 yet again.
768
769 2007-07-30  Martin Baulig  <martin@ximian.com>
770
771         Merged the `debugger-dublin' branch.
772
773         * mono-debug.h
774         (MonoDebugDataTable): New typedef.
775         (MonoDebugMethodAddressList): New typedef.
776         (MonoDebugWrapperData): Removed.
777         (MonoDebugSymbolTable): Removed `current_data_table',
778         `current_data_table_size', `current_data_table_offset'.
779         (MonoDebugDataItemType): Moved into mono-debug.c.
780         (MonoDebugMethodJitInfo): Remove `address'.
781         (mono_debug_data_table): New global variable.
782         (mono_debug_lookup_method_addresses): New public function.
783         (mono_debug_find_method): Take a `MonoMethod *', not a
784         `MonoDebugMethodInfo *'.
785
786         * mono-debug.c: Drop support for the old symbol tables.
787
788 2007-06-28  Martin Baulig  <martin@ximian.com>
789
790         * mono-debug.c (mono_debug_debugger_version): New public variable.
791
792 2007-07-31  William Holmes  <billholmes54@gmail.com>
793
794         * metadata.c Changed mono_type_create_from_typespec to not insert
795           the type into the hash map until after
796           do_mono_metadata_parse_type has completed.
797         Fixes Bug #82194
798         Code is contributed under MIT/X11 license.
799
800 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
801
802         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
803         generic parameter. Fixes #82211.
804
805 2007-07-27  Jb Evain  <jbevain@novell.com>
806
807         * pedump.c (dump_metadata, dump_metadata_header): dump
808         versions contained in the metadata header.
809
810 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
811
812         * threads.c: register small_id_table with the GC.
813
814 2007-07-27  Mark Probst  <mark.probst@gmail.com>
815
816         * threads.c, threads.h, class-internals.h, object-internals.h:
817         Hazard pointers, to be used by lock-free parallel algorithms.
818
819 2007-07-26  Dick Porter  <dick@ximian.com>
820
821         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
822         routine on non-windows platforms, as I've not managed to think of
823         a non-kludgy way of doing this.  Finishes off bug 78739.
824
825 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
826
827         * object.c: properly setup interface_bitmap in proxy vtables.
828
829 2007-07-25  Marek Habersack  <mhabersack@novell.com>
830
831         * appdomain.c (get_shadow_assembly_location): do not use TickCount
832         to create unique shadow copy target directories, use the domain's
833         serial number instead. Each domain gets a unique target directory
834         that way.
835
836         * domain.c (mono_domain_create): added code to increment domain
837         shadow copy serial number and cache the value in the current
838         domain structure.
839
840         * domain-internals.h (struct _MonoDomain): added a new field -
841         shadow_serial to hold the serial number used in generation of
842         shadow-copy directories. This is to make sure that the directory
843         name is unique for each and every domain created. We avoid a race
844         condition with overriding assemblies already in use by other app
845         domains.
846
847 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
848
849         * class.c (mono_bounded_array_class_get): fixed memory leak when 
850         binding generic parameters.
851
852 2007-07-24  Raja R Harinath  <rharinath@novell.com>
853
854         * metadata.c (do_mono_metadata_parse_generic_class): Use
855         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
856         error.
857
858 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
859
860         * loader.c, class-internals.h, reflection.c: removed the per-method
861         generics hashtable: we use the global one through the call of
862         mono_class_inflate_generic_method ().
863
864 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
865
866         * class.c, metadata.c, class-internals.h: introduce yet another
867         generics global cache for inflated methods (fixes 98% of the perf
868         issue in bug #81806).
869
870 2007-07-23  Raja R Harinath  <rharinath@novell.com>
871
872         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
873         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
874         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
875         return a MonoGenericInst containing (a copy) of those types.
876         (mono_metadata_inflate_generic_inst): Update to changes.
877         (mono_metadata_parse_generic_inst): Likewise.
878         (mono_get_shared_generic_inst): Likewise.
879         * reflection.c (mono_class_bind_generic_parameters): Likewise.
880         (mono_reflection_bind_generic_method_parameters): Likewise.
881         * metadata-internals.h: Likewise.
882         * icall.c (free_generic_context): Kill.
883         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
884
885         * reflection.c (reflection_methodbuilder_to_mono_method): Use
886         mono_metadata_type_dup.
887         * marshal.c (mono_mb_create_method): Likewise.
888
889         * metadata.c (mono_metadata_type_dup): Rename from
890         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
891         MonoImage.  Handle a few more cases, esp. when no mempool is given.
892         * marshal.c, metadata-internals.h: Update to changes.
893
894 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
895
896         * class.c: fixed a small leak for array classes and removed warning.
897
898 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
899
900         * loader.c (mono_method_get_param_token): Make this work on generic methods.
901         Return 0x8000000 for return parameters. Fixes #82161.
902
903 2007-07-21  Marek Habersack  <grendello@gmail.com>
904
905         * appdomain.c (get_shadow_assembly_location): append the current
906         ticks value to the path. Avoids overwriting the same assemblies by
907         several threads at the same time.
908
909 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
910         and Raja R Harinath  <rharinath@novell.com>
911
912         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
913         Simplify slightly.
914         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
915         property for testing if a method is a generic method definition.
916
917 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
918
919         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
920
921 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
922
923         * verify.c: used function from private branch, reverted to the one in class.h 
924
925 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
926
927         * verify.c: a typo slipped in and the code wont compile
928
929 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
930
931         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
932         disabled box instruction as it is doing the wrong thing
933         improved stack dump messages, now it is easier to debug type related issues
934
935
936 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
937
938         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
939
940 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
941
942         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
943         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
944         grouped with class and valuetype. This change will simply 
945         the code as it should be handled just like unmanaged pointers.
946
947 2007-07-19  Mark Probst  <mark.probst@gmail.com>
948
949         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
950
951 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
952
953         * verify.c: several stack merge issues fixed, reference comparisons now
954         check the type size. strict type check now works correctly.
955         added more uses of IS_MANAGED_POINTER macro.
956         fixed issues pointed by running the test suite against .net.
957         
958
959 2007-07-19  Mark Probst  <mark.probst@gmail.com>
960
961         * class.c, loader.c, class-internals.h: Removed the
962         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
963         defines.
964
965         * icall.c: Better error checking in some internal reflection
966         methods.
967
968 2007-07-18  William Holmes  <billholmes54@gmail.com>
969
970         * filewatcher.c : removed unused variable 'filename' in 
971           ves_icall_System_IO_FSW_SupportsFSW
972
973 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
974
975         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
976         obsolete, removed.
977
978 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
979
980         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
981         
982         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
983
984 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
985
986         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
987         Implement generics support.
988         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
989
990         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
991         type_args and method_args arguments.
992         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
993         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
994         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
995
996 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
997
998         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
999           It adds a rootimage parameter to mono_reflection_get_type_internal,
1000           adds new function mono_reflection_get_type_with_rootimage and use
1001           the rootimage to resolve the types instead of the current image
1002
1003 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1004
1005         * culture-info-table.h: Forgot to update after r78304.
1006
1007 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1008
1009         * class.c (mono_class_is_open_constructed_type)
1010         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1011
1012 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1013
1014         * class.c (mono_bounded_array_class_get):  method fails if used with
1015         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1016         avoiding calculating the size for such array as it cannot be instantiated.
1017         Fix bug #82015
1018
1019 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1020
1021         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1022         field.
1023         * metadata.c, reflection.c: Update to changes.
1024
1025 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1026
1027         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1028         mono_class_is_valid_enum, they are used to valide a enum when loading.
1029         * reflection.c: used new functions to throw TypeLoadException when and
1030         invalid enum is build with TypeBuilder. Fixes #82018
1031   
1032 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1033
1034         * object.c: forgot commit of mono_class_setup_methods () to access
1035         iface->methods.
1036         * object-internals.h: added a few more handy fields to
1037         MonoIMTCheckItem.
1038
1039 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1040
1041         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1042         iface->methods.
1043
1044 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1045
1046         * class-internals.h, object-internals.h, object.c: IMT-based
1047         interface invocation core from Massimiliano Mantione
1048         (massi@ximian.com) with a reworked arch-specific interface,
1049         bsearch implementation and a few bugfixes and memory savings by me.
1050
1051 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1052
1053         * class.c (mono_class_create_from_typedef): mono would segfault if 
1054         an enum did not have a __value field. It now throws a TypeLoadException
1055         for such cases. Fix bug #82022
1056
1057 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1058
1059         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1060
1061 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1062
1063         * class.c (mono_class_init): If a class is already inited but has
1064         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1065
1066 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1067
1068         * class.c: Properly handle the case of an unimplemented interface
1069         method.  Fixes: 81673.
1070
1071 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1072
1073         * class-internals.h, object.c: cleanup patch from massi: use
1074         MonoVTable->interface_bitmap since the vtable interfaces offset array
1075         is going away.
1076
1077 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1078
1079         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1080         GetMDStreamVersion icall instead.
1081
1082 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1083
1084         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1085         not use mono_dl_build_path() with a full library name: makes
1086         fallbacks to libgaim and libfam work.
1087
1088 2007-07-06  William Holmes  <billholmes54@gmail.com>
1089
1090         * assembly.c: Added a continue statement in probe_for_partial_name when
1091          parse_assembly_directory_name fails.  Fixes : 82002
1092
1093 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1094
1095         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1096         and added a verification  for TYPEDBYREF.
1097         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1098         make native int interchangeable with int32 and some small cleanup and formating.
1099         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1100         handle byref of byref.
1101         * verify.c (push_local): handle byref of byref.
1102         * verify.c (do_binop): invalid mix of values is unverifiable
1103         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1104         added visibility checks
1105         * verify.c (field related method): added visibility checks
1106         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1107
1108 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1109
1110         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1111         string.
1112
1113 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1114
1115         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1116
1117         * marshal.c (emit_marshal_string): When returning a string from managed code,
1118         allways make a copy even for unicode strings. Fixes #81990.
1119
1120 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1121
1122         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1123         of byref generic inst types (bug #81997).
1124
1125 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1126
1127         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1128         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1129
1130 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1131
1132         * marshal.c (emit_marshal_string): Add support for unicode strings in
1133         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1134
1135 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1136
1137         * verify.c: field load/store are now verified, missing only access checks now
1138
1139 2007-06-28  Martin Baulig  <martin@ximian.com>
1140
1141         * mono-debug.c (mono_debug_debugger_version): New public variable.
1142
1143 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1144
1145         * locales.c: When constructing DateTimeFormat or NumberFormat for
1146         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1147         MonoCultureInfo contructed from the current locale is always
1148         read-only and has UseUserOverride set to true. All MonoCultureInfo
1149         instances returned for GetCultures have both IsReadOnly and
1150         UseUserOverride set to true. Fixes part of bug #81930.
1151
1152 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1153
1154        * icall-def.h: Update System.__ComObject icalls
1155        * marshal.c: Avoid managed transition (and object creation)
1156        when looking up COM interface in RCW.
1157        * marshal.h: Ditto.
1158        
1159        Code is contributed under MIT/X11 license.
1160
1161 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1162
1163         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1164         to avoid crashes during assembly unloading.
1165
1166 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1167
1168         Fix MethodInfo.IsGenericMethodDefinition
1169         * reflection.c (mono_reflection_bind_generic_method_parameters):
1170         Rearrange code to ensure we always uses a generic method definition.
1171         * class.c (mono_class_inflate_generic_method_full): Set
1172         'generic_container' field only for generic method definitions.
1173         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1174         Use presense of 'generic_container' field as indication of being a
1175         generic method definition.
1176
1177 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1178
1179         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1180
1181         * object-internals.h: Reflect changes in the layout of the managed Delegate
1182         class.
1183         
1184         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1185         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1186         runtime memory used by the dynamic method. Fixes #77146.
1187
1188 2007-06-21  Dick Porter  <dick@ximian.com>
1189
1190         * file-io.h: 
1191         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1192         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1193         81767.
1194
1195 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1196
1197         * reflection.c (method_encode_methodspec): Add a tripwire.
1198         * class.c (inflate_generic_type): The fully open generic type is
1199         not the same as the generic type definition.
1200
1201 2007-06-21  Martin Baulig  <martin@ximian.com>
1202
1203         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1204
1205         * mono-debug-debugger.h
1206         (MonoDebuggerBreakpointInfo): Removed.
1207         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1208         (mono_debugger_remove_breakpoint): Likewise.
1209         (mono_debugger_breakpoint_callback): Likewise.
1210         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1211
1212 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1213
1214         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1215         generic type is not the same as the generic type definition.
1216         * class.c (mono_generic_class_get_class): Likewise.
1217
1218 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1219
1220         * icall.c: The second argument to 
1221         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1222         is a MonoType not a MonoClass.
1223
1224 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1225
1226         * verify.c: support for function pointers in the verifier
1227
1228 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1229
1230         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1231
1232 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1233
1234         * assembly.c: removed Mono.Data.SqliteClient from the list of
1235         forward-compatible assemblies as it breaks the ABI (bug #81899).
1236
1237 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1238
1239         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1240         lookup/update with the loader lock.
1241         * reflection.c (mono_class_bind_generic_parameters): No need to
1242         protect mono_metadata_lookup_* with the loader lock.
1243         * class.c (inflate_generic_type): Likewise.
1244         
1245         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1246         on a generic instantiated type.
1247
1248 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1249
1250         *verify.c: produce meanfull error messages on verification error
1251         *verify.c: fixed some cases of verification errors reported as validation errors
1252         *pedump.c: fixed the error name array, now it shows validation errors properly
1253         *verify.h: fixed the contant that should be used for verification errors
1254
1255 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1256
1257         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1258         for bug #77596, 81858 and 80743 (generics data structures on domain
1259         unload).
1260
1261 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1262
1263         Avoid allocating 'MonoGenericContext' on the heap.
1264         * class-internals (_MonoMethodInflated::context): Make field
1265         inline, not a pointer.
1266         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1267         stack.  Use the context embedded within the inflated method as the
1268         hash key, rather than 'new_context'.
1269         * class.c (inflate_generic_context): Simplify.  Return a struct
1270         rather than allocating on the heap.
1271         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1272         doesn't salt away a copy of the context -- simplifying the
1273         lifetime rules of a 'MonoGenericContext *'.
1274         (mono_method_get_context): Return pointer to embedded context.
1275         (setup_generic_array_ifaces): Allocate temporary context on stack.
1276         * reflection.c (inflate_mono_method): Likewise.
1277         (mono_reflection_bind_generic_method_parameters): Likewise.
1278         Use the context embedded within the inflated method as the hash key.
1279
1280         Avoid a source of allocation of 'MonoGenericContext'.
1281         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1282         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1283         * class.c: Update to changes.
1284         (mono_generic_class_get_context): Simplify drastically.  Now just
1285         returns a pointer to the field.
1286         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1287         argument as a const pointer.
1288         (mono_metadata_generic_context_equal): Likewise.
1289         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1290         Update to changes.
1291
1292 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1293
1294         * verify.c improved the handling of brtrue/brfalse, factored out common code
1295
1296 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1297
1298         Kill MonoGenericMethod.
1299         * class-internals.h (MonoGenericContext::method_inst): Rename from
1300         'gmethod' and convert to a MonoGenericInst.
1301         (MonoGenericMethod): Remove.
1302         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1303         * loader.c (method_from_methodspec): Update to changes.  Use a
1304         MonoGenericContext as the key to the hashtable.
1305         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1306         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1307         (mono_metadata_generic_context_hash): Likewise from
1308         'mono_metadata_generic_method_hash'.  Change hash function.
1309         (mono_metadata_load_generic_params): Update to changes.
1310         (mono_get_shared_generic_method): Remove.
1311         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1312         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1313         (inflate_generic_context): Likewise.
1314         (mono_class_inflate_generic_method_full): Likewise.
1315         (setup_generic_array_ifaces): Likewise.
1316         (mono_class_create_from_typespec): Likewise.
1317         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1318         (method_encode_methodspec): Update callsite.
1319         (reflection_methodbuilder_to_mono_method): Update to changes.
1320         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1321         MonoGenericContext as the key to the hashtable.
1322         (inflate_mono_method): Update to changes.
1323
1324         * class-internals.h (MonoGenericMethod::container): Remove.
1325         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1326
1327 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1328
1329         * profiler-private.h, profiler.c, profiler.h: added API to profile
1330         exception events.
1331
1332 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1333
1334         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1335
1336 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1337
1338         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1339         Fixed overflow and underflow not aborting the verification process.
1340
1341 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1342
1343         * class-internals.h (MonoStats): Added stats entries for dynamic
1344         code allocations.
1345
1346 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1347
1348         * loader.c (mono_free_method): Free header->locals and header->clauses.
1349
1350         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1351         dynamic case.
1352
1353         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1354
1355         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1356
1357 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1358
1359         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1360         the tables.
1361
1362 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1363
1364         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1365
1366 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1367
1368         MonoGenericMethod on a diet
1369         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1370         here ...
1371         (_MonoGenericMethod::reflection_info): ... from here.
1372         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1373         Update to changes.
1374         * reflection.c (inflate_mono_method): Likewise.
1375         (mono_reflection_bind_generic_method_parameters): Likewise.
1376
1377 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1378
1379         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1380         *verify.c: factored long ldarg forms to share code with short forms
1381
1382 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1383
1384         *verify.c: fixed code formating factored some duplicate code
1385         into a new function
1386
1387         *verify.h: fixed binary incompatibility introduced earlier
1388
1389         *pedump.c: fixed formating
1390
1391 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1392
1393         Fix assertion when disassembling Mono.C5.dll
1394         * loader.c (method_from_methodspec): Avoid inflating a method
1395         twice with the same context.  If the methodref is inflated, use
1396         the declaring method instead.
1397
1398         * class.c (mono_class_from_generic_parameter): Fix case similar to
1399         bug #81830 handled below, but for method containers.
1400
1401 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1402
1403         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1404         get_shared_generic_class.  Directly inflate the instance.
1405         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1406         (inflate_generic_class): Delete.
1407         (get_shared_generic_class): Delete.  Move setting of
1408         'cached_class' and 'cached_context' ...
1409         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1410
1411         * metadata.c (mono_metadata_lookup_generic_class): Change
1412         signature to take the components of a MonoGenericClass rather than
1413         an allocated MonoGenericClass.  Change semantics to be intern-like.
1414         * reflection.c (mono_class_bind_generic_parameters): Update to
1415         changes.  Make locking region tighter.
1416         * class.c (inflate_generic_class): Update to changes.
1417         (get_shared_generic_class): Likewise.
1418         * metadata-internals.h: Likewise.
1419
1420         * reflection.c (mono_class_bind_generic_parameters): Take and
1421         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1422         (mono_reflection_bind_generic_parameters): Use
1423         'mono_class_bind_generic_parameters' rather than duplicate the code.
1424         * class.c (mono_bounded_array_class_get): Update to changes.
1425         * object-internals.h: Likewise.
1426
1427         * reflection.c (mono_class_bind_generic_parameters): Only support
1428         parameterizing generic type definitions.  Remove support for other
1429         open types.
1430
1431 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1432
1433         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1434
1435         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1436         in the dynamic case.
1437
1438 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1439
1440         * threads.c: When cleaning up thread, reset the Background bit.
1441         Fixes bug #81720.
1442
1443 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1444
1445        * metadata.c: Move variable declarations to top of scope.
1446        * verify.c: Move variable declarations to top of scope.
1447
1448        Code is contributed under MIT/X11 license.
1449
1450 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1451
1452         * reflection.c (mono_class_bind_generic_parameters): Replace
1453         open-coded loop with mono_metadata_inflate_generic_inst.
1454
1455         * class.c (get_shared_generic_class): Don't call
1456         mono_get_shared_generic_inst.  Use the container's own
1457         'class_inst'.
1458
1459         * metadata.c (mono_metadata_load_generic_params): Move
1460         initialization of 'context' field here from ...
1461         * class.c (mono_class_create_from_typedef): ... here, and ...
1462         * loader.c (mono_get_method_from_token): ... here.
1463
1464         * class.c (get_shared_generic_class): Rename from
1465         mono_get_shared_generic_class and make static.
1466         (mono_get_shared_generic_inst): Move to metadata.c.
1467         * loader.c (mono_get_shared_generic_method): Likewise.
1468         * class-internals.h, metadata-internals.h: Update to changes.
1469
1470         Fix #81830
1471         * class.c (mono_class_from_generic_parameter): Don't assume a
1472         generic container owner exists.  Generic containers from monodis
1473         don't have any.
1474
1475 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1476
1477         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1478         * verify.h: new typedefs to returns the non-verifiable status
1479         * verify.c: initial implementation of generics, stack merging and object compatibility check
1480
1481 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1482
1483         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1484         a MonoInternalHashTable again (fixed bug in internal hash table
1485         code).
1486
1487 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1488
1489         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1490         MonoInternalHashTable again (fixed bug in internal hash table
1491         code).
1492
1493 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1494
1495         * class.c, image.c, class-internals.h, domain.c,
1496         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1497         changes.  Have to figure out what makes them break the SWF
1498         regression.
1499
1500 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1501
1502         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1503         a MonoInternalHashTable now.
1504
1505 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1506
1507         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1508         MonoInternalHashTable now.
1509
1510 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1511
1512         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1513         invoke_impl code.
1514
1515         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1516
1517         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1518         dependent trampoline.
1519
1520         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1521
1522         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1523
1524 2007-05-29  Robert Jordan  <robertj@gmx.net>
1525
1526         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1527
1528 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1529
1530         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1531
1532 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1533
1534        * marshal.c: Fix interface lookup loops for
1535        cominterop_get_com_slot_for_method and 
1536        cominterop_get_method_interface. Only need to lookup
1537        if type is a class, else use interface type method is on.
1538
1539        Code is contributed under MIT/X11 license.
1540
1541 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1542
1543         * reflection.c: HasSecurity can be present even if no specially 
1544         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1545         SecurityAttribute). Fix CAS regression tests on buildbot.
1546
1547 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1548
1549        * appdomain.c: Add configure checks for header files.
1550        * image.c: Add configure checks for header files.
1551        * file-io.c: Add configure checks for header files.
1552        * debug-mono-symfile.c: Add configure checks for header files.
1553        * threadpool.c: Add configure checks for header files.
1554        * console-io.c: Add configure checks for header files.
1555        * profiler.c: Add configure checks for header files.
1556        * rawbuffer.c: Add configure checks for header files.
1557        * icall.c: Add configure checks for header files.
1558        * rand.c: Add configure checks for header files.
1559        * socket-io.c: Add configure checks for header files.
1560
1561        Code is contributed under MIT/X11 license.
1562
1563 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1564
1565         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1566         assertion as it breaks the build.
1567         
1568         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1569
1570         * reflection.c (lookup_custom_attr): Make a copy here too.
1571
1572         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1573         dynamic images.
1574
1575         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1576         images.
1577
1578         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1579         info.
1580
1581 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1582
1583         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1584         (load_cattr_value): Ditto.
1585
1586 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1587
1588         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1589
1590 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1591
1592         * threads.c: In "start_wrapper", set apartment_state to MTA if
1593         apartment_state is Unknown and we're running on 2.0 profile or
1594         higher.
1595         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1596         to main method, then set apartment_state to Unknown on 1.0 profile,
1597         and MTA on 2.0 profile.
1598
1599 2007-05-16  Jb Evain  <jb@nurv.fr>
1600
1601         * class-internals.h (MonoDefaults): Add an attribute_class and
1602           customattribute_data_class.
1603         * domain.c (mono_init_internal): Populate them.
1604         * reflection.c: Use them to remove duplicates. Make a vew
1605         MonoClass variables `static'.
1606
1607 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1608
1609         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1610         step in implementing IMT, so that all isinst checks now can go
1611         through the bitmap.
1612         This was needed because vtables for TransparentProxy need to look
1613         like the vtable of the "target" class, so they need to point to
1614         its interface bitmap directly.
1615
1616         * object.c: inside "mono_class_create_runtime_vtable" and
1617         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1618
1619 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1620
1621         * object-internals.h
1622           culture-info.h : added territory field in MonoCulture and
1623           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1624         * locales.c : fill territory field above too.
1625         * culture-info-table.h : regenerated.
1626
1627 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1628
1629         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1630         Fixes #81599.
1631
1632 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1633
1634         * object.c: Always initialize apartment, even if 
1635         there is no custom attributes on entry point.
1636         
1637         Code is contributed under MIT/X11 license.
1638
1639 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1640
1641         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1642         * metadata.c: If no encoding is set, check for unicode
1643         on class.
1644         
1645         Code is contributed under MIT/X11 license.
1646
1647 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1648
1649         * threads.c: Handle if mono_thread_current returns NULL 
1650         
1651         Code is contributed under MIT/X11 license.
1652
1653 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1654
1655         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1656         in start_wrapper. Added mono_thread_init_apartment_state and
1657         mono_thread_cleanup_apartment_state.
1658         * object.c: Initialize thread apartment state on main thread
1659         by checking for STAThreadAttribute on entry point.
1660         * object-internals.h: Add apartment_state field to MonoThread.
1661         * threads-types.h: Add unmanaged definition of 
1662         System.Threading.ApartmentState, MonoThreadApartmentState.
1663         
1664         Code is contributed under MIT/X11 license.
1665         
1666 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1667
1668         * class.c: Fix windows build.
1669         * class-internals.h: Fix windows build.
1670         
1671         Code is contributed under MIT/X11 license.
1672
1673 2007-05-08  Robert Jordan  <robertj@gmx.net>
1674
1675         * process.c (CreateProcess_internal):
1676         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1677         .CreateNoWindow was specified. Fixes #81496.
1678
1679 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1680
1681         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1682         step in implementing IMT, replaced it with two compact arrays
1683         (interfaces_packed and interface_offsets_packed) and a bitmap that
1684         is used for isinst checks (interface_bitmap).
1685
1686         * class.c: (compare_interface_ids): compare function to pass to
1687         bsearch when looking for an interface with a given id.
1688         (mono_class_interface_offset): reimplemented using bsearch on
1689         interfaces_packed, getting the offset from interface_offsets_packed.
1690         (print_implemented_interfaces): utility debugging function.
1691         (setup_interface_offsets): reworked to initialize interfaces_packed,
1692         interface_offsets_packed and interface_bitmap.
1693
1694         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1695         with uses of interfaces_packed and interface_offsets_packed.
1696
1697 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1698
1699         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1700         mono_class_interface_offset prototype to wrap all accesses to
1701         "MonoClass.interface_offsets".
1702
1703         * class.c: Implemented mono_class_interface_offset, and wrapped all
1704         accesses to "MonoClass.interface_offsets".
1705
1706         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1707         "MonoClass.interface_offsets".
1708
1709 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1710
1711         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1712         GetMethodFromHandle overloads (bug #78637).
1713
1714 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1715
1716         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1717         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1718
1719 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1720
1721         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1722         #81498.
1723
1724         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1725         gracefully.
1726         (mono_custom_attrs_from_index): Ditto.
1727
1728         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1729         Fixes #81501.
1730
1731 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1732
1733         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1734         is now allocated from a mempool.
1735
1736 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1737
1738         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1739         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1740
1741 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1742
1743         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1744         mono_loader_clear_error () too late. Fixes #81463.
1745
1746 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1747
1748         * culture-info-table.h : regenerated.
1749
1750 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1751
1752         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1753         is missing.
1754
1755 2007-04-25  Dick Porter  <dick@ximian.com>
1756
1757         * Makefile.am: Put the mingw enforced-optimisation back into the
1758         PLATFORM_WIN32 section.
1759
1760 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1761
1762         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1763         patch.
1764
1765         * image.c (mono_image_load_module): New API function to load a module reference.
1766
1767         * image.c (load_modules): Load modules lazily. Fixes #80812.
1768
1769         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1770         
1771         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1772
1773         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1774         to mono_image_load_module_dynamic.
1775
1776 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1777
1778         * marshal.c: Fix calling convention for CCW on non-windows
1779         platforms. STDCALL on windows, CDECL everywhere else to work 
1780         with XPCOM and MainWin COM.
1781         
1782         Code is contributed under MIT/X11 license.
1783
1784 2007-04-23  Martin Baulig  <martin@ximian.com>
1785
1786         Fix #80969.
1787
1788         * loader.c
1789         (method_from_memberref): Added `gboolean *used_context' argument.
1790         (mono_get_method_from_token): Likewise.
1791         (mono_get_method_full): Don't insert the method in the cache when
1792         `used_context' is true.
1793
1794 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1795
1796         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1797
1798         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1799         create new MonoTypes for returned types.
1800         * class.c (mono_generic_class_get_class): Export mono-internal.
1801         * class-internals.h: Update to changes.
1802
1803 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1804
1805         * threadpool.c, threadpool.h, icall-def.h: patch from
1806         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1807
1808 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1809
1810         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1811         
1812         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1813
1814         * threads.c (mono_thread_get_stack_bounds): New helper function.
1815
1816         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1817         Correctly compute stack bounds when attaching. Fixes #81394.
1818
1819 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1820
1821         * reflection.c: fix handling of doubles in custom attributes
1822         for the arm-fpa format (bug #81368).
1823
1824 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1825
1826         * reflection.c (assembly_add_win32_resources): Mildly relax an
1827         bounds check to let the end pointer point just past the end of the
1828         allocated buffer.  (may fix #81384)
1829
1830 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1831
1832         * culture-info-table.h : regenerated.
1833
1834 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1835
1836         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1837         the thread is aborted early.
1838
1839 2007-04-05  Dick Porter  <dick@ximian.com>
1840
1841         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1842         FindFirstFile()/FindNextFile() to find entries.  This lets the
1843         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1844         81038.
1845
1846         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1847         the parameters of
1848         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1849
1850 2007-04-04  Martin Baulig  <martin@ximian.com>
1851
1852         * debug-helpers.c
1853         (mono_method_desc_full_match): Add support for nested classes.
1854
1855 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1856
1857         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1858
1859 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1860
1861         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1862         waiting for too many threads.
1863
1864 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1865
1866         * environment.c: Fix return value check on uname so we can get the 
1867         executing version on Solaris operating systems.
1868
1869 2007-03-28  Jb Evain  <jbevain@gmail.com>
1870
1871         * class.c (mono_type_get_name_recurse): Complete the
1872         fix for the creation of assembly qualified names for
1873         pointer types. Fixes #81208.
1874
1875 2007-03-27  Dick Porter  <dick@ximian.com>
1876
1877         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1878         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1879         changed.
1880
1881         * threads.c
1882         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1883         the value of ReleaseMutex().
1884
1885 2007-03-27  Dick Porter  <dick@ximian.com>
1886
1887         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1888         in little-endian order, not network endian, so must be converted
1889         to host endian here.  Fixes bug 80593.
1890
1891 2007-03-22  Jb Evain  <jbevain@gmail.com>
1892
1893         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1894         qualified names for pointer types. Fixes #81208.
1895
1896 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1897
1898         * marshal.c: Add support for PreserveSigAttribute. 
1899         
1900         Code is contributed under MIT/X11 license.
1901
1902 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1903
1904         * process.c: Fix endianness issues. Fixes #81126.
1905
1906         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1907         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1908
1909         * image.c (mono_image_lookup_resource): Make this work on big-endian
1910         machines.Change API contract so the caller needs to free the return value.
1911         
1912         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1913         API change.
1914         
1915 2007-03-14  Martin Baulig  <martin@ximian.com>
1916
1917         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1918         mono_type_get_desc() as well.
1919
1920 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1921
1922         * icall.c:  Fix environ access in VS.  
1923         
1924 2007-03-13  Alp Toker  <alp@atoker.com>
1925
1926         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1927         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1928         #63841.
1929
1930 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1931
1932         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1933         circular references among dynamic methods. Fixes #81091.
1934
1935         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1936
1937 2007-03-09  Martin Baulig  <martin@ximian.com>
1938
1939         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1940
1941 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1942
1943         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1944         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1945         
1946         Code is contributed under MIT/X11 license.
1947         
1948 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1949
1950         * loader.c: Reapply patch for bug #79424.
1951
1952 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1953
1954         * metadata.c (mono_type_to_unmanaged): Only convert object to
1955         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1956
1957 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1958
1959         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1960         (and incorrectly set) is_reference field from MonoGenericInst.
1961
1962 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1963
1964         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1965         a little earlier.
1966
1967         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1968
1969         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1970
1971 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1972
1973         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1974         FileOptions.1 value to mean "temporary", map that to
1975         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1976
1977         Fixes 80688
1978
1979 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1980
1981         * appdomain.c: implement MS .Net style shadow copying. Copies of
1982         the assemblies are made in a subdirectory of the dynamic base
1983         directory, the assembly names are preserved.
1984         Copy .mdb and .config files along with the assemblies being shadowed.
1985
1986 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1987
1988         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1989         (emit_marshal_handleref): Ditto.
1990
1991         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1992         on Visual C++. Fixes #80671.
1993
1994 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1995
1996         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1997         for clone operations.
1998
1999 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2000
2001         * marshal.c: Fix warnings.
2002
2003 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2004
2005         * loader.c: allow case-insensitive matching of the dll name
2006         in dllmap handling when prefixed with "i:".
2007
2008 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2009
2010         * threads.c: Fix #ifdef for dummy_apc function for VS.
2011
2012 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2013
2014         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2015
2016 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2017         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2018         giving precedence to the methods with a fully qualified name
2019         (InterfaceName.MethodName) when building the interface sections
2020         of the vtable.
2021
2022 2007-02-16  Dick Porter  <dick@ximian.com>
2023
2024         * threadpool.c (append_job): Fix fast-path array handling, so it's
2025         less likely the array will grow exponentially when the load is
2026         heavy.
2027
2028 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2029
2030         * metadata-internals.h, loader.c: fix dllmap lookup order
2031         for non-function maps, too, and prepare for fallback code.
2032
2033 2007-02-12  Robert Jordan  <robertj@gmx.net>
2034
2035         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2036         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2037         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2038         GlobalFree. Fixes a part of bug #77075.
2039
2040 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2041
2042         * loader.c: implemented typedef parent in field memberref.
2043
2044 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2045
2046         * marshal.c: Fix warnings and remember to call Release on
2047         IUnknown of RCW.
2048         
2049         Code is contributed under MIT/X11 license.
2050
2051 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2052
2053         * class-internals.h: Add MonoHandleRef definition, and
2054         handleref_class to mono_defaults. 
2055
2056         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2057         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2058
2059         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2060         (do nothing on this stage)
2061         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2062         (emit_marshal_handleref): New method, used for argument handling
2063         of HandleRefs. 
2064
2065 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2066
2067         * class.c (mono_class_setup_parent): Lazily init com types.
2068         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2069         init com types.
2070         * object.c (mono_remote_class_vtable): Lazily init com types.
2071         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2072         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2073         * domain-internals.h: Expose mono_init_com_types.
2074         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2075         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2076         Add support for COM Callable Wrapper marshalling.
2077         * marshal.h: Add icall definitions.
2078         * gc.c: Handle freeing of CCWs in finalizer code.
2079         
2080         Code is contributed under MIT/X11 license.
2081
2082 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2083
2084         * reflection.c: changed all the signature encoding code to use
2085         a variable-sized buffer.
2086
2087 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2088
2089         * marshal.c: locking fixes: never take the loader lock
2090         or other runtime locks when holding the marshal lock
2091         (fixes bug#80664).
2092
2093 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2094
2095         * marshal.c: make the delegate function pointer mapping
2096         work for the moving GC.
2097
2098 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2099
2100         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2101         for bug #80618.
2102
2103 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2104
2105         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2106         gmodule.
2107
2108 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2109
2110         * threadpool.c: made the code moving-GC safe.
2111
2112 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2113
2114         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2115         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2116         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2117         warning cleanup.
2118         * reflection.c: warning cleanup, some threading and moving GC fixes.
2119
2120 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2121
2122         * class.c, loader.c: create the needed Set/Get/Address array methods
2123         as well as the .ctors in mono_class_init (), fixes bug #80567.
2124
2125 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2126
2127         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2128         we doesn't decrease its alignment. Should fix the sparc build.
2129
2130 2007-01-24  Dick Porter  <dick@ximian.com>
2131
2132         * socket-io.c
2133         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2134         Create the returned object if we need to ignore an unsupported
2135         socket option.  Fixes a segfault reported by Atsushi.
2136
2137 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2138
2139         * class.c, object.c: restrict GC-tracked fields to
2140         UIntPtr fields used inside corlib, so we provide better
2141         type info to the GC and also allow broken packing as in
2142         bug #80580.
2143
2144 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2145
2146         * sgen-gc.c: removed duplicated function.
2147
2148 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2149
2150         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2151         value that means that the value is not supported, but that we
2152         should not return a failure, but instead report this as a
2153         successful operation.
2154
2155 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2156
2157         Fix tests/bug79956.2.il
2158         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2159         (mono_generic_class_get_class): If the generic definition in an
2160         enum, copy over other fields related to it.
2161
2162 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2163
2164         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2165         genericinst enums (bug #79215).
2166
2167 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2168         * class.c: Fix bug 80307.
2169
2170 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2171
2172         * image.c: if the file table is not present, try to load
2173         all the modules, since we don't have info about them
2174         having or not metadata (bug #80517).
2175         * assembly.c: allow mono_assembly_load_references () to
2176         work for netmodules.
2177
2178 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2179
2180         * image.c, metadata-internals.h, object.c: execute module
2181         cctors when running on the 2 runtime if present (bug #80487).
2182
2183 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2184
2185         * icall.c: optimized InitializeArray() on bigendian.
2186
2187 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2188
2189         * icall.c: fix for the broken ARM FPA double format.
2190
2191 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2192
2193         * icall.c: handle endian issues for r4 and r8 types, too, in
2194         the InitializeArray() icall.
2195
2196 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2197
2198         * loader.c (mono_loader_error_prepare_exception): Clear the error
2199         once we have extracted the information from it, do this before we
2200         call into the JIT's class loading mechanisms.
2201
2202         * object.c (mono_class_create_runtime_vtable): Do not clear the
2203         loader error before calling mono_class_get_exception_for_failure
2204         as the loader error is needed inside
2205         mono_class_get_exception_for_failure to throw the error (thinko).
2206
2207         Fixes #80521
2208         
2209 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2210
2211         * reflection.c: align fields rva data so it's faster to load at
2212         runtime.
2213
2214 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2215
2216         Prepare to simplify GenericMethod handling.
2217         * class-internals.h (mono_method_get_context): New accessor function.
2218         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2219         rather than directly accessing '->context' field.
2220
2221         * class-internals.h (_MonoGenericParam.method): Move ...
2222         (_MonoGenericContainer): ... here.  Add into union with klass field.
2223         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2224         Update to changes.
2225
2226 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2227
2228         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2229         the wrapper type enum and reduce relocations.
2230
2231 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2232
2233         * reflection.c (inflate_mono_method): Reuse method instantiation
2234         from the generic method, if available.
2235
2236 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2237
2238         * marshal.c (emit_marshal_variant): Fix conv_arg
2239         type in last commit, based on whether parameter is byref.
2240         
2241 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2242
2243         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2244         marshalling.
2245         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2246         MONO_TYPE_OBJECT back for VARIANT support.
2247
2248 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2249
2250         * marshal.c, marshal.h, icall-def.h: Implement 
2251         Marshal.ReAllocCoTaskMem.
2252
2253 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2254
2255         * marshal.c: memory retention fixes: use the proper
2256         image cache for runtime_invoke method lookups.
2257
2258 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2259
2260         * mempool.c: added code to help debug mempool allocations.
2261
2262 2007-01-11  Dick Porter  <dick@ximian.com>
2263
2264         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2265         support (experimenting with faking it with IP_MTU_DISCOVER for
2266         systems that don't have IP_DONTFRAGMENT.)
2267         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2268         icall.
2269
2270         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2271
2272         * socket-io.h: Add new fields to MonoSocketAsyncResult
2273         corresponding to the new ones in Socket.cs.
2274
2275 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2276
2277         Fix IronPython regression mentioned in #80249
2278         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2279         'cached_context' field, since it may have been initialized as a
2280         side-effect of metadata parsing.
2281
2282         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2283         (_MonoGenericClass.cached_class): Move here and rename from lone
2284         remaining field of ...
2285         (_MonoInflatedGenericClass): ... this.  Remove.
2286         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2287         to changes.
2288
2289         Fix mcs/tests/test-128.cs regression.
2290         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2291         2007-01-10 change below.
2292         [MONO_TYPE_OBJECT]: Recurse into array case.
2293
2294 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2295
2296         * class-internals.h (mono_get_inflated_generic_class): Remove.
2297         * class.c (mono_get_inflated_generic_class): Remove.
2298         (mono_generic_class_get_class): Rename from
2299         mono_class_create_generic.
2300         (mono_class_from_mono_type) [GENERICINST]: Use it.
2301         * reflection.c, metadata.c: Update to changes.  Use
2302         'mono_class_from_mono_type'.
2303
2304 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2305
2306         * reflection.c: use passed type when encoding an array element
2307         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2308
2309 2007-01-09  Robert Jordan  <robertj@gmx.net>
2310
2311         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2312         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2313         Fixes bug #80392.
2314
2315 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2316
2317         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2318
2319         * object.c (set_value): Avoid aliasing between type->data.klass
2320         and type->data.generic_class.
2321
2322         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2323
2324 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2325
2326         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2327         between type->data.klass and type->data.generic_class.
2328
2329 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2330
2331         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2332         value in out parameters.
2333
2334 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2335
2336         Simplify invariant for MonoGenericClass::klass field.
2337         * class.c (mono_class_create_generic): Verify 'klass' is null.
2338         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2339         initialize 'klass' field.
2340
2341 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2342
2343         Ongoing work to avoid redundant data and simplify invariants.
2344         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2345         'generic_class', and change type to a GenericInst.
2346         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2347         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2348
2349 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2350
2351         * class.c : skip io-layer under PLATFORM_WIN32.
2352
2353 2007-01-03  Tor Lillqvist  <tml@novell.com>
2354
2355         Fix #80305: In a bundled executable, look in the bundled exe
2356         assembly to determine the runtime version. Add the possibility to
2357         bundle also the machine.config file.
2358         
2359         * assembly.c (mono_assembly_open_from_bundle): Make
2360         non-static. Allow being called even if we have no bundled
2361         assemblies, and return NULL right away in that case.
2362
2363         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2364         here.
2365
2366         * domain.c (app_config_parse): Take an assembly exe file name as
2367         parameter instead of a config file name. Check for a bundled
2368         config file for that assembly by calling
2369         mono_config_string_for_assembly_file() (see below) before looking
2370         for one in the file system.
2371         (get_runtimes_from_exe): Corrsponding change to call of
2372         app_config_parse().
2373         (get_runtimes_from_exe): Check for bundled assembly exe file first
2374         by calling mono_assembly_open_from_bundle(). If no bundled
2375         assembly exe file is found, call mono_image_open() as before to
2376         look it up in the file system.
2377
2378         * mono-config.c: Add variable bundled_machinec_onfig.
2379         (mono_config_string_for_assembly_file): New function.
2380         (mono_config_for_assembly): Move code snippet that looks for a
2381         bundled assembly .config file into the above new function. Call
2382         it.
2383         (mono_register_machine_config, mono_get_machine_config): New
2384         functions to set and retrieve
2385
2386         * assembly.h: Declare mono_register_machine_config().
2387
2388         * mono-config.h: Declare mono_get_machine_config() and
2389         mono_config_string_for_assembly_file().
2390
2391         * icall.c: No declaration of environ necessary on Win32. It is
2392         declared (as a macro expanding to a function call) in stdlib.h.
2393         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2394         New internal mono function. Returns the value of
2395         mono_get_machine_config() as a Mono string.
2396
2397         * icall-def.h: Add get_bundled_machine_config().
2398
2399 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2400
2401         Remove redundant field
2402         * class-internals.h (_MonoGenericContext.container): Remove field.
2403         * loader.c (mono_method_get_signature_full): Don't parse a
2404         "container" for a signature parse when the signature is inflated
2405         immediately.
2406         (method_from_methodspec): Likewise, for a generic_inst.
2407         * class.c, metadata.c, reflection.c: Update to changes.
2408
2409 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2410
2411         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2412         'cached_context', and change semantics -- it starts off NULL, and
2413         is initialized on demand.
2414         * class.c (mono_generic_class_get_context): New accessor to
2415         replace 'context' field accesses.
2416         (mono_class_get_context): New helper.
2417         (*): Update to changes.
2418         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2419
2420 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2421
2422         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2423         before the memcpy.   Fixes Marshal2 regression.
2424
2425 2007-01-02  Jb Evain  <jbevain@gmail.com>
2426
2427         * blob.h: add a MONO_TYPE_ENUM definition
2428         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2429         fix the encoding of arrays of enums in custom attributes.
2430
2431         Fixes #79666.
2432
2433 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2434
2435         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2436         string is null terminated, but only cut the string short if it
2437         overflows the buffer.   
2438         
2439         (mono_string_to_byvalstr): Also fix this routine.   The code here
2440         was not properly terminating a string (it was only terminated
2441         because of the previous catch-all memset). 
2442
2443         I left the memset, because I do not know if applications expect
2444         the runtime to clear this region. 
2445
2446         Fixes #79944.
2447
2448         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2449         Clear the error before returning to unmanaged code to prevent the
2450         runtime from being confused later on (fixes  80420).
2451         (ves_icall_type_from_name): Always call mono_loader_clear_error
2452         after parsing a type that could have failed.
2453         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2454
2455         * loader.c (mono_loader_clear_error): Fix indentation.
2456
2457 2006-12-28  Martin Baulig  <martin@ximian.com>
2458
2459         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2460
2461 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2462
2463         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2464         getting a token for an EnumBuilder.
2465
2466 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2467
2468         * reflection.c: be more careful in case resource generation
2469         fails to create the data array.
2470
2471 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2472
2473         * sgen-gc.c: write barrier for clone and fix unregister handles.
2474
2475 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2476
2477         * reflection.c: some fixes needed in the generics code for the moving GC.
2478
2479 2006-12-22  Robert Jordan  <robertj@gmx.net>
2480
2481         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2482         account. Fixes bug #80299.
2483
2484 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2485
2486         Fix WaitHandle usage in delegates.
2487         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2488         * object.c (mono_wait_handle_new): Use the property set method to
2489         initialize the handle.
2490         (mono_wait_handle_get_handle): New.
2491         * threadpool.c (mono_async_invoke): Use it.
2492         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2493         Likewise.
2494         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2495
2496 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2497
2498         * marshal.c (emit_marshal): Call emit_marshal_variant and
2499         emit_marshal_com_interface when applicable.
2500         (emit_marshal_variant, emit_marshal_com_interface): Add
2501         methods for this case and remove if's from emit_marshal_object.
2502         
2503 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2504
2505         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2506
2507 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2508
2509         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2510         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2511         and GlobalFree on Windows. Remove FIXME.
2512
2513 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2514
2515         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2516         implementation for managed objects.
2517
2518 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2519
2520         * object.c: implemented code to be used for checking
2521         that no reference field overlaps with non-references.
2522
2523 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2524
2525         * threadpool.c: fix queue code to be compatible with the
2526         moving GC.
2527
2528 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2529
2530         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2531         in structures by throwing ArgumentNullException.
2532
2533         (emit_marshal_safehandle): Also when they are null parameters.
2534
2535         (emit_marshal_safehandle): Add support for ref
2536         SafeHandles parameters
2537
2538 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2539
2540         * profiler.c: updated to use the mono-dl API instead of
2541         gmodule.
2542
2543 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2544
2545         * profiler.c: updated to use the mono-dl dynamic loading
2546         API instead of gmodule.
2547
2548 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2549
2550         * profiler.c: use readlink, older versions of glib don't have
2551         g_file_read_link ().
2552
2553 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2554
2555         * profiler.c: try to detect the path to mono if libc fails to provide
2556         a useful name (bug #80286).
2557
2558 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2559
2560         Fix #80242
2561         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2562         instance, use the generic type definition instead.
2563         (ves_icall_Type_GetNestedTypes): Likewise.
2564         * class.c (mono_class_create_generic): Always set the
2565         nested_classes of a generic instance to NULL, even if the generic
2566         type definition has nested types.
2567
2568 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2569
2570         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2571         and fix on Linux.
2572         
2573 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2574
2575         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2576         my arguments were in the wrong order.   I also fixed the Windows
2577         version which seems to have had the same issue.
2578
2579         (mono_free_bstr): On Unix, this is g_free.
2580         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2581         conversions (for the tests in corlib to pass).
2582
2583 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2584
2585         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2586         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2587         exception if a ref SafeHandle in a struct has changed).
2588         
2589         (emit_struct_conv): Do not perform layout checks for classes
2590         derived from SafeHandle, as those are specially handled. 
2591
2592         (emit_object_to_ptr_conv): Add support for
2593         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2594
2595         (emit_marshal_safehandle): Implement conversion of return values
2596         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2597         
2598         * threads.c: WaitHandle now is compiled with two different handles
2599         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2600         for 2.0.
2601         
2602         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2603         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2604         these routines to cope with both kinds of fields.
2605
2606 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2607
2608         * metadata.c (mono_type_to_unmanaged): Handle the case where
2609         type->data.klass is a SafeHandle, and in that case, return the
2610         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2611         MONO_MARSHAL_CONV_SAFEHANDLE. 
2612
2613 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2614
2615         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2616         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2617         calling emit_marshal_object.
2618
2619         (emit_marshal_safehandle): Implement marshalling of
2620         SafeHandle parameters (no ref support yet).
2621
2622         (MarshalAction): Document the defines as I implement
2623         them for SafeHandle.
2624
2625         (emit_marshal_object): indentation police.
2626
2627         * class-internals.h: Define MonoSafeHandle.
2628         Add safehandle_class to MonoDefaults type.
2629
2630         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2631         list of classes to check for fields. 
2632
2633         * domain.c (mono_init_internal): Add SafeHandle to the list of
2634         mono_defaults loaded.
2635
2636 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2637
2638         Fix #80253
2639         * reflection.c (mono_reflection_bind_generic_parameters): If the
2640         generic type definition is a type builder, ensure that it is fully
2641         initialized before instantiating it.  Kill some dead code.
2642
2643 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2644
2645         * object.c: clear the loader_error () before loading
2646         more metadata stuff (bug #80258).
2647
2648 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2649
2650         * icall.c, icall-defs.h: type modifiers icalls for
2651         parameters and properties.
2652
2653 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2654
2655         * object.c, icall.c: fixed warnings.
2656
2657 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2658
2659         * marshal.c: fixed a couple of leaks and coding style in a few places.
2660
2661 2006-12-08  Dick Porter  <dick@ximian.com>
2662
2663         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2664         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2665         80173.
2666
2667 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2668
2669         * process.c: ProcessStartInfo may have only filename set and
2670         arguments can be NULL.
2671
2672 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2673
2674         * icall.c: fix leak found by Robert Jordan.
2675
2676 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2677
2678         * marshal.c, marshal.h: generate managed method to access an element
2679         of a multi-dimensional array.
2680
2681 2006-11-30  Paolo Molaro (lupus@ximian.com)
2682
2683         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2684
2685 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2686
2687         * icall.c: back out GetFields () fix until the serialization code is
2688         fixed to not depend on the incorrect behaviour.
2689
2690 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2691
2692         * profiler.c: provide defaults if none are set.
2693
2694 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2695
2696         * Makefile.am, attrdefs.h: new public header file with
2697         constants for attributes for use by embedders.
2698
2699 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2700
2701         * icall.c: GetFields () fix for bug #80064.
2702
2703 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2704
2705         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2706         removed long unused icalls.
2707
2708 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2709   
2710         * marshal.c: 
2711                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2712                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2713                 can be generated without a delegate class.
2714                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2715         
2716         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2717
2718 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2719
2720         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2721         #80069.
2722
2723 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2724
2725         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2726         icall-def.h: added icalls needed by System.GC.
2727
2728 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2729
2730         * loader.c: ensure the class in catch clauses is handled
2731         correctly for generics methods (fixes bug#79980).
2732
2733 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2734
2735         * monitor.h, monitor.c: added mono_locks_dump () function
2736         to help debug deadlocks involving managed locks.
2737
2738 2006-11-13  Dick Porter  <dick@ximian.com>
2739
2740         * file-io.c (get_file_attributes): If the file is a symlink try
2741         and get the stat data for the target, but also add the
2742         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2743         the specs for the windows symlink support, but will probably have
2744         to be reworked when I have test data from a vista machine.  Fixes
2745         bug 79887.
2746
2747 2006-11-13  Dick Porter  <dick@ximian.com>
2748
2749         * gc.c (mono_domain_finalize): 
2750         * marshal.c (mono_delegate_begin_invoke): 
2751         * threadpool.c (socket_io_init, mono_thread_pool_init)
2752         (mono_thread_pool_finish): 
2753         * monitor.c (mono_monitor_try_enter_internal): 
2754         * threads.c (mono_thread_resume, mono_thread_init)
2755         (mono_thread_suspend_all_other_threads)
2756         (mono_thread_execute_interruption): 
2757         * appdomain.c (mono_domain_unload): Check for NULL error returns
2758         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2759         75733.
2760
2761 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2762
2763         * process.c
2764         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2765         Only close the handle if the value of the handle is not
2766         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2767         robust.
2768
2769         Improvement for #75733, so that we do not run into this problem. 
2770
2771         
2772         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2773         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2774         internal variables.  Fixes #79462 
2775         
2776
2777 2006-11-09  Dick Porter  <dick@ximian.com>
2778
2779         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2780         Use poll() not select().  Fixes bug 79397.
2781
2782 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2783
2784         Fix #79872
2785         * assembly.c (mono_assembly_load_from_full): Check that the given
2786         image has an assembly manifest.
2787
2788 2006-11-09  Ankit Jain  <jankit@novell.com>
2789
2790         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2791         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2792         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2793
2794 2006-11-07  Dick Porter  <dick@ximian.com>
2795
2796         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2797         Put the old resolver behaviour back for pre-2.0 profiles.
2798
2799 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2800
2801         * threadpool.c: precise GC and locking fixes.
2802
2803 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2804
2805         * class.c: don't load types that have an explicit unaligned
2806         managed reference. Provide better info in the TypeLoad exception.
2807         Part of the fix for bug #79744.
2808         * object.c: use the correct check for class type load issues.
2809
2810 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2811
2812         * class.c: enforce alignment of fields with managed references
2813         even when Pack=1 is forced by the user (bug #77788).
2814
2815 2006-11-03  Dick Porter  <dick@ximian.com>
2816
2817         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2818         If the address reverse lookup fails, return it as the hostname
2819         anyway.  Fixes bug 79721.
2820
2821 2006-11-03  Dick Porter  <dick@ximian.com>
2822
2823         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2824         Fix build on Windows.
2825
2826 2006-11-02  Dick Porter  <dick@ximian.com>
2827
2828         * icall-def.h: 
2829         * object-internals.h: 
2830         * exception.c (mono_get_exception_thread_interrupted): 
2831         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2832         Fixes bug 74525.
2833
2834         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2835         Check for pending Thread.Interrupt.
2836
2837 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2838         * loader.c: Fixed bug 79684.
2839
2840 2006-10-27  Dick Porter  <dick@ximian.com>
2841
2842         * file-io.c (get_file_attributes): Force symlinks to directories
2843         to be returned as a regular file.  Fixes bug 79733.
2844 2006-10-26  Dick Porter  <dick@ximian.com>
2845
2846         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2847         CreateFile to open a directory then we need to set the
2848         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2849
2850 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2851
2852         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2853         friends.
2854
2855 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2856
2857         * sgengc.c: small cleanup of timer code.
2858
2859 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2860
2861         * sgen-gc.c: fix some warnings and start adding support for
2862         complete object removal on domain unload.
2863
2864 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2865
2866         * assembly.c: build_assembly_name should not consider a version
2867         number without build or revision number invalid. Fixes bug #79715.
2868
2869 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2870
2871         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2872         call kernel32 function OutputDebugString directly.
2873         
2874         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2875         
2876 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2877
2878         * reflection.c: small cleanup, using a function to insert a MonoString
2879         in the string heap.
2880
2881 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2882
2883         * reflection.c: moving GC fixes.
2884
2885 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2886
2887         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2888         all the objects with finalizers belonging to an unloading appdomain.
2889
2890 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2891
2892         * sgen-gc.c: added ability to allocate even when the nursery is fully
2893         pinned and fixed a couple of bugs.
2894
2895 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2896
2897         * threads.h: Revert the last change for now.
2898
2899         * threads.h (mono_thread_get_pending_exception): Rename this to
2900         mono_thread_get_undeniable_exception ().
2901
2902 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2903
2904         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2905         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2906         when fname does not refer to valid assembly. This result in a more
2907         meaningful error message.
2908         * exception.c: added mono_get_exception_bad_image_format2 which 
2909         constructs a BadImageFormatException using the ctor taking a custom
2910         message and the file name. Passing in a NULL msg results in a default
2911         message.
2912         * exception.h: define mono_get_exception_bad_image_format2 function.
2913         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2914         when file name pointed to an invalid IL image. Use 
2915         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2916         as this results in a more meaningful error message.
2917
2918 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2919
2920         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2921         #79465.
2922
2923 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2924
2925         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2926         consistency with the other _size functions.
2927         (mono_type_stack_size): Ditto.
2928
2929         * class.c object.c icall.c: Fix warnings caused by the above change.
2930
2931         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2932
2933         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2934
2935         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2936
2937 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2938
2939         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2940         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2941         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2942         threadpool.h, threads-types.h: mark more internal functions.
2943
2944 2006-10-11  Dick Porter  <dick@ximian.com>
2945
2946         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2947         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2948         reproduce the bug even before applying the fix.)
2949
2950 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2951
2952         * reflection.c: allow retrieving attributes for arguments in generic
2953         methods (bug #79241).
2954
2955 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2956
2957         * debug-mono-symfile.c: properly check fopen () result (found by
2958         coverity).
2959
2960 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2961
2962         * reflection.c: make error message clearer and fixed two
2963         issuelets found by Coverity.
2964
2965 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2966
2967         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2968
2969 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2970
2971         * object-internals.h, gc-internal.h, profiler-private.h:
2972         mark internal functions.
2973
2974 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2975
2976         * reflection.c: put data in the text section.
2977         * icall.c: recognize more types in type_from_typename ().
2978         * process.c, marshal.c: added some GC FIXMEs.
2979
2980 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2981
2982         * loader.c: check for NULL before initializing.
2983
2984 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2985
2986         * gc.c (finalizer_thread): Use a non-alertable wait here.
2987
2988         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2989         until the correct solution is found.
2990
2991 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2992
2993         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2994         modules with no metadata. Fixes #79596.
2995
2996         * image.c (load_metadata_ptrs): Put back the error message when
2997         the #- heap is encountered since the support is not complete yet.
2998
2999 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3000
3001         * gc.c: do not allow the user to SuppressFinalize () a
3002         delegate because it would leak the trampoline if present.
3003
3004 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3005
3006         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3007         PropertyPtr table.
3008
3009 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3010
3011         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3012
3013         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3014
3015         * row-indexes.h: Add definitions for *Ptr tables.
3016
3017         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3018
3019         * metadata.c (mono_metadata_translate_token_index): New helper function to
3020         translate table indexes used in uncompressed metadata.
3021         (mono_metadata_decode_table_row): Ditto.
3022         (mono_metadata_decode_table_row_col): Ditto.
3023
3024         * metadata.c: Add table schema for *Ptr tables.
3025
3026         * class.c loader.c: Use the new helper function to access the affected metadata
3027         tables.
3028         
3029         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3030         #38532.
3031         
3032 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3033
3034         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3035         sequences which can be unbounded in size. Fixes #79583.
3036
3037 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3038
3039         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3040         static initialization.
3041
3042         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3043
3044         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3045
3046         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3047
3048         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3049         ctor fails, i.e. throw the same exception on subsequent accesses.
3050         
3051 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3052
3053         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3054         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3055         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3056         Handle marshalling of interfaces and VARIANTs contained in structs.
3057         
3058         Code is contributed under MIT/X11 license.
3059         
3060 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3061
3062         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3063         
3064         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3065         mempool.
3066
3067 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3068
3069         * console-io.c: ignore previous SIGINT handler.
3070
3071 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3072
3073         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3074         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3075         #79460, #79461, #79485.
3076
3077         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3078
3079         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3080         #79217.
3081
3082 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3083
3084         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3085         could be generated from it.
3086
3087 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3088
3089         * rand.c: fix read loop to correctly handle EINTR.
3090
3091 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3092
3093         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3094         internal calls are defined to keep methods closer to the declaring
3095         type and allow a significant reduction in runtime relocations and
3096         memory usage.
3097
3098 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3099
3100         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3101         exception message to have FileNotFoundException use the default
3102         assembly load error message. Fixes bug #79426.
3103         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3104
3105 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3106
3107         * threadpool.c: (start_thread_or_queue) use the root domain when
3108         creating the thread instead of the async object one.
3109
3110 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3111
3112         * class.c, object.c, class-internals.h, reflection.c:
3113         for arrays, store element_size inside MonoClass (speedup
3114         for array object creation).
3115
3116 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3117
3118         * icall.c: fixed CodeBase to use the file name and not the module
3119         name (bug #79365).
3120
3121 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3122
3123         * mono-debug.c, mono-debug.h: export find_method as
3124         mono_debug_find_method ().
3125
3126 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3127
3128         * debug-helpers.c, class-internals.h: added a few functions useful
3129         when debugging under gdb.
3130
3131 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3132
3133         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3134         characters that need special handling.
3135
3136 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3137
3138         * mono-config.c: make the os/cpu specification more flexible,
3139         allowing lists and negation.
3140
3141 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3142
3143         * marshal.c: COM Interop fixes. Handle case where method->klass.
3144         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3145         calling convention on non-windows platforms. This is for
3146         compatibility with XPCOM and MainWin COM.
3147         
3148         Code is contributed under MIT/X11 license.
3149         
3150
3151 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3152
3153         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3154         correctly. Fixes #79217.
3155
3156         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3157
3158 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3159
3160         * mono-config.c: allow both an os and cpu attribute for dllmap
3161         and dllentry elemnets to enable a single config file to be used
3162         for multiple architectures.
3163
3164 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3165
3166         * loader.c: MonoLoaderError was cleared too soon on load failure.
3167         Fixes bug #79424.
3168
3169 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3170
3171         * icall.c: use the defining class vtable when accessing a
3172         static field, not a pobblibly derived class.
3173
3174 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3175
3176         * icall.c string-icalls.c: Remove references to unicode.h.
3177
3178         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3179
3180         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3181
3182         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3183         indicating the image where custom marshaller types should be looked up.
3184         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3185         custom marshallers, instead of corlib. Fixes #79425.
3186
3187 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3188
3189         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3190
3191 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3192
3193         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3194         Implement Environment.ProcessorCount.
3195         
3196         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3197         Implement Environment.ProcessorCount.
3198         
3199         * icall.c: 
3200         Add Environment.ProcessorCount icall.
3201         
3202         Patch by Jason McFall.
3203
3204 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3205
3206         * assembly.c: don't append .exe/.dll when the filename already contains
3207         one of those extensions.
3208
3209 2006-09-12  Martin Baulig  <martin@ximian.com>
3210
3211         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3212         to array interfaces.
3213
3214 2006-09-11  Martin Baulig  <martin@ximian.com>
3215
3216         * reflection.c (mono_image_build_metadata): Create the
3217         MethodImpl's after emitting all types and methods, so we don't
3218         need another fixup pass for them.
3219
3220 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3221
3222         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3223         change.
3224
3225 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3226
3227         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3228         unload.
3229
3230 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3231
3232         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3233         args is not set. Fixes #78926.
3234
3235 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3236
3237         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3238
3239         * image.c (load_class_names): Move this to class.c, and rename it to 
3240         'mono_image_init_name_cache'.
3241         (load_modules): Fix a warning.
3242
3243         * class.c icall.c image.c: Initialize image->name_cache lazily.
3244
3245         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3246         on its name using information in the AOT file.
3247
3248         * class.c (mono_class_from_name): Use the new hook function.
3249
3250 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3251
3252         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3253         correctly.
3254
3255         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3256         Fixes #79289.
3257         
3258 2006-09-06  Martin Baulig  <martin@ximian.com>
3259
3260         * icall.c (mono_lookup_internal_call): Small fix.
3261
3262 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3263
3264         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3265         double g_free.
3266
3267 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3268
3269         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3270         when --debug is specified.
3271
3272 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3273
3274         * class.c (setup_generic_array_ifaces): Fix a warning.
3275
3276 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3277
3278         * Temporarily remove the patch to assemly.c that checks the
3279         assembly versions as it breaks our gacutil.
3280
3281 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3282
3283         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3284
3285         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3286         a net 1.0 runtime.
3287
3288         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3289         created using the default ctor. Fixes #79152.
3290         (mono_string_builder_to_utf16): Ditto.
3291
3292 2006-09-01  Martin Baulig  <martin@ximian.com>
3293
3294         Fix handling of the generic array interfaces.
3295
3296         * class-internals.h
3297         (MonoDefaults): Removed `generic_array_class' and added
3298         `generic_ilist' class.
3299
3300         * class.c
3301         (mono_bounded_array_class_get): Add the new generic array interfaces.
3302         (setup_generic_array_ifaces): New static method; create vtable
3303         entries for each method in the generic array interfaces.
3304
3305         * metadata.c
3306         (select_container): Allow "parent-less" generic methods.
3307
3308         * marshal.c
3309         (mono_marshal_get_generic_array_helper): New public method.
3310
3311         * icall.c
3312         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3313         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3314         moved the interncall into System.Array.
3315
3316 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3317
3318         A few more cases of avoiding work on types with ->byref set.
3319         Has the real fix for #79238
3320         * icall.c (is_generic_parameter): New helper.
3321         (ves_icall_Type_GetGenericParameterPosition): Use it.
3322         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3323         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3324         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3325         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3326         reference types.
3327         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3328         reference types.
3329         (ves_icall_Type_get_IsGenericInstance): Likewise.
3330         (ves_icall_Type_get_IsGenericType): Likewise.
3331
3332 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3333
3334         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3335         class if possible.
3336
3337         * mempool.h (mono_mempool_get_allocated): New helper function.
3338
3339         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3340         change.
3341
3342         * mempool.c: Fix warnings and the calculation of stats.
3343
3344         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3345
3346         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3347
3348         * loader.c (mono_get_method_from_token): Update method_count stat.
3349
3350         * class-internals.h (MonoStats): Add some stats.
3351
3352 2006-08-31 Robert Jordan  <robertj@gmx.net>
3353
3354         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3355         with managed variants.
3356         All code is contributed under the MIT/X11 license.
3357         
3358 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3359
3360         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3361         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3362
3363         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3364
3365         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3366         with cycles in classes.
3367
3368         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3369
3370         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3371         missing a [MarshalAs] directive. Fixes #79203.
3372
3373         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3374         klass->marshal_info. Fixes #79217.
3375
3376 2006-08-30  Martin Baulig  <martin@ximian.com>
3377
3378         Committing a patch from Joachim Ante <joe@otee.dk>:
3379         Add support for binary data symbol stores.
3380
3381         * debug-mono-symfile.c
3382         (mono_debug_open_mono_symbol_file): Renamed into
3383         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3384         arguments.
3385
3386         * mono-debug.c
3387         (mono_debug_open_image): Added `raw_contents' and `size' args.
3388         (mono_debug_init_2_memory): New public function.
3389
3390 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3391
3392         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3393
3394 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3395
3396         * appdomain.c: implement support for ShadowCopyFiles.
3397
3398 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3399
3400         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3401         when value is NULL (and should remove CID #51).
3402
3403 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3404
3405         * image.c: moved 2 functions to ../utils.
3406
3407 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3408
3409         * gc.c: cope with the target object of a GC handle being NULL
3410         (bug #78877).
3411
3412 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3413
3414         * class.c: recursively check parent's explicit implementations
3415         of interface methods (fixes bug #79125).
3416
3417 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3418
3419         * filewatcher.c: Avoid warnings when building, do not redefine
3420         constants that are defined.
3421
3422         Remove warnings.
3423
3424 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3425
3426         * image.c: don't fail when the link points to an absolute path.
3427
3428 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3429
3430         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3431         Fix CID #3.
3432
3433 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3434
3435         * image.c (full_path): A new method used to obtain the actual path
3436         of an assembly even in the presence of symbolic links.  
3437
3438         This is necessary for the case where we are running a binary that
3439         has been GACed, but we are using the "published" path name
3440         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3441         file in the GAC.
3442
3443         This was the source of the failure for the `xsp' command with the
3444         recent AppDomain changes, as far as the runtime was concerned,
3445         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3446         $prefix/mono/gac/blah/version/blah.exe.
3447
3448         (do_mono_image_open): use full path
3449
3450 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3451
3452         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3453
3454 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3455
3456         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3457         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3458
3459 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3460
3461         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3462         small structures. Fixes #78990.
3463
3464 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3465
3466         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3467
3468         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3469
3470 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3471
3472         * appdomain.c:
3473         * marshal.c: don't load all the assemblies from a domain into newly
3474         created ones. The new domains might have different rules and load
3475         assemblies from different locations. Fixes bug #76757.
3476
3477         Patch by Lluis. Conflicts resolved by Brian Crowell.
3478
3479 2006-08-16  Alp Toker  <alp@atoker.com>
3480
3481         * socket-io.c: First half of the fix for #79084.
3482         Set sa_size to the length of the content, not that of the struct.
3483         Don't add NULL suffix to the content, this should be done in
3484         managed code if needed.
3485
3486 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3487
3488         Fix part of #79012
3489         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3490         mono_metadata_parse_type returns NULL.
3491
3492 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3493
3494         * normalization-tables.h : new file for string normalization data.
3495         * locales.c, locales.h, icall.c :
3496           added load_normalization_resource() for string normalization,
3497           and icall as well.
3498         * Makefile.am : added normalization-tables.h to the sources.
3499
3500 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3501
3502         * marshal.c: Add more helper functions to reduce code duplication and use them
3503         everywhere.
3504
3505 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3506
3507         * marshal.c: Fix non-x86 stdcall warnings.
3508         
3509         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3510         them everywhere.
3511
3512 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3513
3514         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3515         type check on multi-dimensional arrays. Fixes #79000.
3516
3517 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3518
3519         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3520         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3521         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3522         * class-internals.h: add is_com_object to class structure.
3523         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3524         null checks to COM object marshalling. Fix .ctor call on RCW.
3525         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3526         
3527         All code is contributed under the MIT/X11 license.
3528
3529 2006-08-09  Dick Porter  <dick@ximian.com>
3530
3531         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3532         racing mono_monitor_allocator_lock() somewhere, so don't delete
3533         the critical section for now.  Found by running and exiting
3534         monodevelop.
3535
3536 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3537
3538         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3539         (ves_icall_System_ComObject_FindInterface): Ditto.
3540         (ves_icall_System_ComObject_CacheInterface): Ditto.
3541
3542         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3543         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3544
3545 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3546
3547         * threadpool.c: treat pipes from process asynchronous reads as sockets
3548         when reading from them, so we get select/poll or epoll to wait for
3549         data.
3550
3551 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3552
3553         * loader.c: Fix a typo (CID #233) in the null check.
3554
3555 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3556
3557         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3558         Hopefully fixes #78949.
3559         
3560         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3561         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3562         bytes. Fixes #78972.
3563
3564 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3565
3566         * filewatcher.c: we need to set errno here.
3567
3568 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3569
3570         * filewatcher.c: let Win32Exception get the error value.
3571
3572 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3573
3574         * filewatcher.c: translate errno into win32 errors for Win32Exception
3575         to know what happened.
3576
3577 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3578
3579         * threadpool.c: Fix more warnings.
3580
3581         * assembly.c (search_loaded): Fix warnings.
3582
3583         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3584         (mono_async_invoke): Ditto.
3585
3586 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3587
3588         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3589         entries for __ComObject type in addition to ComImport types.
3590         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3591         about hash table.
3592         
3593         All code is contributed under the MIT/X11 license.
3594
3595 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3596
3597         * image.c: avoid tentative loading of modulerefs that contain
3598         no metadata (P/Invoke library names).
3599
3600 2006-07-28  Dick Porter  <dick@ximian.com>
3601
3602         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3603         mono_loader_lock() somewhere, so don't delete the critical section
3604         for now.  Found by running and exiting monodevelop.
3605
3606 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3607
3608         * filewatcher.c: define the inotify syscalls when we're building on
3609         linux and have sys/syscall.h. The build system might not have support
3610         for inotify but the target system might have it.
3611
3612 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3613
3614         * domain.c: Documentation updates.
3615
3616         * loader.c (mono_free_method): Do not release the method
3617         information if we are being profiled, as profilers will use this
3618         information at shut down to present some data to the user.
3619
3620         This is needed so that the profiler does not crash, as the
3621         profiler tends to keep MonoMethods around, and they might become
3622         invalid if we free these.
3623
3624         (mono_get_method_constrained): Return the original CIL stream
3625         method as well, so verification can be performed against it.
3626
3627 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3628
3629         * filewatcher.[ch]: support for inotify file system watcher.
3630         * icall.c: add new internal calls for the inotify file system watcher.
3631
3632 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3633
3634         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3635         #78888.
3636
3637 2006-07-20  Dick Porter  <dick@ximian.com>
3638
3639         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3640         warning.
3641
3642 2006-07-20  Dick Porter  <dick@ximian.com>
3643
3644         * threads.c (start_wrapper): Do the thread cleanup while we still
3645         hold a reference to its object.  Fixes bug 78123.
3646
3647 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3648
3649         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3650         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3651           "managed-to-managed".
3652         * icall.c: Redirect string constructors that take sbyte* to
3653           ves_icall_System_String_ctor_RedirectToCreateString.
3654         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3655           to CreateString () methods with matching signature.
3656         * reflection.c: Use original security informations for
3657           MONO_WRAPPER_MANAGED_TO_MANAGED.
3658         * security-manager.c: Use original security informations for
3659           MONO_WRAPPER_MANAGED_TO_MANAGED.
3660         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3661           that is a placeholder and only its address should be used.
3662         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3663           that is a placeholder and only its address should be used.
3664
3665 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3666
3667         Begin implementing COM Interop.
3668         * appdomain.c: Increment corlib version.
3669         * class.c: Set ComImport classes' parent to __ComObject.
3670         * loader.c: Mark cominterop methods as such.
3671         * domain.c: Add __ComObject class to MonoDefaults structure.
3672         * image.c: Add 2 hashtables to the image for COM Interop related methods
3673         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3674         using the mempool allocator
3675         
3676         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3677         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3678         declaration for mono_metadata_type_dup_mp.
3679         
3680         * debug-helpers.c: Added strings for two additional wrapper types
3681         * object.c: Create proxy objects for ComImport classes
3682         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3683         and added __ComObject class to MonoDefaults structure.
3684         
3685         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3686         MonoComInteropProxy and MonoComObject.
3687         
3688         * marshal.c: Added support for COM Interop
3689         (signature_cominterop): Converts managed signature to corresponding
3690         unmanaged COM signature.
3691         (cominterop_get_function_pointer): gets unmanaged function pointer via
3692         COM object vtable
3693         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3694         (cominterop_get_method_interface): returns interface type that method is defined on
3695         (mono_mb_emit_cominterop_call): emits native call to function pointer
3696         gotten from vtable
3697         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3698         that matches signature of unmanaged function.
3699         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3700         (cominterop_get_invoke): forwards call from proxy to __ComObject
3701         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3702         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3703         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3704         
3705         * marshal.h: Added Marshal icall declarations.
3706         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3707         so we can access them in finalizer
3708         
3709 2006-07-14  Dick Porter  <dick@ximian.com>
3710
3711         * object.c (mono_type_initialization_cleanup): Fix a race
3712         condition by temporarily commenting out the critical section
3713         deletion.
3714
3715 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3716
3717         * reflection.c (create_custom_attr): Fix some warnings.
3718         (create_custom_attr_data): Ditto.
3719         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3720         types. Fixes #78855.
3721
3722 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3723
3724         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3725
3726         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3727
3728 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3729
3730         * reflection.c (resolve_object): Add support for DynamicMethod.
3731
3732         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3733         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3734
3735 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3736
3737         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3738         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3739
3740 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3741
3742         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3743         Fixes #77888.
3744
3745 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3746
3747         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3748         slightly: remove a shadow local variable.
3749
3750 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3751
3752         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3753         definition that introduces the virtual function slot.
3754         Also fix Coverity #105.
3755
3756 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3757
3758         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3759         for dynamic assemblies. Fixes #78724.
3760
3761 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3762
3763         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3764         Fixes #78722.
3765
3766 2006-06-21  Martin Baulig  <martin@ximian.com>
3767
3768         * reflection.c
3769         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3770         fixes #76484.
3771
3772 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3773
3774         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3775
3776 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3777
3778         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3779         nor TYPEREFs.
3780         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3781         Inflate result if necessary.
3782         (mono_class_get_full): Remove old version.  Rename from
3783         'mono_class_get' and add 'context' argument.  Pass it to
3784         ..._create_from_typespec.
3785         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3786         (mono_ldtoken): Revert change below.
3787
3788 2006-06-20  Martin Baulig  <martin@ximian.com>
3789
3790         * class.c (mono_ldtoken): Don't pass the generic context to
3791         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3792
3793 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3794
3795         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3796         and later freeing it. Fixes #78638.
3797
3798 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3799
3800         * icall.c (mono_class_get_throw): Revert over-zealous error
3801         throwing, the caller for mono_class_get_throw will cope with
3802         errors when classes are not properly initialized already.
3803
3804         The code still copes with loader exceptions though.
3805
3806         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3807         
3808 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3809
3810         Fixes the `make run1' version of RuntimeAbort (to be commited,
3811         source is in Bugzilla).
3812         
3813         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3814         FALSE on class loading failure instead of returning true.
3815
3816         * class.c (mono_class_create_from_typedef): It is possible for
3817         mono_metadata_interfaces_from_typedef_full to fail if a class is
3818         not found, cope with this.
3819         
3820
3821 2006-06-14  Dick Porter  <dick@ximian.com>
3822
3823         * socket-io.c: 
3824         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3825         4.1.1
3826
3827 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3828
3829         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3830
3831 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3832
3833         * icall.c: Another fix for building mono in Visual Studio.
3834
3835 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3836
3837         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3838         
3839 2006-06-09  Martin Baulig  <martin@ximian.com>
3840
3841         * debug-mono-symfile.c: Put this back and really fix it this
3842         time. Sorry for all the trouble.
3843
3844 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3845
3846         * icall.c (mono_class_get_throw): Fix a warning.
3847         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3848         ReflectionTypeLoadException if needed. Fixes #78606.
3849
3850         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3851         (mono_class_init): Ditto.
3852
3853         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3854         ref_only exceptions.
3855         (mono_loader_clear_error): Make this work even if there is no error.
3856
3857 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3858
3859         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3860         Marshal.GetComSlotForMethodInfo using internal call.
3861
3862 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3863
3864         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3865         a function for signalling it.
3866
3867         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3868         a referenced assembly is not found.
3869
3870         * loader.c (mono_loader_error_prepare_exception): Add support for 
3871         LOADER_ERROR_ASSEMBLY. Fix formatting.
3872
3873 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3874
3875         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3876         for VARIANT marshalling on windows and increment corlib version
3877         since Variant struct was added.
3878
3879 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3880
3881         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3882         stack trace line information:
3883
3884         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3885         (Martin) when looking up B which is between A and C, return A not C.
3886
3887         Bug is #78573.
3888
3889         Thanks to Alexander Olk for tracking this down.
3890
3891 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3892
3893         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3894         
3895         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3896         avoid clobbering its value.
3897         (mono_string_to_lpstr): Fix a warning on windows.
3898
3899 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3900
3901         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3902
3903         * reflection.c loader.c: Removed references to 'dummy' flag.
3904
3905         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3906
3907         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3908         it gets GC tracking.
3909
3910         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3911         GC tracking.
3912         
3913         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3914
3915         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3916
3917         * appdomain.c: Bump corlib version.
3918
3919 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3920
3921         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3922         CEE_STIND_REF when working with object references.
3923
3924 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3925
3926         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3927         Fixes #78539.
3928
3929 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3930
3931         * loader.c (method_from_memberref): Fix argument value for
3932         mono_loader_set_error_method_load (I was passing the MonoClass
3933         instead of the class name char *).
3934
3935 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3936
3937         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3938         CEE_STIND_REF when working with object references.
3939
3940 2006-05-30  Martin Baulig  <martin@ximian.com>
3941
3942         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3943         mono_method_full_name() change and replace the ':' with a '.'
3944         here.
3945
3946 2006-05-30  Martin Baulig  <martin@ximian.com>
3947
3948         * debug-mono-symfile.c
3949         (mono_debug_symfile_lookup_location): Fix the algorithm:
3950         when looking up B which is between A and C, return A not C.
3951
3952 2006-05-29  Martin Baulig  <martin@ximian.com>
3953
3954         * mono-debug.h
3955         (MonoDebugMethodInfo): Make the typedef public.
3956         (MonoDebugSourceLocation): New public struct.
3957
3958         * mono-debug.c
3959         (mono_debug_source_location_from_address): Removed.
3960         (mono_debug_source_location_from_il_offset): Removed.
3961         (mono_debug_il_offset_from_address): Removed.
3962         (mono_debug_address_from_il_offset): Removed.
3963         (mono_debug_lookup_method): New public function.
3964         (mono_debug_lookup_source_location): New public function; replaces
3965         the old mono_debug_source_location_from_*() functions; see the
3966         inline documentation.
3967         (mono_debug_free_source_location): New public function.
3968         (mono_debug_print_stack_frame): New public function; see the
3969         inline documentation.
3970
3971         * debug-mono-symfile.c
3972         (mono_debug_find_source_location): Renamed into
3973         mono_debug_symfile_lookup_location(); only take a
3974         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3975         documentation.
3976         (mono_debug_find_method): Renamed into
3977         mono_debug_symfile_lookup_method().
3978
3979 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3980
3981         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3982         returned by mono_image_open_full ().
3983
3984         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3985         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3986         #78517.
3987
3988         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3989         #78518.
3990
3991 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3992
3993         * class.c (mono_class_from_typeref): handle missing images
3994         earlier, deals with bug #78418.   Refactor code; 
3995
3996         Fix a warning introduced in my previous commit (some stale code
3997         from before I revisited my patch).
3998
3999         * class.c (mono_class_create_from_typedef): On failure, remove the
4000         class from the MonoImage->class_cache as the class is not
4001         initialized;   Fixes the leak pointed out by Paolo.
4002
4003 2006-05-25  Dick Porter  <dick@ximian.com>
4004
4005         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4006         DeleteCriticalSections until I figure out which one may still be
4007         sometimes locked when mono_thread_cleanup is called.
4008
4009 2006-05-24  Dick Porter  <dick@ximian.com>
4010
4011         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4012         of mono_thread_manage and back into its own function, so it can be
4013         called after the finalizer thread has finished.
4014
4015         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4016
4017 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4018
4019         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4020         Fixes #78495.
4021
4022         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4023         with non-blittable elements.
4024         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4025
4026 2006-05-24  Martin Baulig  <martin@ximian.com>
4027
4028         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4029         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4030
4031         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4032         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4033         `mono_debugger_event_handler' to NULL.
4034
4035 2006-05-24  Martin Baulig  <martin@ximian.com>
4036
4037         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4038
4039 2006-05-24  Martin Baulig  <martin@ximian.com>
4040
4041         * mono-debug-debugger.h
4042         (mono_debugger_create_notification_function): Added
4043         `MonoCodeManager *' argument.
4044
4045 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4046
4047         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4048
4049 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4050
4051         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4052         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4053         implementation.
4054
4055 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4056
4057         * icall.c: precise GC support: objects can't be stored in unmanaged
4058         memory anymore, even if they are kept alive by other references: since
4059         they can move the GC needs to be able to always find them.
4060
4061 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4062
4063         * object.c: precise GC support for static fields. Support
4064         for moving GCs: write barriers and pinned allocation for interned
4065         strings.
4066
4067 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4068
4069         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4070         structure.
4071
4072 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4073
4074         * class.c, gc.c: sgen and precise GC updates.
4075
4076 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4077
4078         * marshal.h, marshal.c: added write barrier wrapper and precise type
4079         fixes.
4080
4081 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4082
4083         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4084         support.
4085
4086 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4087
4088         * reflection.c: precise and sgen GC updates.
4089
4090 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4091
4092         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4093
4094 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4095
4096         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4097
4098 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4099
4100         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4101         MONO_TYPE_OBJECT. Fixes #78462.
4102
4103 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4104
4105         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4106         and blittable types.
4107
4108 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4109
4110         * class.c (mono_class_get_exception_for_failure): Implement parts
4111         of a TODO: if the loader error is set (instead of the class
4112         error), we return a Loader exception that can be properly thrown
4113         elsewhere.
4114
4115         This was exposed by some Winforms 2.0 code that I tried to run
4116         (Atsushi pointed me to it).
4117
4118 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4119
4120         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4121         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4122         
4123         * marshal.c (emit_marshal_vtype): Add limited support for 
4124         UnmanagedType.LPStruct. Fixes #78427.
4125
4126         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4127         Applied a patch from kangaroo to fix #77523.
4128
4129 2006-05-17  Martin Baulig  <martin@ximian.com>
4130
4131         * threads.c
4132         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4133         (debugger_thread_created): Removed.
4134         (debugger_thread_exited): Removed.
4135
4136 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4137
4138         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4139
4140         * object-internals.h (MonoReflectionResource): Sync with managed version.
4141
4142 2006-05-12  Wade Berrier <wberrier@novell.com>
4143
4144         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4145
4146 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4147
4148         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4149         functions try to allocate from the image mempool.
4150
4151 2006-05-12  Dick Porter  <dick@ximian.com>
4152
4153         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4154
4155 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4156
4157         * object.c: The FieldGetter and FieldSetter methods require the full
4158         name of the class, not only the name. Fixes bug #78277.
4159
4160 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4161
4162         * loader.c (method_from_memberref): Do not pass the NULL klass to
4163         mono_loader_set_error_() methods.  Pass the non-NULL value
4164         (class). 
4165
4166 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4167
4168         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4169         (mono_assembly_close): Null out assembly->image->references after freeing it.
4170
4171         * image.c (mono_image_close): Free image->references.
4172         
4173         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4174
4175 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4176
4177         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4178         before checking if it's NULL (g_assert).
4179
4180 2006-05-10  Martin Baulig  <martin@ximian.com>
4181
4182         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4183         I thought I already killed that two months ago, but now it somehow reappeared.
4184
4185 2006-05-10  Martin Baulig  <martin@ximian.com>
4186
4187         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4188
4189 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4190
4191         * reflection.c: Allocate memory for dynamically created methods in the image
4192         mempools.
4193
4194 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4195
4196         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4197         don't use the ad pointer before checking if it's NULL (g_assert).
4198
4199 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4200
4201         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4202         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4203
4204         * marshal.c: Allocate all signatures from mempools.
4205
4206         * marshal.c: Allocate some more signatures from mempools.
4207
4208 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4209
4210         * object.c (mono_load_remote_field): The code used to provide a
4211         temporary variable for returning results if the user did not
4212         provide a result pointer.  But our temporary variable was allocted
4213         on the satck.
4214
4215         Fix calling code to always pass a result area.   Coverity ID 103.
4216
4217 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4218
4219         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4220         value, not the old. Fixes #78312.
4221         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4222
4223         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4224         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4225         per-image cache.
4226
4227         * assembly.c (mono_assembly_close): Free image->references.
4228
4229         * assembly.c (mono_assembly_names_equal): Fix a warning.
4230         (mono_assemblies_cleanup): Cleanup more global data.
4231
4232         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4233
4234         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4235         ptr_cache and image->modules.
4236
4237         * image.c (mono_image_init): Allocate array_cache lazily.
4238         
4239 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4240
4241         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4242         behavior was changed recently and has bad side effects.
4243
4244 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4245
4246         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4247         
4248         * assembly.c (mono_assembly_close): Remove a debug printf.
4249
4250         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4251
4252         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4253         to also allow for temporary references between mono_image_open ()/close ().
4254
4255         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4256
4257 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4258
4259         * marshal.c: Fix support for dynamic methods.
4260
4261         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4262
4263         * marshal.c (mono_marshal_cleanup): New cleanup function.
4264
4265         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4266         image mempools.
4267
4268         * class.c (mono_class_init): Fix leaking class->nested_classes.
4269
4270         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4271
4272         * image.c (mono_image_init): Initialize the new cashes.
4273
4274         * image.c (mono_image_close): Destroy the new cashes.
4275
4276         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4277
4278         * mempool.c (mono_mempool_strdup): New helper function.
4279
4280         * class-internals.h: Add prototype for mono_loader_unlock ().
4281
4282         * domain.c (mono_jit_info_table_find): Fix a warning.
4283         (mono_debugger_check_runtime_version): Ditto.
4284
4285         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4286         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4287         functions to these modules.
4288
4289         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4290         metadata modules.
4291         
4292         * marshal.c (mono_free_bstr): Fix a warning.
4293
4294         * assembly.c (mono_assembly_open_full): Fix another small leak.
4295
4296         * object.c: Fix some unload leaks in the remoting code.
4297
4298         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4299         function.
4300
4301         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4302
4303         * reflection.c: Fix some unload leaks in dynamic assemblies.
4304
4305 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4306
4307         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4308         * marshal.h: Add BSTR support on Win32
4309         * icall.c: Add BSTR icalls
4310         * metadata.h: Add BSTR enums
4311
4312 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4313
4314         Work to catch the crash from #76795 and turn it into an
4315         exception.   As I stubbed out pieces of the VisualBasic support,
4316         I found a number of places where the code was failing and I added
4317         checks to those places. 
4318         
4319         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4320         function return a status code.  If we fail to parse the signature
4321         from mono_metadata_parse_generic_inst, return FALSE.
4322
4323         * loader.c (mono_get_method_from_token): If we fail to load the
4324         method (mono_class_get) return NULL.   
4325
4326         * (method_from_memberref): Return NULL if we are unable to parse
4327         the method signature
4328
4329         (mono_loader_error_prepare_exception): Since we now use the
4330         loader_error flag internally to stop processing, and obtaining
4331         exceptions that might be thrown will walk this code path the
4332         proper way of going from a MonoLoaderError into a
4333         MonoException was convoluted.   This new routine encapsulates the
4334         process of turning the error into an exception and *clearing* the
4335         error afterwards.
4336         
4337 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4338
4339         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4340         with missing assemblies), and to cope with:
4341
4342                 * Missing fieldref from a non-existing assembly.
4343                 * Missing methodref from a non-existing assembly.
4344
4345         The first batch of work to address *some* of the issues from 76661.
4346         
4347         * object.c (mono_class_create_runtime_vtable): If we fail to
4348         initialize the class raise the exception here. 
4349
4350         * metadata.c (mono_class_get_overrides_full): If any methods fail
4351         to load return the failure to the caller.
4352
4353         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4354         flagging assemblies that failed to load.   
4355
4356         Do not crash if we are unable to load the assembly.
4357
4358         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4359         assemblies. 
4360
4361         * loader.c (mono_loader_set_error_type_load): Change the
4362         convention to always pass unallocated strings, so we make our own
4363         copies (I know our own code had duplicated strings before, but
4364         this keeps the normal conventions).
4365         (method_from_memberref): Call mono_loader_set_error_method_load
4366         for all possible failures of loading the class. 
4367         Remove assert, turn into a loader error.
4368
4369         (mono_loader_error_to_exception): Move this routine from mini
4370         (mini_loader_error_to_exception) there was no need to have that in
4371         mini. 
4372
4373         * class.c (mono_class_from_typeref): If we were not able to load
4374         the assembly with mono_assembly_load_reference, call the
4375         mono_loader_set_error_type_load to register the problem.
4376
4377         (mono_class_setup_fields): If we fail to load the type from
4378         mono_metadata_parse_type_full, call mono_class_set_failure and
4379         break from the loop.
4380
4381         If class->exception_type is set, we do not layout the fields as
4382         that might crash the runtime, and instead return (from breaking
4383         from the previous loop).
4384
4385         (mono_class_setup_vtable): This now returns a boolean indicating
4386         whether the table was properly setup.   The decision is driven by
4387         mono_class_get_overrides_full which might run into non-existing
4388         methods. 
4389         
4390         (mono_class_init): Returns TRUE on success or FALSE if there was a
4391         problem in loading the type (incorrect assemblies, missing
4392         assemblies, methods, etc).
4393
4394         When we call mono_class_setup_fields we also check for a potential
4395         error inside this call (either a class exception or a general
4396         loader exception).
4397
4398         (mono_class_create_from_typedef): If the parent fails to load
4399         (calling mono_class_get_full) return NULL.
4400         
4401         ** Important **
4402
4403         calls to mono_metadata_parse_type_full should be checked
4404         everywhere and set the mono_class_set_failure
4405         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4406
4407         The current patch checks the places where my manually constructed
4408         tests show the errors are showing up, but we should do it
4409         everywhere. 
4410
4411         ** Important2 **
4412
4413         mono_class_init return values should be tested everywhere, like
4414         the previous case this is something that we should audit
4415         everywhere and not only on the cases exposed by the tests I
4416         created. 
4417
4418 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4419
4420         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4421         boolean parameter and instead pass the information on `options'
4422         parameter (FileOptions).
4423
4424         * icall.c: Register the new signature for MonoIO.Open.
4425
4426         * debug-helpers.c (dis_one): Trying to understand how coverity
4427         works.  Fix Run 5, item 78.
4428
4429 2006-04-26  Dick Porter  <dick@ximian.com>
4430
4431         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4432         dereference.
4433
4434 2006-04-25  Martin Baulig  <martin@ximian.com>
4435
4436         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4437
4438         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4439         debugger_thread_created().
4440         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4441         special way.
4442         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4443         (mono_debugger_finalize_threads): New function; undo the effects
4444         of mono_debugger_init_threads().
4445         (mono_debugger_create_all_threads): Removed.
4446
4447 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4448
4449         * image.c (mono_image_close): Tidy up trace messages.
4450
4451         * assembly.c (mono_assembly_close): Ditto.
4452
4453         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4454         no longer references an already freed assembly. Fixes #78168.
4455
4456 2006-04-21  Dick Porter  <dick@ximian.com>
4457
4458         * threads.c (mono_thread_detach): Fix reference counting when
4459         detaching threads.
4460
4461 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4462
4463         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4464         #78155.
4465
4466 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4467
4468         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4469         (mono_type_to_stind): Ditto.
4470
4471         * marshal.c: Use the new helper functions to simplify code.
4472
4473         * image.c (mono_image_close): Add some code for help debug assembly unloading
4474         problems.
4475
4476         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4477         image mempool.
4478
4479         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4480         assembly was already loaded in another appdomain. Fixes #78083.
4481
4482 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4483
4484         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4485         referenced assemblies.
4486         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4487
4488         * domain.c (mono_domain_free): Add a trace message.
4489
4490         * appdomain.c (add_assemblies_to_domain): Ditto.        
4491
4492         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4493         field.  
4494
4495 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4496
4497         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4498
4499 2006-04-12  Martin Baulig  <martin@ximian.com>
4500
4501         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4502         `USE_INCLUDED_LIBGC'.   
4503
4504 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4505
4506         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4507         the patch contains ../ and a small directory name later. Hopefully fixes
4508         #78035.
4509
4510 2006-04-10  Martin Baulig  <martin@ximian.com>
4511
4512         Clean up the debugger's thread-handling code.
4513
4514         The debugger's thread-handling code has been moved from
4515         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4516         over the `threads' hash, keep track of exiting threads and also
4517         use proper locking.
4518
4519         We can now debug XSP and XSP based applications with the debugger.
4520
4521         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4522
4523         * threads.h
4524         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4525         (mono_install_thread_callbacks): Likewise.      
4526
4527         * threads.c (mono_thread_callbacks): Removed.
4528         (debugger_thread_created, debugger_thread_exited): New static functions.
4529         (start_wrapper): Call debugger_thread_created().
4530         (thread_cleanup): Call debugger_thread_exited().
4531         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4532         (mono_debugger_init_threads): New public function.
4533         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4534         iterate directly over the `threads' hash and also use proper locking.
4535
4536         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4537
4538         * mono-debug-debugger.h
4539         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4540
4541 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4542
4543         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4544         argument type=array. Fixes #78057.
4545
4546 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4547
4548         * culture-info-table.h : regenerated. Fixed bug #69652.
4549
4550 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4551
4552         * loader.c metadata.c: Reapply a variant r59116.
4553         
4554         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4555
4556         * class.c (mono_class_setup_interface_offsets): New internal function.
4557
4558         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4559         interfaces too. Fixes #77398.
4560
4561         * reflection.c (encode_cattr_value): Add support for 
4562         parameter type=object, argument type=array.
4563         (load_cattr_value): Ditto. Fixes #77916.
4564
4565         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4566         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4567
4568         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4569         a byval char array and CharSet is Ansi.
4570
4571         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4572
4573 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4574
4575         * metadata.c: Add some locking comments.
4576         
4577         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4578         mempool.
4579         (mono_metadata_free_method_signature): Don't free the signature itself.
4580
4581         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4582
4583         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4584         reference the same MonoImage.
4585         (mono_assembly_load_from_full): Add an assert.
4586
4587 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4588
4589         * image.c (mono_image_close): Don't put the image we are about to free into the
4590         loaded_images_guid_hash.
4591
4592         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4593         to reduce code duplication.
4594
4595         * marshal.c: Register the native functions called by this module as icalls, to
4596         somewhat centralize the creation of MonoMethodSignature's.
4597
4598         * loader.c (mono_method_signature): Add a cache for method signatures.
4599
4600         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4601         the parameter attributes of a method.
4602         (mono_metadata_parse_method_signature_full): Refactored the computation of
4603         parameter attributes into a separate function. Also avoid one allocation in
4604         most cases.
4605
4606         * assembly.c (mono_assembly_close): Ditto.
4607
4608         * image.c (mono_image_close): Log trace messages with INFO level.
4609
4610         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4611
4612         * image.c reflection.c: Correct reference counting of image modules.
4613         
4614         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4615         of this function from the image mempool.
4616         
4617         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4618         to allow more cached types to be used.
4619
4620         * mono-debug.c (mono_debug_add_method): Appled patch from
4621         David S. Miller  <davem@sunset.davemloft.net>: Access 
4622         minfo->lexical_blocks[] entry elements using read32().
4623
4624 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4625
4626         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4627         methods as it is allocated from the mempool.
4628
4629         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4630         image mempool.
4631
4632         * metadata-internals.h: Add comments describing the reference counting scheme
4633         used for MonoImage and MonoAssembly.
4634
4635         * image.c assembly.c reflection.c: Rework reference counting of images and 
4636         assemblies so they are freed when the runtime is shut down. Free some 
4637         additional memory structures when an image is unloaded.
4638         
4639 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4640
4641         * class.c loader.c reflection.c: Allocate more data structures in
4642         the image mempool.
4643
4644 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4645
4646         * icall.c
4647         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4648         build on pre glib 2.4 systems.
4649
4650 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4651
4652         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4653
4654         * icall.c: Fix some warnings.
4655
4656 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4657
4658         * culture-info-table.h : regenerated.
4659
4660 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4661
4662         * threads.c, object-internals.h, verify.c: changed the culture caching
4663         code to use a normal MonoArray for storage so the GC can keep track of
4664         them easily. Fixed bits of the cache logic, too and simplified the
4665         code.
4666
4667 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4668
4669         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4670         thread for non-Boehm GCs.
4671
4672 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4673
4674         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4675         needed to keep track of the data for static fields.
4676
4677 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4678
4679         Fix #75172
4680         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4681         for interface classes.  Use 'num_methods' instead.
4682         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4683         before using '->vtable_size' field.
4684
4685 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4686
4687         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4688         doesn't contain managed pointers, so use a normal hashtable.
4689
4690 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4691
4692         * reflection.c, class-internals.h, domain.c: fixed handling of types
4693         used as values for objects in custom attributes (bug #77915):
4694
4695 2006-03-24  Martin Baulig  <martin@ximian.com>
4696
4697         * class.c (mono_class_setup_fields): Added support for generic
4698         instances; fixes #77580.
4699
4700 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4701
4702         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4703
4704 2006-03-24  Dick Porter  <dick@ximian.com>
4705
4706         * file-io.c (get_file_attributes): More stat macro breakage.
4707         Fixes bug 77759.
4708
4709 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4710
4711         * profiler.c: added the file=filename option in the default profiler
4712         to output the profile data to filename.
4713
4714 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4715
4716         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4717         bug #77877.
4718
4719 2006-03-22  Martin Baulig  <martin@ximian.com>
4720
4721         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4722         allocated `MonoClassField *' in `fb->handle'.
4723
4724 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4725
4726         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4727         allocate interface ID to save memory and allow better ID reuse on
4728         appdomain unload. setup_generic_vtable () removal from Martin.
4729
4730 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4731
4732         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4733         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4734         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4735         write barriers for reference stores with managed objects accessed with
4736         C structures in the runtime and in embedding programs.
4737
4738 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4739
4740         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4741         'interface_id' and 'max_interface_id' fields of MonoClasses
4742         representing open generic types.
4743
4744 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4745
4746         * object.h, object.c, icall.c: added functions to deal with
4747         storing valuetypes that contain references in managed objects.
4748         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4749         fixes and comments around uses of mono_array_addr ().
4750
4751 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4752
4753         * object.h, icall.c, monitor.c: object.GetHashCode ()
4754         implementation that supports the moving garbage collector.
4755
4756 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4757
4758         * icall.c, threads-types.h, threads.c: implemented finalizer for
4759         LocalDataStoreSlot.
4760
4761 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4762
4763         * metadata.c (mono_type_size): Add a fixme.
4764         (mono_type_stack_size): Ditto.
4765
4766         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4767         'type_forwarders' field.
4768
4769         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4770         attribute from net 2.0.
4771
4772         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4773         from class.c.
4774
4775         * class.c (mono_class_setup_fields): Fix a warning.
4776         
4777         * class.c (mono_class_from_name): Add support for assemblyref entries
4778         in the EXPORTEDTYPE table.
4779
4780         * reflection.c: Add support for handling type forwarders under net 2.0.
4781
4782         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4783         
4784 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4785
4786         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4787         overwriting entries in ModuleBuild->types, also clean up the code
4788         a little. Fixes #77774.
4789
4790 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4791
4792         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4793         load friend assembly info when present.
4794
4795 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4796
4797         Fix crasher on gtest-158.cs.
4798         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4799         the return value if the MonoClass we want is yet in an
4800         inconsistent state.
4801         * class.c (mono_class_create_from_typedef): Add an comment
4802         explaining an order dependency between mono_class_setup_parent and
4803         mono_class_setup_mono_type.
4804
4805 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4806
4807         * class.c: documentation updates and events bug fix.
4808
4809 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4810
4811         * class.c: some cleanup, locking fixes.
4812
4813 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4814
4815         * class.c: fix the generics code to setup nested
4816         type info to the instantiated type (bug #77770).
4817
4818 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4819
4820         * marshal.c: fixed a few type correctness issues.
4821
4822 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4823
4824         * loader.c: the Set/Get/Addrtess array methods should be public.
4825
4826 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4827
4828         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4829         
4830         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4831         info->wrapper.
4832
4833 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4834
4835         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4836
4837         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4838
4839         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4840         (mono_mempool_alloc0): Ditto.
4841
4842 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4843
4844         * socket-io.c:
4845         (create_object_from_sockaddr): it was allocating 4 extra bytes
4846         for the AF_UNIX data. Fixes bug #77747.
4847
4848 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4849
4850         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4851
4852 2006-03-09  Dick Porter  <dick@ximian.com>
4853
4854         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4855         Fixes bug 76966 again.
4856
4857 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4858
4859         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4860         names from r57532
4861         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4862
4863 2006-03-07  Martin Baulig  <martin@ximian.com>
4864
4865         * object.c
4866         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4867
4868 2006-03-07  Martin Baulig  <martin@ximian.com>
4869
4870         * class.c
4871         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4872         regression introduced in r56970; see gtest-252.cs.
4873
4874         * loader.c (mono_get_method_constrained): Correctly handle generic
4875         methods; see gtest-253.cs.
4876
4877 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4878
4879         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4880
4881 2006-03-04  Martin Baulig  <martin@ximian.com>
4882
4883         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4884         compute the parent type at runtime, just like we're already doing
4885         it for interfaces.
4886
4887         * reflection.c
4888         (mono_reflection_bind_generic_parameters): Don't compute the
4889         parent type anymore.
4890
4891         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4892
4893 2006-03-04  Martin Baulig  <martin@ximian.com>
4894
4895         * mono-debug-debugger.h
4896         (mono_debugger_create_notification_function): Allocate memory at
4897         runtime and return a pointer to it.
4898
4899 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4900
4901         * assembly.c: Fix windows build.
4902         
4903         * assembly.c: Fix build.
4904
4905         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4906
4907         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4908         
4909 2006-03-03  Dick Porter  <dick@ximian.com>
4910
4911         * process.c
4912         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4913         Check parameters before dereferencing them.  Fixes Aaron's part of
4914         bug 77393.
4915
4916 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4917
4918         Fix performance regression.
4919         * loader.c (find_method_in_class): Add 'from_class' argument.
4920         Rename 'klass' argument to 'in_class'.  The signature is compared
4921         against the method in 'in_class', and the corresponding method is
4922         returned from 'from_class'.
4923         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4924         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4925         type definition and generic instantiation in parallel.
4926         (mono_get_method_constrained): Update to changes.
4927
4928 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4929
4930         * threads.c: make sure the domain is correct, too when doing
4931         mono_thread_attach ().
4932
4933 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4934
4935         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4936         windows. Fixes #77683.
4937
4938 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4939
4940         * object.h, *: introduced specific way to set elements of an array
4941         of references to be used as write barrier. Still need to audit the
4942         uses of mono_array_addr.
4943
4944 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4945
4946         * object-internals.h: New field to cache the assmebly name, patch
4947         from Tambet Ingo (tambet@ximian.com)
4948
4949 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4950
4951         * decimal.h, class-internals.h, metadata-internals.h,
4952         file-io.h: mark a few function declarations as internal, to
4953         reduce the number of PLT entries.
4954
4955 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4956
4957         * file-io.c: fix typo in warning message.
4958
4959 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4960
4961         * loader.c: on unix, lookup the "*A" version of a function
4962         if charset is auto as a second option before failing.
4963
4964 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4965
4966         * class.h (mono_class_inflate_generic_method): Revert to two
4967         argument version.
4968         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4969         (mono_class_inflate_generic_method_full): Add.
4970         * class.c (mono_class_inflate_generic_method_full): Rename from
4971         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4972         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4973         * loader.c, reflection.c: Update to changes.
4974
4975 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4976
4977         * icall.c: const fixes and small improvements.
4978
4979 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4980
4981         * threadpool.c: for asynchronous connect(), enable the same workaround
4982         for BSD 6 as for the Mac. Fixes bug #77637.
4983
4984 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4985
4986         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4987         formatted classes. Fixes #77524.
4988
4989 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4990
4991         * class.c (inflate_generic_type): Add a couple more
4992         micro-optimizations.
4993         (inflate_generic_context): Don't use the 'gmethod' from
4994         'inflate_with'.
4995         (mono_class_inflate_generic_method): If the method has generic
4996         parameters, but the passed-in context doesn't have a 'gmethod',
4997         create one.  Use the possibly simplified generic instantiation
4998         from the declaring class instead of the one passed in.
4999
5000 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5001
5002         Make generic method signature and method header handling lazy.
5003         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5004         (inflate_generic_header): Likewise.
5005         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5006         parameter to avoid inflating types.
5007         (mono_get_inflated_method): Empty out.
5008         * class.h (mono_class_inflate_generic_method): Update to changes.
5009         * loader.c (mono_get_method_from_token): Don't parse signature for
5010         generic methods, nor methods of generic classes.
5011         (mono_method_signature): Rename from 'mono_method_signature'.
5012         Inflate signature on demand.
5013         (mono_method_get_header): Inflate method header on demand.
5014         * reflection.c: Update to changes.
5015
5016 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5017
5018         * metadata.c (mono_metadata_inflate_generic_inst): If the
5019         instantiation is closed, don't bother expanding it in the new
5020         context.
5021         * class.c (inflate_generic_class): If the generic instantiation
5022         doesn't change after inflation, return the argument itself.
5023         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5024         Add bounds checks.
5025         (inflate_generic_context): If neither the generic class nor the
5026         generic method instantiations change, return the original context.
5027         * reflection.c (mono_method_get_object): Do
5028         'mono_get_inflated_method' before accessing the ->klass field.
5029         (inflate_mono_method): Don't create a MonoGenericMethod unless
5030         necessary.
5031         (inflate_method): Don't pass a constructed type as the declaring
5032         type of a methodbuilder.
5033
5034 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5035
5036         * object.c: fix memory overwrite.
5037
5038 2006-02-22  Dick Porter  <dick@ximian.com>
5039
5040         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5041         it doesn't work any more.
5042         (mono_threads_request_thread_dump): Fix unused variable warnings.
5043
5044 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5045
5046         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5047         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5048         the public header file.
5049
5050 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5051
5052         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5053
5054 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5055
5056         * class-internals.h, object.c: reduce the size of MonoVTable
5057         and store the interface_offsets array at negative offsets.
5058
5059 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5060
5061         * metadata.c: tweak table descriptors data structures to reduce
5062         size and runtime relocations.
5063
5064 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5065
5066         * marshal.c: fix some types and opcodes to be type-safe
5067         in marshaling wrappers.
5068
5069 2006-02-21  Ankit Jain  <jankit@novell.com>
5070
5071         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5072
5073 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5074
5075         * metadata.c (get_constraints): Relax debugging checks for monodis.
5076
5077 2006-02-21  Ankit Jain  <jankit@novell.com>
5078
5079         * metadata.c (mono_metadata_load_generic_params): Move the code
5080         checking for ambiguous generic params from here to mono/dis/get.c
5081         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5082
5083 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5084
5085         Fix assertion triggered when compiling nemerle.
5086         * class.c (mono_get_shared_generic_inst): Rename from
5087         get_shared_inst and make non-static.
5088         * loader.c (mono_get_shared_generic_method): New.  Used to create
5089         the MonoGenericContext-equivalent of a MonoGenericContainer.
5090         (mono_get_method_from_token): Initialize the 'context' field of
5091         the created MonoGenericContainer.
5092         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5093         * metadata.c (get_constraints): Add sanity check.
5094         * class-internals.h: Add new internal methods.
5095
5096         * reflection.c (verify_safe_for_managed_space): New sanity check.
5097         Currently checks that owner-less generic parameters aren't allowed
5098         in managed space.
5099         (mono_type_get_object): Use it.
5100         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5101         that are now in mono_type_get_object.
5102         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5103
5104 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5105
5106         * metadata.c (mono_type_create_from_typespec): Rename from
5107         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5108         argument and caching of types in the generic container.
5109         (unwrap_arrays, find_generic_param): Remove.
5110         * metadata-internals.h: Update.
5111         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5112
5113 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5114
5115         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5116
5117         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5118         return values. Fixes #77581.
5119
5120         * class.c (mono_fnptr_class_get): Switch name and name_space.
5121
5122         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5123         classes and add support for [In, Out] attributes.
5124         (mono_marshal_free_asany): Ditto. Fixes #77524.
5125
5126 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5127
5128         * class.c (mono_class_from_generic_parameter): Make more robust to
5129         incomplete MonoGenericContainers from monodis.
5130
5131 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5132
5133         * class-internals.h: added some more exception types.
5134         * class.c, metadata.c: added a few checks to handle missing
5135         types.
5136
5137 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5138
5139         Use owner-less generic-params some more.
5140         * class.c (my_mono_class_from_generic_parameter): Remove.
5141         (mono_class_from_generic_parameter): Handle null image,
5142         param->name and param->owner.
5143         (mono_class_from_mono_type): Update.
5144         (mono_class_create_from_typespec): Remove 'container' parameter.
5145         If that parameter is non-null, the result is always inflated by
5146         'mono_class_get_full' anyway.
5147         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5148         parameter.
5149         (mono_class_get_full): Update.
5150
5151         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5152         instance is not open, don't bother inflating.
5153         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5154         parse metadata for inflated classes.
5155         (_mono_class_get): Change GenericContext* parameter to
5156         GenericContainer*.
5157         (mono_class_create_from_typespec): Likewise.  Simplify, and
5158         implement trivially.  All the cases are handled in
5159         mono_class_from_mono_type.  Don't inflate returned class.
5160         (mono_class_get_full): Delegate GENERICINST optimization to
5161         inflate_generic_type.
5162         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5163
5164 2006-02-16  Dick Porter  <dick@ximian.com>
5165
5166         * socket-io.c (create_object_from_sockaddr): Fix typo.
5167         (create_sockaddr_from_object): Check array lengths before
5168         potentially accessing items off the end.
5169         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5170         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5171         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5172         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5173         length checks to avoid wraparound overflows.
5174         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5175         contents of the array of sockets
5176         (hostent_to_IPHostEntry2)
5177         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5178         Check return value of inet_ntop ().
5179         (addrinfo_to_IPHostEntry): Fix typo
5180
5181 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5182
5183         Type metadata parsing doesn't use generic-instantiation information.
5184         * metadata.c (mono_metadata_parse_array_full): Change
5185         MonoGenericContext* parameter to MonoGenericContainer*.
5186         (mono_metadata_parse_type_full): Likewise.
5187         (mono_type_create_from_typespec_full): Likewise.
5188         (mono_metadata_parse_mh_full): Likewise.
5189         (mono_metadata_parse_generic_inst): Likewise.
5190         (do_mono_metadata_parse_generic_class): Likewise.
5191         (do_mono_metadata_parse_type): Likewise.
5192         * metadata-internals.h: Update to changes.
5193         * class.c (mono_class_find_enum_basetype): Likewise.
5194         (mono_class_setup_fields): Likewise.
5195         (mono_class_create_from_typespec): Likewise.
5196         * loader.c (method_from_methodspec): Likewise.
5197         (mono_get_method_from_token): Likewise.
5198         (mono_method_get_header): Likewise.
5199
5200 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5201
5202         * marshal.c: handle additional GENERICINST case (patch from
5203         Thong Nguyen <tum@veridicus.com>).
5204         Fix a few cases where LDIND_I/STIND_I was used for references.
5205
5206 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5207
5208         * reflection.c (mono_reflection_get_token): Remove unused variable.
5209
5210 2006-02-16  Martin Baulig  <martin@ximian.com>
5211
5212         * reflection.c (mono_reflection_get_token): Add support for fields
5213         in instantiated generic types.
5214
5215         * icall.c
5216         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5217
5218 2006-02-15  Martin Baulig  <martin@ximian.com>
5219
5220         * icall.c
5221         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5222         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5223         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5224         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5225
5226 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5227
5228         * class.c, metadata.c, metadata.h, object.c, icall.c,
5229         marshal.c: changed mono_type_get_underlying_type () to do
5230         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5231         Fixed handling of instantiated generic valuetypes (bug #75479).
5232
5233 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5234
5235         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5236         Delegate to mono_metadata_decode_value, and work on the returned value.
5237
5238         * icall.c (ves_icall_MonoType_GetGenericArguments):
5239         Add consistency check here too.
5240         
5241 2006-02-15  Ankit Jain  <jankit@novell.com>
5242
5243         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5244         char/short etc.
5245
5246 2006-02-15  Ankit Jain  <jankit@novell.com>
5247
5248         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5249         signed values, used only for representing lower bounds of arrays.
5250         (mono_metadata_parse_array_full): Use new
5251         mono_metadata_decode_signed_value to decode lower bounds.
5252
5253 2006-02-14  Martin Baulig  <martin@ximian.com>
5254
5255         * reflection.c
5256         (mono_reflection_get_token): Support "MonoGenericMethod" and
5257         "MonoGenericCMethod" and allow generic instances / methods.
5258
5259 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5260
5261         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5262         to obtain the terminal size using an ioctl.
5263
5264         * object.c (mono_nullable_init): Revert this as nullable reference
5265         types are not valid.
5266         (mono_nullable_box): Ditto.
5267
5268 2006-02-09  Dick Porter  <dick@ximian.com>
5269
5270         * threads.c (mono_thread_detach): Drop a reference to the thread
5271         we're detaching.
5272
5273 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5274
5275         * object.c (mono_nullable_init): Handle nullable reference types.
5276         (mono_nullable_box): Ditto. Fixes #77446.
5277
5278 2006-02-07  Martin Baulig  <martin@ximian.com>
5279
5280         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5281
5282 2006-02-07  Ankit Jain  <jankit@novell.com>
5283
5284         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5285         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5286         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5287         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5288         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5289         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5290
5291 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5292
5293         * class.c (mono_class_create_generic): Set type_token as well.
5294
5295         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5296         compatible with MS.
5297
5298 2006-02-02  Martin Baulig  <martin@ximian.com>
5299
5300         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5301         has never been used so far.
5302
5303 2006-02-02  Martin Baulig  <martin@ximian.com>
5304
5305         * mono-debug-debugger.h: Changed comment at the top of this file;
5306         the header is not installed, but it's safe to #include it from
5307         within the JIT.
5308
5309         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5310         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5311
5312 2006-02-02  Martin Baulig  <martin@ximian.com>
5313
5314         * mono-debug.h
5315         (MonoSymbolTable): Removed the `metadata_info' field.
5316
5317         * mono-debug.c
5318         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5319
5320         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5321         (mono_debugger_add_builtin_types): Removed.
5322         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5323         (mono_debugger_create_notification_function): We now operate on a
5324         pre-allocated area; take a `gpointer' and return `void'.
5325
5326         * mono-debug-debugger.c
5327         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5328         (mono_debugger_add_builtin_types): Removed.
5329
5330 2006-02-02  Martin Baulig  <martin@ximian.com>
5331
5332         * threads.c (mono_debugger_create_all_threads): New public method.
5333
5334 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5335
5336         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5337         breaks on several platforms.
5338
5339 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5340
5341         * assembly.c: the VS.NET build doesn't supply default values for
5342         MONO_ASSEMBLIES and MONO_CFG_DIR.
5343
5344 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5345
5346         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5347         helper function.
5348
5349         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5350
5351         * loader.c (method_from_memberref): Fix a warning.
5352
5353         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5354
5355         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5356         with explicit layout. Fixes #77433.
5357
5358 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5359
5360         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5361         max_interface_id is initialized before using it. Fixes #77398.
5362         (ves_icall_Type_GetInterfaces): Ditto.
5363
5364 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5365
5366         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5367         allocate memory for parameter attributes when parsing memberref
5368         signatures.
5369         * loader.c (mono_loader_set_error_method_load): Don't warn.
5370         (method_from_memberref): Ensure MissingMethodException gets thrown
5371         if method is not found.  Make warning more informative.
5372
5373 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5374
5375         Fix #77397
5376         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5377         return true if is byref.
5378         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5379         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5380         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5381
5382 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5383
5384         Fix tests/find-method.2.il
5385         * loader.c (find_method, find_method_in_class): Remove is_inflated
5386         argument.  Revert 2006-01-18 change.
5387         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5388         is generic, search for method in its generic definition.
5389         * class.c (mono_class_setup_vtable_general): Print generic
5390         arguments of generic types in debugging printf.
5391
5392 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5393
5394         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5395
5396         * threads.c (mono_threads_request_thread_dump): New helper function.
5397
5398 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5399
5400         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5401
5402 2006-01-25  Ankit Jain  <jankit@novell.com>
5403
5404         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5405         move definition to ..
5406         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5407         
5408 2006-01-25  Ankit Jain  <jankit@novell.com>
5409             Raja R Harinath  <rharinath@novell.com>
5410
5411         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5412         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5413         as necessary.
5414
5415 2006-01-25  Martin Baulig  <martin@ximian.com>
5416
5417         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5418         `MonoDebuggerThread' into debug-debugger.c.
5419
5420 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5421
5422         * profiler.c: fix printing of data.
5423
5424 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5425
5426         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5427           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5428
5429 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5430
5431         * object.c: fix deadlock related to string interning.
5432
5433 2006-01-23  Martin Baulig  <martin@ximian.com>
5434
5435         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5436
5437         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5438
5439 2006-01-23  Martin Baulig  <martin@ximian.com>
5440
5441         * mono-debug.h: Moved the prototypes of some functions which are
5442         used by the JIT here from mono-debug-debugger.h.
5443
5444 2006-01-21  Martin Baulig  <martin@ximian.com>
5445
5446         * Makefile.am: Don't install mono-debug-debugger.h.
5447
5448 2006-01-21  Martin Baulig  <martin@ximian.com>
5449
5450         * mono-debug-debugger.h: Enforce the private status of this header
5451         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5452         Moved some stuff from mono-debugger-jit-wrapper.h here.
5453
5454 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5455
5456         * class.c (mono_class_from_typeref): Add a sanity test to help
5457         catch lack of assembly load/search hooks.
5458
5459 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5460
5461         * marshal.c (emit_struct_conv): Relax the fields with same offset
5462         check even more. Fixes #77230.
5463
5464 2006-01-18  Martin Baulig  <martin@ximian.com>
5465
5466         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5467         argument; if false, we compare the uninstantiated signatures.
5468         (method_from_memberref): Compare the uninstantiated signatures;
5469         fixes #76417.
5470
5471 2006-01-18  Robert Jordan  <robertj@gmx.net>
5472
5473         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5474         Clear the weak link. Fixes bug #77170.
5475
5476         * gc.c (mono_gchandle_free):
5477         Reflect *-gc.c changes (tiny optimization).
5478
5479 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5480
5481         * metadata.c (mono_metadata_signature_dup): Applied patch from
5482         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5483         Fixes #77288.
5484
5485 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5486
5487         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5488         marshalling from native to managed code. Fixes #77230.
5489
5490 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5491
5492         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5493         connect. Fixes bug #77020.
5494
5495 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5496
5497         * class.c: fixed id assignement for nested interfaces (bug #77275).
5498         Added also better info for --print-vtable debugging.
5499
5500 2006-01-12  Martin Baulig  <martin@ximian.com>
5501
5502         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5503         interfaces on-the-fly; fixes #76625.
5504
5505         * class-internals.h
5506         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5507         don't need that anymore.
5508
5509 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5510
5511         * socket-io.c
5512         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5513         To avoid initing the nested_classes when not needed I turned the
5514         PeerCredData as a toplevel internal class, as it has to be shared
5515         anyways. 
5516
5517         Fixes the CASA issue.
5518
5519 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5520
5521         * domain.c: Accessors for MonoJitInfo
5522
5523         * profiler-private.h: Add jitinfo to the end jit hook
5524
5525         * profiler.[ch]: Define new hooks, called after jitting which give
5526         the MonoJitInfo that was compiled
5527
5528 2006-01-10  Martin Baulig  <martin@ximian.com>
5529
5530         * class.c (mono_class_setup_events): Add support for generic
5531         classes; fixes #76440.
5532
5533 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5534
5535         Fix #77160.
5536         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5537         on passed-in method.
5538
5539 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5540
5541         * object.c (mono_runtime_invoke_array): Add Nullable support.
5542
5543         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5544
5545 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5546
5547         * file-io.c: Don't consider sockets as directory and avoid an endless
5548         loop. Fix bug #76966.
5549
5550 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5551
5552         * object.c (mono_nullable_init): New helper function.
5553         (mono_nullable_box): Ditto.
5554
5555         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5556
5557         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5558
5559         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5560         
5561 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5562
5563         * class.c (mono_class_is_assignable_from): Make T assignable to 
5564         Nullable<T>.
5565
5566 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5567
5568         * appdomain.c: Bump corlib version to 46.
5569         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5570         serialization purpose) and changed ves_icall_System_Reflection_
5571         Assembly_get_code_base signature to accept a boolean (to escape, or 
5572         not, the assembly code base).
5573
5574 2005-12-23  Dick Porter  <dick@ximian.com>
5575
5576         * icall.c: 
5577         * threads-types.h: 
5578         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5579         CreateEvent icall now returns "created" boolean parameter.
5580
5581 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5582
5583         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5584         #76967.
5585
5586         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5587         when attr_klass is an interface. Fixes #77045.
5588
5589 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5590
5591         * marshal.c (emit_struct_conv): Fix previous patch.
5592         
5593         * marshal.c (emit_struct_conv): Add a check for fields with the same
5594         offset.
5595
5596 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5597
5598         Fix regression in Mono.C5.
5599         * class.c (mono_class_create_generic): If 'klass' is an interface
5600         set up the interface offsets.
5601         (mono_class_is_assignable_from): Don't throw away generic arguments.
5602
5603 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5604
5605         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5606         type parameters.
5607
5608 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5609
5610         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5611         dead store.
5612         (do_mono_metadata_parse_generic_class): Don't pass the current
5613         generic context when parsing the type being instantiated: it
5614         cannot use it, anyway.
5615
5616         * loader.c (method_from_memberref): Don't inflate a signature if
5617         it doesn't contain any type parameters.
5618
5619 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5620
5621         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5622
5623 2005-12-14  Martin Baulig  <martin@ximian.com>
5624
5625         * class.c
5626         (mono_type_get_name_recurse): Don't return null for type
5627         parameters and open generic classes.
5628         (mono_class_setup_methods): Don't exclude generic instances.
5629         (mono_get_unique_iid): Use different IDs for different
5630         instantiations of the same generic type.
5631         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5632         open generic instances; create a normal vtable for closed generic
5633         instances.
5634         (mono_class_setup_vtable_general): We're now also called for
5635         closed generic instances.
5636
5637         * reflection.c
5638         (mono_reflection_bind_generic_parameters): Correctly use
5639         mono_metadata_lookup_generic_inst() everywhere.
5640
5641 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5642
5643         * object.c (mono_class_create_runtime_vtable): Call 
5644         mono_class_setup_vtable ().
5645
5646         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5647         function.
5648         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5649         #76959.
5650
5651         * loader.c (mono_loader_set_error_type_load): Print the type load
5652         warnings to the console so they are more visible to the user.
5653         (mono_loader_set_error_method_load): Ditto.
5654
5655         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5656         is still broken.
5657         
5658         * reflection.c (ensure_runtime_vtable): Fix build.
5659
5660         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5661         doesn't work in all cases.
5662
5663 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5664
5665         * object.c (mono_array_new_full): Treat a single dimensional array
5666         with 0 lower bounds as an szarray. Fixes #76973.
5667
5668         * reflection.c (custom_attr_visible): Really fix this.
5669
5670 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5671
5672         * reflection.c (custom_attr_visible): Allow nested public attributes
5673         as well.
5674
5675         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5676         interface check.
5677
5678 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5679
5680         * class.c (set_generic_param_owner): Delete.
5681         (mono_class_create_from_typedef): Don't set ->owner field of
5682         generic parameters to "param containers" of enclosing classes.
5683         * reflection.c (mono_reflection_initialize_generic_parameter):
5684         Likewise.
5685
5686 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5687
5688         * reflection.c (custom_attr_visible): Fix build.
5689
5690 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5691
5692         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5693         private attributes.
5694         
5695         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5696         handling of null parameter defaults.
5697
5698 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5699
5700         * class.c (mono_class_from_generic_parameter): Don't set
5701         klass->generic_container.
5702         (my_mono_class_from_generic_parameter): Likewise.
5703
5704 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5705
5706         * reflection.c (load_public_key): Fix a warning.
5707         (method_encode_code): Fix unaligned accesses.
5708
5709 2005-12-07  Martin Baulig  <martin@ximian.com>
5710
5711         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5712
5713         * reflection.c
5714         (write_generic_param_entry): Encode our custom attrs.
5715
5716         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5717
5718 2005-12-07  Martin Baulig  <martin@ximian.com>
5719
5720         * reflection.c (encode_new_constraint): Removed; we don't use the
5721         `NewConstraintAttribute' anymore.
5722
5723 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5724
5725         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5726         not fire a TypeResolve event when Assembly.GetType () is called.
5727
5728 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5729
5730         Beginning of support for nullable types in the runtime. Parts of
5731         this patch are from Martin.
5732
5733         * appdomain.c (MONO_CORLIB_VERSION): Bump
5734
5735         * domain.c (mono_init_internal): get the nullable type
5736
5737         * class.c (mono_class_is_nullable): New method
5738         (mono_class_get_nullable_param): New mehod
5739         (mono_class_create_generic): In types T? set cast_class to T
5740
5741         * class-internals.h (MonoDefaults): new nullable default class
5742         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5743         new methods.
5744
5745 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5746
5747         * metadata.c (select_container): New.  Refactor code to select the
5748         appropriate GenericContainer given the type of generic parameter
5749         we are looking for.
5750         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5751         not a MonoGenericContext.  Use select_container.  Update parameters.
5752         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5753         and MONO_TYPE_MVAR.
5754         (unwrap_arrays): Remove duplicate tests.
5755         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5756         generic instantiated class to find any arguments that are generic
5757         parameters.
5758         (mono_type_create_from_typespec_full): Use find_generic_param to
5759         avoid evicting some generic instantiations from the typespec
5760         cache.
5761
5762 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5763
5764         * reflection.c: fixed writing of doubles on ARM FPA.
5765
5766 2005-12-02  Robert Jordan  <robertj@gmx.net>
5767
5768         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5769
5770 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5771
5772         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5773         least on SUSE 10 they are not the same (on debian, they are just the
5774         same thing).
5775
5776 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5777
5778         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5779         DeclaringType for VARs and MVARs.
5780         * class.c (set_generic_param_owner): Fix initialization of owner
5781         fields.
5782
5783 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5784
5785         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5786
5787 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5788
5789         * threadpool.c: workaround for a bug that shows up on the Mac:
5790         select()+connect() on a blocking socket is not like it should
5791         be, so we proceed to connect() in that case, wasting the I/O
5792         threadpool thread until connect succeedes. Fixes bug #75436.
5793
5794 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5795
5796         * threadpool.c: fix typo when setting file descriptor states.
5797
5798 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5799
5800         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5801         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5802         create a temporary signature container.
5803         (mono_metadata_parse_generic_param): Update to changes.
5804         (mono_type_create_from_typespec_full): Update to changes.
5805         * loader.c (method_from_memberref): Don't use a
5806         MonoGenericContainer while parsing a memberref signature.
5807         (method_from_methodspec): Remove dead-store of the 'container'
5808         variable.  It's overwritten before use.
5809
5810         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5811         checks tighter.
5812         (mono_metadata_parse_generic_param): Likewise.
5813         * loader.c (find_method_in_class): Does not need a
5814         MonoGenericContainer.  Use 'mono_method_signature' rather than
5815         'mono_method_signature_full'.
5816         (find_method, mono_get_method_constrained, method_from_memberref):
5817         Update to changes.
5818
5819         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5820         owner-less generic-parameters are never evicted from the typespec
5821         cache.
5822
5823         * loader.c (method_from_memberref): Don't use the current context
5824         when parsing signatures.
5825         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5826
5827         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5828         side-effects in g_assert.
5829         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5830         that we don't potentially lose information.
5831
5832 2005-11-26  Dick Porter  <dick@ximian.com>
5833
5834         * icall.c:
5835         * threads.c: icalls to implement basic (ie, not named)
5836         System.Threading.Semaphore.
5837
5838 2005-11-24  Dick Porter  <dick@ximian.com>
5839
5840         * process.c
5841         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5842         Use GetProcessId() if it's available.
5843
5844 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5845
5846         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5847
5848 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5849             Ankit Jain  <jankit@novell.com>
5850
5851         * loader.c (mono_get_method_from_token): Initialize 'method' field
5852         of all generic parameters before parsing the signature.  Remove
5853         code that "fixed"-up MVAR references.
5854
5855 2005-11-23  Ankit Jain  <jankit@novell.com>
5856
5857         * metadata.c (mono_metadata_has_generic_params):
5858         (mono_metadata_load_generic_param_constraints):
5859         (mono_metadata_load_generic_params): Move duplicate code ...
5860         (mono_metadata_get_generic_param_row): ... here. Returns the
5861         first row-id in GenericParam table for a given owner (token).
5862         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5863         prototype.
5864
5865 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5866             Ankit Jain  <jankit@novell.com>
5867
5868         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5869         comparing VARs too.
5870         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5871         type->data.generic_param only if the type is an MVAR.
5872         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5873         leak owner-less VARs and MVARs into managed space.
5874
5875 2005-11-21  Martin Baulig  <martin@ximian.com>
5876
5877         * class-internals.h
5878         (MonoMethod): Moved the `generic_container' here from
5879         `MonoMethodNormal' since we now also need it for
5880         `MonoMethodPInvoke';
5881         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5882         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5883         an union containing both `MonoMethodNormal' and
5884         `MonoMethodPInvoke'.
5885
5886         * loader.c
5887         (mono_get_method_from_token): Allow implementing generic methods
5888         as interncalls.
5889
5890         * threads.c
5891         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5892         icall.
5893
5894 2005-11-17  Dick Porter  <dick@ximian.com>
5895
5896         * icall.c: 
5897         * process.h: 
5898         * process.c: Split the Process Start_internal icall into
5899         ShellExecuteEx_internal and CreateProcess_internal, which are
5900         called depending on whether UseShellExecute is true.  Fixes bug
5901         76670.
5902
5903         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5904
5905 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5906
5907         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5908         'msize' parameters, use the information in 'mspec' instead.
5909         (emit_object_to_ptr_conv): Ditto.
5910
5911         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5912         fields out of order. Fixes #76733.
5913
5914 2005-11-17  Ankit Jain  <jankit@novell.com>
5915
5916         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5917
5918 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5919
5920         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5921           bug #76575.
5922
5923 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5924
5925         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5926         for types with non-auto layout. Fixes #76717.
5927
5928 2005-11-16  Ankit Jain  <jankit@novell.com>
5929
5930         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5931         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5932         if generic_context is null.
5933           (mono_metadata_generic_param_equal): param->owner can be null.
5934           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5935         null.
5936
5937 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5938
5939         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5940         the correct value.
5941
5942 2005-11-15  Martin Baulig  <martin@ximian.com>
5943
5944         * object.c (set_value): Use mono_class_from_mono_type() instead of
5945         the hack for generic instances; fixes #76136.
5946
5947 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5948
5949         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5950         fields.
5951
5952         * image.c (load_metadata_ptrs): Initialize the new fields.
5953
5954         * reflection.c (create_dynamic_mono_image): Ditto.
5955
5956         * reflection.c (build_compressed_metadata): Use the new fields.
5957
5958         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5959         icall.
5960
5961         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5962         icall.
5963         
5964 2005-11-15  Ankit Jain  <jankit@novell.com>
5965             Raja R Harinath  <harinath@gmail.com>
5966
5967         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5968         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5969         new per-generic_container cache if the cached MonoType's context matches
5970         the current context.
5971           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5972         to the expected context.
5973           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5974
5975 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5976
5977         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5978         we changed the signature of an icall.
5979         * icall.c: Modify to mono_double_ParseImpl return true/false 
5980         depending on the success, instead of throwing the exception. This will
5981         help us in Double.TryParse methods.
5982         
5983 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5984
5985         * marshal.c (emit_marshal_object): Throw an exception when
5986         marshalling 'object' instead of crashing. Fixes #76696.
5987
5988 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5989
5990         * class-internals.h: Add prototype for mono_type_get_full_name ().
5991
5992 2005-11-11  Dick Porter  <dick@ximian.com>
5993
5994         * threads.c (mono_thread_manage): Make sure the main thread has
5995         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5996
5997 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5998
5999         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6000         console about the missing type.
6001         (mono_loader_set_error_method_load): Ditto.
6002
6003 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6004
6005         * mono-config.c (mono_get_config_dir): Set the system defaults if
6006         none is specified.
6007
6008         * assembly.c (mono_set_dirs): New API entry point to set the
6009         assembly and the config directory in one call
6010
6011 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6012
6013         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6014         the ftnptr was created from a delegate in a domain other than the
6015         current domain. Fixes #75377.
6016
6017         * exception.h exception.c: Add mono_get_exception_not_supported ().
6018
6019 2005-11-08  Martin Baulig  <martin@ximian.com>
6020
6021         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6022
6023 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6024
6025         * security-manager.h: Added definitions to deal with strongname key 
6026         pairs bigger (and smaller) than 1024 bits.
6027         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6028         adjust wrt the public key length being used.
6029
6030 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6031
6032         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6033           Windows build (r51396-51397).
6034
6035 2005-11-03  Martin Baulig  <martin@ximian.com>
6036
6037         * class.c (mono_class_setup_vtable_general): Also add generic
6038         methods to the vtable; fixes #76581.
6039
6040 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6041
6042         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6043         sure that we lookup GetString method from the System.Text.Encoding
6044         class, not the derived class or we get an empty method.
6045
6046         Fixed class #76612.
6047
6048 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6049
6050         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6051         if it has been previously set (embedders). 
6052
6053         Make mono_set_rootdir available also on Unix.
6054
6055 005-10-24  Robert Jordan  <robertj@gmx.net>
6056
6057         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6058
6059 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6060
6061         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6062         only calls which are made to native code use this flag.
6063
6064         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6065
6066 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6067
6068         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6069         Add support for FieldBuilders.
6070
6071 2005-10-29  Martin Baulig  <martin@ximian.com>
6072
6073         * mono-debug.c
6074         (mono_debug_using_mono_debugger): New public method; returns
6075         whether we're running inside the debugger.
6076
6077 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6078
6079         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6080         for Method/Constructor/FieldBuilders.
6081
6082 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6083
6084         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6085         and fields as well.
6086
6087 2005-10-26  Martin Baulig  <martin@ximian.com>
6088
6089         * mono-debug-debugger.c
6090         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6091
6092 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6093
6094         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6095         integer to isspace.
6096
6097 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6098
6099         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6100         when passing valuetypes byref. Fixes #76502.
6101
6102 2005-10-19  Jackson Harper  <jackson@ximian.com>
6103
6104         * profiler.c: Don't put a . in front of types that are not in a
6105         namespace.
6106
6107 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6108
6109         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6110
6111 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6112
6113         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6114         #76436.
6115         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6116
6117 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6118
6119         * assembly.c metadata-internals.h icall.c: Define an additional
6120         parameter for mono_assembly_name_parse_full, so we can avoid creating
6121         S.R.AssemblyName.Version when no version info wasn't passed.
6122         
6123 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6124
6125         * class.c (mono_type_get_full_name): Reimplement method that was
6126         removed. 
6127
6128         * image.c: Some docs
6129
6130 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6131
6132         * profiler.c (output_newobj_profile): Fix printing of Total memory
6133         on x86.
6134
6135 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6136
6137         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6138
6139 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6140
6141         * threads.c: remove debug output.
6142
6143 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6144
6145         * threads.c (mono_thread_manage): Fix crashes if more than 64
6146         threads need to be aborted. Hopefully fixes #75899.
6147
6148         * assembly.c (mono_stringify_assembly_name): New helper function.
6149
6150         * class.c: Use mono_stringify_assembly_name instead of the similar
6151         static function.
6152
6153         * assembly.h assembly.c: Add support for calling a postload search 
6154         hook if an assembly cannot be loaded.
6155
6156         * appdomain.c: Register new search hooks which call the AssemblyResolve
6157         events in AppDomain. Fixes #75231
6158
6159 2005-10-07  Martin Baulig  <martin@ximian.com>
6160
6161         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6162         methods without debug info.
6163
6164 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6165
6166         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6167         wrappers.
6168
6169 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6170
6171         * file-io.c: now that we return symlinks, use lstat and, when the file
6172         is a symbolic link, stat, to get the file attributes. Also avoid the
6173         conversion to/from utf16/external.
6174
6175 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6176
6177         * class.c (mono_class_layout_fields): Compute klass->has_references
6178         correctly if an embedded valuetype is not yet initialized. Fixes
6179         #76331.
6180
6181 2005-10-04  Martin Baulig  <martin@ximian.com>
6182
6183         * metadata.c
6184         (mono_metadata_load_generic_param_constraints): New public
6185         function; splitted the constraints loading out from
6186         mono_metadata_load_generic_params().
6187
6188         * class.c (mono_class_create_from_typedef): Call
6189         mono_metadata_load_generic_param_constraints() after setting up
6190         the type and creating our parent; fixes #75329.
6191
6192 2005-10-04  Martin Baulig  <martin@ximian.com>
6193
6194         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6195         non-dynamic parent classes.
6196
6197 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6198
6199         * file-io.c : win32 build fix (ETXTBSY seems not found).
6200
6201 2005-10-04  Martin Baulig  <martin@ximian.com>
6202
6203         * reflection.c
6204         (mono_image_get_methodspec_token): Make the cache actually work;
6205         fixes #75974.
6206
6207 2005-10-04  Martin Baulig  <martin@ximian.com>
6208
6209         * class.c (mono_class_name_from_token): Removed the unneccessary
6210         `MonoGenericContext *' argument.
6211
6212 2005-10-04  Martin Baulig  <martin@ximian.com>
6213
6214         * loader.c
6215         (method_from_methodspec): Make the caching work again; fixes the
6216         performance regression from #76262.
6217
6218 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6219
6220         * file-io.c:
6221         * file-io.h:
6222         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6223         GetFileSystemEntries that performs the same work but without going
6224         into io-layer, locking, etc.
6225
6226 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6227
6228         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6229         ThreadState_Stopped as well. Fixes #76047.
6230
6231 2005-09-29  Martin Baulig  <martin@ximian.com>
6232
6233         * class.c
6234         (inflate_generic_context): If the new context has a `gmethod', set
6235         its `container' that that gmethod's `container'.
6236
6237         * metadata.c
6238         (mono_metadata_parse_generic_param): Simplify things;
6239         `generic_container = generic_context->container;' is just fine.
6240
6241         * loader.c (method_from_methodspec): Code cleanups.
6242
6243 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6244
6245         * decimal.c: fix warning (and let gcc generate correct
6246         code on ARM with optimizations).
6247
6248 2005-09-28  Martin Baulig  <martin@ximian.com>
6249
6250         * loader.c
6251         (method_from_memberref): Added `MonoGenericContext *class_context'
6252         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6253         (method_from_methodspec): If we're a memberref, use the enclosing
6254         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6255
6256 2005-09-28  Martin Baulig  <martin@ximian.com>
6257
6258         * object.c (mono_runtime_invoke_array): Added support for
6259         MONO_TYPE_GENERICINST; fixes #75917.
6260
6261 2005-09-27  Martin Baulig  <martin@ximian.com>
6262
6263         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6264         `k->byval_arg.type' to determine the actual type.
6265
6266         * loader.c (method_from_methodspec): Removed some hacks.
6267
6268 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6269
6270         * class-internals.h (mono_field_is_deleted): Do the test for
6271         rtspecialname before we check the actual name of the field. This
6272         prevents us from dereferencing a pointer into the string table,
6273         saving us from accessing a few pages
6274
6275         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6276         macros. This will allow a deadlock debugger to easily be plugged
6277         in.
6278
6279 2005-09-27  Martin Baulig  <martin@ximian.com>
6280
6281         * loader.c (method_from_methodspec): Create a "signature"
6282         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6283
6284 2005-09-27  Martin Baulig  <martin@ximian.com>
6285
6286         * class.c
6287         (inflate_generic_class): Correctly set the new context's
6288         container.
6289
6290         * loader.c
6291         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6292         instead of a `MonoGenericContext *'.
6293         (mono_method_signature_full): Take a `MonoGenericContainer *'
6294         instead of a `MonoGenericContext *'.
6295
6296         * metadata.c
6297         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6298         instead of a `MonoGenericContext *'.
6299         (mono_metadata_parse_method_signature_full): Likewise.
6300
6301 2005-09-26  Martin Baulig  <martin@ximian.com>
6302
6303         * class.c
6304         (mono_class_from_generic_parameter): Set `klass->generic_container'
6305         (mono_class_from_generic_parameter): Likewise.
6306         (mono_bounded_array_class_get): We inherit the generic container
6307         from the element class.
6308
6309         * loader.c
6310         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6311         argument rather than computing it here.
6312         (method_from_memberref): Correctly set the generic context before
6313         parsing the signature.  Fixes #75681.
6314
6315 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6316
6317         * object.c (mono_class_has_special_static_fields): Fix warnings.
6318
6319 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6320
6321         * assembly.c: Add parse_public_key function, to
6322         par the public keys. Also added mono_assembly_name_parse_full,
6323         to define it the parsed key should be freed or not.
6324         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6325         to parse a long format assembly name.
6326         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6327         private, since calling it to preserve the key requires
6328         freeing it manually.
6329         
6330 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6331
6332         * locales.c : removed HAVE_ICU part.
6333
6334 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6335
6336         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6337         field_is_special_static if the klass has no special static fields.
6338
6339         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6340         (MonoCachedClassInfo): Likewise.
6341
6342         * object.c (mono_class_has_special_static_fields): New helper function.
6343
6344 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6345
6346         * class.c (mono_class_create_from_typedef): Don't call 
6347         interfaces_from_typedef_full for enums.
6348         (mono_class_create_from_typedef): Compute the base types of enums directly
6349         without calling mono_class_setup_fields ().
6350         (mono_class_find_enum_basetype): New helper function.
6351
6352         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6353         one place inside the string heap.
6354         
6355 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6356
6357         * class.c: locking fixes, code cleanups, some docs added.
6358         Allocate some data structures in the image mempool.
6359
6360 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6361
6362         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6363         the example code.
6364         
6365 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6366
6367         * class-internals.h, class.c, reflection.c: reduce memory taken by
6368         MonoClass.
6369
6370 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6371
6372         * metadata.c, metadata.h, loader.h: documentation updates, code and
6373         API cleanups.
6374
6375 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6376
6377         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6378         the example code.
6379
6380         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6381         page faults caused by the runtime while reading metadata.
6382
6383 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6384
6385         * socket-io.c: the field names were changed 3 months ago and no one
6386         realized until bug #76077 got filed!
6387
6388 2005-09-20  Martin Baulig  <martin@ximian.com>
6389
6390         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6391
6392 2005-09-20  Martin Baulig  <martin@ximian.com>
6393
6394         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6395         write the rank into the class entry.
6396
6397 2005-09-20  Martin Baulig  <martin@ximian.com>
6398
6399         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6400
6401 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6402
6403         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6404
6405         * icall.c (custom_attrs_defined_internal): New icall.
6406
6407         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6408         function.
6409         (mono_custom_attrs_construct_by_type): New helper function.
6410
6411 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6412
6413         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6414         terminate the resulting string. Fixes #76123.
6415
6416 2005-09-16  Martin Baulig  <martin@ximian.com>
6417
6418         * mono-debug.c
6419         (mono_debug_add_method): Ignore inflated methods for the moment.
6420
6421 2005-09-14  Martin Baulig  <martin@ximian.com>
6422
6423         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6424
6425 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6426
6427         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6428         return a success/failure indication.
6429         (mono_metadata_interfaces_from_typedef_full): Ditto.
6430         (get_constraints): Ditto.
6431
6432 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6433
6434         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6435         
6436         * marshal.c (emit_marshal_array): Add support for returning string
6437         arrays from delegates. Fixes #76063.
6438
6439         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6440
6441 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6442
6443         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6444         icall.
6445
6446 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6447
6448         * reflection.c icall.c: Fix after mono_get_exception_type_load
6449         signature change.
6450
6451         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6452         (mono_assembly_load_reference): Use the new helper.
6453
6454         * class-internals.h (MonoLoaderError): New structure containing 
6455         information about type loading errors.
6456
6457         * class-internals.h loader.c: Add APIs to store per-thread loader
6458         error information.
6459
6460         * loader.c class.c: Set the loader error if needed.
6461
6462         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6463
6464 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6465
6466         * decimal.c: fixed to handle the broken ARM fp format.
6467
6468 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6469
6470         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6471         broken.
6472
6473 2005-09-06  Martin Baulig  <martin@ximian.com>
6474
6475         * domain.c (supported_runtimes): Added v2.0.50727.
6476
6477 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6478
6479         * culture-info.h: reduce the size of some structures.
6480
6481 2005-09-05  Martin Baulig  <martin@ximian.com>
6482
6483         Reflect latest API changes in the August CTP.
6484
6485         * icall.c
6486         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6487         ("MonoType.HasGenericArguments"): Removed.
6488         ("MonoMethod.BindGenericParameters"): Renamed to
6489         "MakeGenericMethod".
6490         ("MethodBuilder.BindGenericParameters"): Renamed to
6491         "MakeGenericMethod".    
6492
6493 2005-09-05  Martin Baulig  <martin@ximian.com>
6494
6495         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6496
6497 2005-09-05  Martin Baulig  <martin@ximian.com>
6498
6499         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6500
6501         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6502         generic_container is non-NULL.
6503
6504 2005-09-05  Martin Baulig  <martin@ximian.com>
6505
6506         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6507
6508         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6509
6510 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6511
6512         * reflection.c (encode_locals,
6513         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6514         for large generic types.
6515
6516 2005-09-05  Martin Baulig  <martin@ximian.com>
6517
6518         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6519
6520         * class.c (mono_dup_array_type): New public method.
6521         (mono_metadata_signature_deep_dup): New public method.
6522         (dup_type): Correctly duplicate array and function types.
6523
6524 2005-09-05  Martin Baulig  <martin@ximian.com>
6525
6526         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6527
6528         * reflection.c (get_default_param_value_blobs): Handle generic types
6529         and generic methods.
6530
6531 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6532
6533         * class.c: Fixed error reporting (method/class were inversed) for 
6534         inheritance demands.
6535         * security-manager.c|h: Added the AppDomain when calling the managed
6536         System.Security.SecurityManager.InheritanceDemand method.
6537
6538 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6539
6540         * reflection.c (encode_marshal_blob): 'marshaltype' and
6541         'marshaltyperef' are alternate sources for the custom marshaler
6542         name.
6543
6544 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6545
6546         * class.c: fix creation of array classes with rank == 1
6547         (patch by Ankit Jain <jankit@novell.com>).
6548
6549 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6550
6551         * object.c: fix check for creating the bound data for arrays vs
6552         szarrays.
6553
6554 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6555
6556         * object.c: configuration file name is now based on the executable name,
6557         not the image name. Fixes bug #75931.
6558
6559 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6560
6561         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6562         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6563
6564 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6565
6566         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6567
6568 2005-08-24  Ankit Jain  <jankit@novell.com>
6569             Raja R Harinath  <rharinath@novell.com>
6570
6571         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6572           called by it recursively.
6573           (mono_class_init): Remove special case in pending_init handling, since it's
6574           superseded by the fix to mono_class_from_typeref.
6575
6576 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6577
6578         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6579         BROKEN_THREAD_START stuff.
6580
6581 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6582
6583         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6584         trampoline.
6585
6586         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6587         
6588         * object.c (mono_delegate_ctor): Replace the original function address with
6589         a delegate trampoline.
6590
6591 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6592
6593         * icall.c: add boolean argument to base64_to_byte_array and 
6594         InternalFromBase64String to control whether a whitespace-only string
6595         is allowed (or should casue a FormatException to be thrown). We need
6596         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6597         to match the MS behaviour in both profiles.
6598         * appdomain.c: Bump corlib version.
6599
6600 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6601
6602         This patch implements a big portion of publisher policy
6603         support, used to bind assembly versions and redirect
6604         one assembly from version A to version B.
6605
6606         * assembly.c:
6607         New GSList loaded_assembly_bindings, for storing the cached
6608         assembly bindings.
6609         (assembly_binding_maps_name): New static function for checking if a 
6610         assembly binding information maps an assembly name.
6611         (mono_assembly_binding_info_free): New function for freeing
6612         assembly binding information resources.
6613         (get_publisher_policy_info): New static function for retrieving 
6614         assembly binding information from a MonoImage.
6615         (compare_versions): New static function for comparing an assembly
6616         binding information data and the version of an assembly name.
6617         (check_policy_versions): New static function for checking if an
6618         assembly binding info mapping an assembly name is valid for it.
6619         (mono_assembly_load_publisher_policy): New static function for
6620         loading the 'policy.major.minor.MyAssembly' image for an assembly
6621         with an assembly name 'aname'.
6622         (mono_assembly_bind_version): New static function for updating
6623         assembly redirection.
6624         (mono_assembly_apply_binding): New static function for applying
6625         assembly binding.
6626         (search_binding_loaded): New static function for searching 
6627         loaded assembly binding infos in the cache domain.
6628         (mono_assembly_load_full): Don't apply assembly binding for
6629         reflection only assemblies.
6630
6631         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6632         which contains information about assembly binding. Also
6633         declare signature for mono_config_parse_publisher_policy ()
6634         function, used to retrieve pub policy info.
6635         
6636         * mono-config.c:
6637         (publisher_policy_start): New static function used to parse publisher 
6638         policy config files.
6639         (publisher_policy_parser): New static MonoParseHandler containing 
6640         the functions used when parsing config files.
6641         (mono_config_parse_publisher_policy): New function for parsing
6642         publisher policy files.
6643         
6644 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6645
6646         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6647
6648         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6649
6650         * object.c (mono_get_addr_from_ftnptr): New helper function.
6651
6652         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6653
6654         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6655
6656 2005-08-19  Dick Porter  <dick@ximian.com>
6657
6658         * threads.c, threads.h, appdomain.c, appdomain.h,
6659         profiler-private.h, monitor.c, object.c, object-internals.h,
6660         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6661         store the thread ID, so it can hold a 64 bit value if needed.
6662
6663 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6664
6665         * reflection.c (mono_reflection_create_dynamic_method): Store the
6666         handle class into the method references as well so ldtoken works in
6667         dynamic methods.
6668
6669         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6670         types.
6671
6672 2005-08-19  Ankit Jain <jankit@novell.com>
6673
6674         Fix #75847.
6675         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6676           here rather than using the method signature of a arbitrary function
6677           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6678           two arguments.
6679           Hack done with Harinath.
6680
6681 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6682
6683         * threadpool.c: disable printing stack traces when we get a exception
6684         in a threadpool thread. I need to do more testing to figure out which
6685         cases actually print this. Fixes bug #75828.
6686
6687 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6688
6689         * icall.c: there might be ignored whitespace after the last '='. This
6690         fixes length computation and bug #75840.
6691
6692 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6693
6694         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6695         well. Fixes #75809.
6696
6697         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6698         #75784.
6699         
6700         * reflection.c (create_custom_attr_data): Ditto.
6701
6702 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6703
6704         * locales.c, culture-info.h : removed RegionLCIDMap.
6705         * culture-info-tables.h : regenerated.
6706
6707 2005-08-16  Martin Baulig  <martin@ximian.com>
6708
6709         * class.c (mono_type_get_name_recurse): Small fix.
6710
6711 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6712
6713         * locales.c : indentation fixie.
6714
6715 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6716
6717         * object-internals.h,
6718           locales.h,
6719           locales.c,
6720           culture-info.h,
6721           icall.c : added RegionInfo table support.
6722         * culture-info-table.h : regenerated for region support.
6723
6724 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6725
6726         * reflection.c (resolve_object): handle all kinds of MonoMethod
6727         including generic ones
6728
6729 2005-08-12  Ankit Jain <jankit@novell.com>
6730
6731         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6732           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6733
6734 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6735
6736         * process.c: Don't close a thread handle when it's NULL. This is a
6737         workaround for bug #75733.
6738
6739 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6740
6741         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6742
6743 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6744
6745         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6746
6747 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6748
6749         * threadpool.c: if a work item in the thread pool has a callback that
6750         catches a exception, don't propagate it after invoking the callback.
6751         Fixes bug #75336.
6752
6753 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6754
6755         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6756
6757         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6758
6759         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6760
6761         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6762
6763 2005-08-03  Ankit Jain  <jankit@novell.com>
6764
6765         Fix #75683.
6766         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6767           PInvoke calling convention is 0.
6768
6769 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6770
6771         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6772         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6773
6774 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6775
6776         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6777         to handle threads not started by the GC (patch by Michael Meeks
6778         <michael.meeks@novell.com>).
6779
6780 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6781
6782         * reflection.c: Make buffer used in emitting types larger for some
6783         big generic types (patch by Michal Moskal).
6784
6785 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6786
6787         * mono-debug.c: Fix some (not all) alignment problems.
6788
6789 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6790
6791         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6792         Invoke mono_image_load_from_data_full passing the refonly
6793         parameter.
6794
6795         * assembly.c
6796         (mono_assembly_open_from_bundle): Add the refonly argument, 
6797         in order to pass it to other methods it calls to.
6798         (do_mono_assembly_open): Add the refonly argument, in order 
6799         to pass it to other methods it calls to.
6800         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6801         the refonly parameter to it.
6802
6803         * image.c: Add loaded_images_refonly_hash and
6804         loaded_images_refonly_guid_hash to cache the reflection
6805         only loaded images.
6806         (mono_images_init): Initialize the hash tables used for
6807         caching the reflection only images.
6808         (load_modules): Invoke mono_image_open_full passing the refonly
6809         parameter to load the modules the correct way.
6810         (build_guid_table): Add the refonly argument, to re-build the 
6811         correct hash table.
6812         (do_mono_image_open): Added the refonly argument, in order to
6813         define it for the loaded image.
6814         (mono_image_loaded_full): New function, which receives an
6815         additional parameter to look for the image in the refonly or
6816         non-refonly section.
6817         (mono_image_loaded): Updated, using mono_image_loaded_full.
6818         (mono_image_loaded_by_guid_full): The same case that happens
6819         with mono_image_loaded_full.
6820         (mono_image_loaded_by_guid): Likewise.
6821         (register_image): Use the ref_only variable inside MonoImage
6822         to decide in which hash table store the current image.
6823         (mono_image_open_from_data_full): Rename
6824         mono_image_open_from_data to mono_image_open_from_data_full,
6825         adding the refonly argument, to define the ref_only variable 
6826         inside MonoImage.
6827         (mono_image_open_from_data): Return 
6828         mono_image_open_from_data_full.
6829         (mono_image_open_full): Rename mono_image_open to
6830         mono_image_open_full, receiving the new refonly argument,
6831         to pass it to inner methods.
6832         (mono_pe_file_open): Update this function, to open
6833         a MonoImage as a non-refonly image.
6834         (mono_image_close): Use the refonly variable inside
6835         MonoImage to remove the image from the correct caches.
6836
6837         * image.h: Add the signatures of mono_image_open_full,
6838         mono_image_open_from_data_full, mono_image_loaded_full,
6839         mono_image_loaded_by_guid_full.
6840
6841         * metadata-internals.h: Add the ref_only field to 
6842         MonoImage.
6843         
6844 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6845
6846         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6847         Fix the last behavior, which used to load the assemblies and
6848         extract MonoReflectionAssemblyName information, instead of
6849         extract it from the metadata tables. Needed for Reflection
6850         Only assemblies.
6851         
6852 2005-07-29  Martin Baulig  <martin@ximian.com>
6853
6854         * mono-debug-debugger.c
6855         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6856         not initialized.
6857
6858         * mono-debug.c
6859         (mono_debug_address_from_il_offset): Check whether we have
6860         debugging support before attempting to take the lock.
6861         (mono_debug_source_location_from_address): Likewise.
6862         (mono_debug_source_location_from_il_offset): Likewise.
6863         (mono_debug_il_offset_from_address): Likewise.
6864         (mono_debug_address_from_il_offset): Likewise.
6865
6866 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6867
6868         * class.c (mono_class_from_name_case): Add support for dynamic images.
6869         Fixes #75650.
6870
6871         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6872         for #75479.
6873
6874 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6875         
6876         * reflection.c (mono_method_get_object): Fix warning.
6877
6878 2005-07-28  Martin Baulig  <martin@ximian.com>
6879
6880         * mono-debug.c
6881         (mono_debug_add_wrapper): Also write the wrapper type.
6882
6883 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6884
6885         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6886         
6887         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6888         data indicates the class has none.
6889
6890 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6891
6892         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6893         loader lock with the debugger lock. Prevents deadlocks for beagle.
6894
6895         Beagle can now run on an smp box for a weekend without any
6896         issues. Woohoo!
6897
6898 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6899
6900         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6901         in a module. Fixes #75629.
6902
6903 2005-07-26  Martin Baulig  <martin@ximian.com>
6904
6905         * mono-debug.c (mono_debug_add_wrapper): New static method.
6906         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6907         interncall or a wrapper.
6908
6909         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6910         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6911         (MONO_DEBUGGER_VERSION): Bump to 51.
6912
6913         * mono-debug-debugger.c
6914         (mono_debugger_add_type): Removed this empty function.
6915         (mono_debugger_add_method): Likewise.
6916
6917 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6918
6919         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6920         before accessing method->slot.
6921
6922 2005-07-21  Jb Evain  <jbevain@gmail.com>
6923
6924         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6925         Fixes #75010.
6926
6927 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6928
6929         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6930         #75587.
6931
6932 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6933
6934         * image.h image.c: Add mono_image_get_guid () API function.
6935
6936 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6937
6938         There were issues when multiple threads tried to load
6939         assemblies. A deadlock was created between assemblies_mutex and
6940         mono_domain_assemblies_lock. This fixes the issue by making the
6941         assembly ref counting be lock free. See bug 75586.
6942         
6943         * image.c (mono_image_close): The add ref function here was using
6944         Interlocked operations while the unref was using a mutex and a
6945         --. I don't think this was ever a bug that would be exposed in a
6946         non-pendantic way (ie, by an embedder doing a ref on one thread
6947         and an unref on another), but for the sake of correctness, this is
6948         now Interlocked.
6949
6950         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6951         (mono_assembly_load_reference): Call mono_assembly_addref rather
6952         than touching the refcount ourselves.
6953         (mono_assembly_close): Use InterlockedDecrement to unref the
6954         assembly. Don't acquire the lock unless it is actually needed.
6955
6956 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6957
6958         * class.c (mono_class_layout_fields): Fix calculation of has_references
6959         for generic types.
6960
6961 2005-07-12  Martin Baulig  <martin@ximian.com>
6962
6963         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6964
6965         * metadata.c
6966         (mono_type_hash): Provide better hashing for generic instances.
6967         (mono_generic_inst_hash): Improve hashing.
6968         (mono_generic_class_hash): Likewise.
6969
6970         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6971         generic instances.
6972
6973 2005-07-12  Martin Baulig  <martin@ximian.com>
6974
6975         * reflection.c (mono_reflection_create_runtime_class): Remove the
6976         hack for generic type definitions and non-`Run' assemblies.
6977         (mono_reflection_bind_generic_parameters): Also use
6978         `klass->wastypebuilder' to check for TypeBuilders.
6979
6980 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6981
6982         * class.c (mono_class_layout_fields): Fix calculation of has_references
6983         for generic types.
6984
6985         * class.c (inflate_generic_class): Fix a leak.
6986         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6987         for generic types.
6988
6989 2005-07-11  Martin Baulig  <martin@ximian.com>
6990
6991         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6992         on error.
6993
6994 2005-07-11  Martin Baulig  <martin@ximian.com>
6995
6996         * loader.c (find_method): Also lookup in
6997         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6998
6999 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7000
7001         * appdomain.c (mono_domain_unload): Don't free the error message
7002         before passing it to mono_get_exception_...
7003
7004         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7005         
7006 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7007
7008         * threads.c: try to better guess an available RT signal (bug #75387).
7009
7010 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7011
7012         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7013         and CACHE_OBJECT.
7014
7015 2005-07-07  Martin Baulig  <martin@ximian.com>
7016
7017         * class.c (mono_type_get_name_full): Return NULL for
7018         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7019         fixes #75408.
7020
7021 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7022
7023         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7024         exit the appdomain as well being aborted.
7025
7026         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7027         change back to the root domain after calling managed code. This enables
7028         appdomains using threadpools to be unloaded.
7029
7030 2005-07-07  Martin Baulig  <martin@ximian.com>
7031
7032         * class-internals.h
7033         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7034         into `MonoDynamicGenericClass' since we only need it for dynamic
7035         types.
7036
7037         * reflection.c (mono_class_bind_generic_parameters): We don't need
7038         to compute the `parent' here.
7039
7040 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7041
7042         * culture-info-table.h : regenerated.
7043
7044 2005-07-06  Martin Baulig  <martin@ximian.com>
7045
7046         * icall.c
7047         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7048
7049         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7050
7051 2005-07-06  Martin Baulig  <martin@ximian.com>
7052
7053         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7054         we're doing a signature-only comparision; fixes #74945.
7055
7056 2005-07-06  Martin Baulig  <martin@ximian.com>
7057
7058         * class-internals.h (MonoGenericClass): Moved some things out into
7059         a new `MonoInflatedGenericClass' type.  
7060         (MonoInflatedGenericClass): New type; the `klass' of a
7061         `MonoGenericClass' is now computed lazyly in
7062         mono_get_inflated_generic_class().      
7063
7064         * class.c (mono_get_inflated_generic_class): New public function.
7065         (mono_class_inflate_generic_method): Removed the unused
7066         `MonoClass *' argument.
7067         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7068         all the methods.
7069         (mono_class_create_generic): Make this static and merge it with
7070         mono_class_create_generic_2(); we're now called automatically from
7071         mono_get_inflated_generic_class().
7072
7073         * loader.c (mono_method_signature): Call
7074         mono_get_inflated_method() here.
7075
7076 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7077
7078         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7079         type of fields with RVA.
7080
7081         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7082         for this pseudo class.
7083         (my_mono_class_from_generic_parameter): Likewise.
7084         (mono_class_init): Allow interfaces to have cctors.
7085
7086 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7087
7088         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7089         lazily for AOT methods.
7090
7091 2005-07-05  Martin Baulig  <martin@ximian.com>
7092
7093         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7094         returns FALSE for a successful match, not TRUE.
7095
7096 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7097
7098         * loader.c (mono_method_get_index): Optimize this a bit.
7099
7100 2005-07-04  Martin Baulig  <martin@ximian.com>
7101
7102         * class.c
7103         (class_compute_field_layout): Move the check for generic type
7104         definitions into mono_class_layout_fields().  Fixes #74684.
7105         (mono_class_from_generic_parameter): Correctly compute
7106         `klass->parent'; fixes #75457.
7107
7108         * reflection.c (register_assembly, register_module): Make sure
7109         `domain->rejobject_hash' is already created.
7110
7111 2005-07-02  Martin Baulig  <martin@ximian.com>
7112
7113         * class-internals.h
7114         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7115         `MonoDynamicGenericClass'.      
7116
7117 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7118
7119         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7120         returned by a field getter is null, since null is a valid value.
7121
7122 2005-07-01  Martin Baulig  <martin@ximian.com>
7123
7124         * reflection.c (mono_reflection_generic_class_initialize): Update
7125         the `dgclass->fields [i].parent' to the correct class.
7126         (mono_image_get_fieldref_token): Use the declaring type, not the
7127         reflected type.
7128
7129 2005-07-01  Martin Baulig  <martin@ximian.com>
7130
7131         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7132
7133 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7134
7135         * threads.c (thread_cleanup): assert that thread != NULL
7136         (wait_for_tids_or_state_change): We were using the wrong variable
7137         when accessing wait->threads. `i' was always out of the bounds of
7138         the array.
7139
7140 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7141
7142         * loader.c: map user32 and kernel32 to libMonoSupportW
7143
7144 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7145
7146         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7147
7148 2005-06-28  Martin Baulig  <martin@ximian.com>
7149
7150         * loader.c (method_from_methodspec): Fix #75334.
7151
7152 2005-06-28  Martin Baulig  <martin@ximian.com>
7153
7154         Fix #74953 - Arrays now implement the generic IList<T> interface
7155         on the 2.0 platform.
7156
7157         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7158
7159         * reflection.c (mono_class_bind_generic_parameters): New public
7160         function; similar to mono_reflection_bind_generic_parameters(),
7161         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7162
7163         * domain.c (mono_init_internal): Try to initialize.
7164         `mono_defaults.generic_array_class' here; this'll only succeed if
7165         we're using the 2.0 corlib.
7166
7167         * icall.c
7168         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7169         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7170         (mono_lookup_internal_call): Added support for nested classes.
7171
7172         * loader.c
7173         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7174         we're an interncall and have generic arguments.
7175
7176         * class.c
7177         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7178         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7179         instance of System.Array.InternalArray<T> for arrays, so they
7180         implement the generic IList<T> interface.
7181
7182 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7183
7184         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7185         (chastamar@yahoo.com). Fixes #75374.    
7186
7187 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7188
7189         * culture-info-table.h: regenerated.
7190
7191 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7192
7193         * icall.c: handle spaces correctly for base64 strings.
7194
7195 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7196
7197         * *.c: Kill some warnings.
7198
7199 2005-06-23  Duncan Mak  <duncan@novell.com>
7200
7201         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7202         that this builds on Solaris 10 (x86).
7203
7204 2005-06-23  Martin Baulig  <martin@ximian.com>
7205
7206         * class.c
7207         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7208         generic type definitions.
7209
7210 2005-06-23  Martin Baulig  <martin@ximian.com>
7211
7212         Fix #75331.
7213
7214         * metadata.c (mono_class_get_overrides): Renamed to
7215         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7216         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7217         pass it to mono_get_method_full().
7218
7219 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7220
7221         * reflection.c (mono_reflection_create_runtime_class): take the
7222         mono_domain_lock in this method. Prevents deadlocks
7223
7224 2005-06-22  Martin Baulig  <martin@ximian.com>
7225
7226         * loader.c (method_from_methodspec): Fix #75330.
7227
7228 2005-06-22  Martin Baulig  <martin@ximian.com>
7229
7230         * reflection.c (type_get_qualified_name): Use
7231         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7232         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7233         argument; use it if we don't have an assembly name.
7234
7235 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7236
7237         * object.c: In mono_message_init, set "copy out" flag for in
7238         parameters with the [Out] flag.
7239
7240 2005-06-21  Martin Baulig  <martin@ximian.com>
7241
7242         * class.c
7243         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7244         and MONO_TYPE_PTR.
7245
7246 2005-06-21  Martin Baulig  <martin@ximian.com>
7247
7248         * class.c (mono_class_init): Don't initialize `class->fields' for
7249         generic instances since they're initialized again in
7250         compute_field_layout(). 
7251         (compute_field_layout): Set the field's `generic_info' here; fix
7252         #75320. 
7253
7254 2005-06-21  Martin Baulig  <martin@ximian.com>
7255
7256         * class-internals.h
7257         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7258
7259         * metadata.c (mono_metadata_generic_method_equal): Also
7260         distinguish the `generic_class'; fixes #75334.
7261
7262 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7263
7264         * domain.c:
7265         * appdomain.c:
7266         * domain-internals.h:
7267         * reflection.c: 'domain_assemblies' field is now protected by its own
7268         lock. Don't call into managed code to run the AssemblyLoad event if we
7269         now there are no registered delegates for it.
7270
7271 2005-06-20  Martin Baulig  <martin@ximian.com>
7272
7273         * class.c (mono_class_is_assignable_from): Use a custom version of
7274         mono_class_has_parent() to make things work for generic instances;
7275         fix #75300.
7276
7277 2005-06-20  Martin Baulig  <martin@ximian.com>
7278
7279         * loader.c (method_from_methodspec): Apply a patch from
7280         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7281
7282 2005-06-20  Martin Baulig  <martin@ximian.com>
7283
7284         * class.c (mono_class_init): Reverted Zoltan's last change; it
7285         breaks generics.
7286
7287 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7288
7289         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7290
7291 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7292
7293         * socket-io.c: fix the index in the socket array for writable/error
7294         sockets. Fixes bug #75306.
7295
7296 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7297
7298         * class.c (mono_class_init): Allow interfaces to have static ctors.
7299
7300 2005-06-17  Martin Baulig  <martin@ximian.com>
7301
7302         * loader.c (method_from_methodspec): Use `context->container' when
7303         parsing the `gmethod->inst'.
7304
7305 2005-06-17  Martin Baulig  <martin@ximian.com>
7306
7307         * class.c (mono_type_get_name_recurse): Don't add the assembly
7308         name for type arguments.
7309
7310 2005-06-15  Martin Baulig  <martin@ximian.com>
7311
7312         * reflection.c (mono_image_get_inflated_method_token): Encode
7313         correct klass; fixes #75260.
7314
7315 2005-06-13 Michal Moskal <malekith@nemerle.org>
7316
7317         * icall.c: Make GetCorrespondingMethod/Constructor take
7318         MonoReflectionMethod method not MonoMethod. Removed
7319         MonoType.GetCorrespondingField, and make
7320         MonoGenericType.GetCorrespondingField take name not
7321         MonoClassField.
7322
7323 2005-06-13  Michal Moskal <malekith@nemerle.org>
7324
7325         * reflection.c (field_encode_signature, encode_locals):
7326          Make sizes of buffers for types larger (for big generic types).
7327          (create_generic_typespec,
7328          mono_reflection_sighelper_get_signature_local,
7329          mono_reflection_sighelper_get_signature_field):
7330          Add asserts for too small buffers.
7331
7332 2005-06-15  Martin Baulig  <martin@ximian.com>
7333
7334         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7335         if our parent is not a dynamic type.
7336
7337 2005-06-15  Martin Baulig  <martin@ximian.com>
7338
7339         * class-internals.h (MonoTypeNameFormat): New enum.
7340
7341         * class.c
7342         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7343         (mono_type_get_full_name): Removed.
7344         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7345         argument instead of the boolean's.
7346
7347         * icall.c (ves_icall_System_MonoType_getFullName):
7348         Added `gboolean assembly_qualified'.    
7349
7350         * reflection.h
7351         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7352
7353         * reflection.c (mono_reflection_parse_type): Parse the new type
7354         name format.
7355
7356 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7357
7358         * icall.c: no need to convert from utf16 to utf8 and then back again
7359         after the call to GetLogicalDrives.
7360
7361 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7362
7363         * icall.c: frombase64. Fix problems exposed by new tests.
7364
7365 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7366
7367         * icall.c: added internal calls for converting char [] and strings in
7368         base64 into byte [].
7369
7370 2005-06-10  Martin Baulig  <martin@ximian.com>
7371
7372         * class.c (mono_class_create_generic_2): Read the nested classes
7373         from the metadata rather than from `gklass->nested_classes' since
7374         `gklass' might not be initialized yet.
7375
7376 2005-06-09  Duncan Mak  <duncan@novell.com>
7377
7378         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7379         all public headers. Fixes #74919.
7380
7381 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7382
7383         * domain.c: The key for proxy_vtable_hash is now a pointer
7384         array. Added new GHashFunc and GCompareFunc functions for this.
7385
7386         * class.h: The list of interfaces in MonoRemoteClass is known in
7387         advance and can't grow (we create a new MonoRemoteClass if needed),
7388         so now the interface array can be allocated together with
7389         MonoRemoteClass.
7390         
7391         * object.c: Added a new method create_remote_class_key.
7392         Fixed mono_remote_class so it does not depend on
7393         mono_upgrade_remote_class.
7394         Removed extend_interface_array.
7395         Added new method clone_remote_class(), which makes a copy of a remote
7396         class and adds a new interface or class to it.
7397         mono_upgrade_remote_class() now creates a new remote class (or gets
7398         it from the cache) if an vtable upgrade is needed. In this way
7399         we make sure that other objects sharing the same remote class
7400         don't get the new vtable with unwanted interfaces.
7401         
7402         * object-internals.h:
7403         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7404         
7405         * marshal.c: Track changes in mono_upgrade_remote_class().
7406
7407 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7408         * icall.c: Add runtime methods for obtaining members of inflated
7409         class, which were created from supplied non-inflated members. It
7410         is used in internal Get{Method,Constructor,Field} methods in
7411         System.Type
7412
7413 2005-06-09  Martin Baulig  <martin@ximian.com>
7414
7415         * reflection.c
7416         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7417
7418 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7419         * reflection.c (mono_image_basic_init): Define
7420         Version in MonoDynamicAssembly. 
7421         
7422 2005-06-08  Martin Baulig  <martin@ximian.com>
7423
7424         Fix #75136.
7425
7426         * loader.c
7427         (mono_method_signature_full): New public method; takes a
7428         `MonoGenericContext *'.
7429         (find_method): Use mono_method_signature_full() and pass the
7430         klass'es context to it.
7431
7432         * class.c (mono_class_is_inflated_method): Use
7433         mono_method_signature_full() and pass the context to it.
7434
7435 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7436
7437         * object.c: add proper locking in mono_remote_class_vtable(),
7438         fixes possible memory corruption.
7439
7440 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7441
7442         * marshal.c (mono_remoting_marshal_init): set
7443         initialized after initialization.
7444
7445 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7446
7447         * locales.c : hush.
7448
7449 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7450
7451         * object.c (extend_interface_array): fix really silly
7452         memory corrupting / comparison bug.
7453
7454 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7455
7456         * reflection.c: Functions added to support the creation
7457         of CustomAttributeData, which includes Attribute data
7458         used by ReflectionOnly methods.
7459
7460         * reflection.h:  mono_reflection_get_custom_attrs_data and
7461          mono_custom_attrs_data_construct added (functions exposed).
7462
7463          * icall.c: Added mono_reflection_get_custom_attrs_data
7464          as icall.
7465         
7466 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7467
7468         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7469         lupus's request.
7470
7471 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7472
7473         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7474
7475         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7476         dynamic DllImportAttribute.
7477
7478         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7479         dynamic DllImportAttribute.
7480
7481         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7482         Fixes #75162.
7483
7484 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7485
7486         * threads.c: avoid segfault when an unstarted thread is aborted.
7487
7488 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7489
7490         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7491         Returns the name and version of the runtime for reporting.
7492
7493 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7494
7495         * appdomain.c: bump corlib version.
7496         * object-internals.h: new field in MonoReflectionAssembly.
7497
7498 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7499
7500         * object-internals.h: Carlos forgot to add this field.
7501
7502 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7503
7504         * icall.c: Added create_version to create instances
7505         of Version of MonoReflectionAssemblyName. This change helps
7506         the AssemblyName tests to keep running fine.
7507         
7508 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7509   
7510         * object.c (mono_method_return_message_restore): A somehow less
7511         intrusive fix for #75138.
7512
7513 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7514
7515         * object.c (mono_method_return_message_restore): Fix computation
7516         of expected number of out args.
7517
7518 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7519
7520         * reflection.c (mono_image_get_method_info): Fix the case when the
7521         charset is empty.
7522
7523 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7524
7525         * object.c: Added missing null check in
7526           mono_method_return_message_restore.
7527
7528 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7529
7530         * reflection.c (mono_image_get_method_info): Handle the case when
7531         dllentry is empty.
7532
7533 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7534
7535         * object.c: When creating the vtable for a proxy, take into account
7536         all inherited interfaces, not only the ones registered in
7537         iclass->interfaces. This fixs bug #74996.
7538         Also, in mono_method_return_message_restore, verify that the array
7539         of out args has the expected lengh.
7540
7541 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7542
7543         * socket-io.c: update the timeout in Poll when the call is interrupte.
7544
7545 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7546
7547         * socket-io.c: support abort/suspend in Select_internal after last
7548         change.
7549
7550 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7551
7552         * threadpool.c: remove warning.
7553
7554 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7555
7556         * icall.c:
7557         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7558         removing the 1024 limit from select(). Runtime part of the fix for
7559         bug #71203.
7560
7561 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7562
7563         * socket-io.c: when resolving the addresses for the same
7564         host returned by gethostname(), get the local IPs from the interface
7565         list. Loopback addresses are discarded if the are interfaces up with
7566         non-loopback ones. Fixes bug #63265.
7567
7568 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7569
7570         * appdomain.c, verify.c, object-internals.h, reflection.c:
7571         bumped corlib number to 36, and added new extra_flags field
7572         to ReflectionMethodBuilder and friends.  Fixes #75060.
7573
7574 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7575
7576         * gc.c: register a new weak link only if the object is non-null
7577         (fixes bug#75047).
7578
7579 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7580
7581         * culture-info.h : short time pattern too.
7582
7583 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7584
7585         * culture-info.h : expand long time pattern string length.
7586
7587 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7588
7589         * culture-info-table.h : update (more French date format; #72788).
7590
7591 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7592
7593         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7594         the method is static. Fixes #75029.
7595
7596 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7597
7598         * reflection.c: Update the table_idx field of method builders after
7599         saving the module, since it can change. This is a workaround for
7600         bug #74914. 
7601
7602 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7603
7604         * culture-info-table.h : update (additional French date format).
7605
7606 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7607
7608         * icall.c (ves_icall_type_Equals): Revert last change.
7609         
7610         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7611
7612         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7613
7614 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7615
7616         * class-internals.h: Added executioncontext_class field to 
7617         MonoDefaults structure.
7618         * domain.c: Cache System.Threading.ExecutionContext class in 
7619         mono_defaults.
7620         * object.c: Capture the ExecutionContext for asynchroneous calls in
7621          mono_async_result_new.
7622         * object-internals.h: Added execution_context and original_context 
7623         fields to MonoAsyncResult. Added execution_context to MonoThread.
7624         * security-manager.c|.h: Added mono_get_context_capture_method to 
7625         return the capture method (if required by the security manager or by
7626         the framework version used).
7627         * threadpool.c: Apply capture (if present) ExecutionContext in 
7628         mono_async_invoke and revert to original context after it completes.
7629
7630 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7631
7632         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7633
7634 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7635
7636         * culture-info-table.h : zh-CHT related workaround.
7637
7638 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7639
7640         * marshal.c (emit_marshal_custom): Add some error checking and call the
7641         methods in the ICustomMarshaler interface. Fixes #74875.
7642         
7643         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7644         native->managed wrappers.
7645
7646 2005-05-12  Martin Baulig  <martin@ximian.com>
7647
7648         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7649         here and use the loader lock.
7650
7651         * mono-debug.c: Properly lock when the debugger is not attached.
7652         (mono_debug_init): Release the initial lock if we're not running
7653         in the debugger.
7654
7655 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7656
7657         * marshal.c (emit_marshal_custom): Pass through NULL values without
7658         calling the custom marshalling routines.
7659
7660         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7661         conversion in structures. Fixes #74882.
7662
7663 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7664
7665         * culture-info-table.h : zh-* cultures were missing.
7666
7667 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7668
7669         * threads.c: Added a new event background_change_event which is signaled
7670         when a thread changes its background mode.
7671         Moved here several checks previously done in managed code. The checks
7672         require the thread lock, and using the thread lock in managed code
7673         can result in deadlocks.
7674         Merged Start_internal and Thread_internal into a single method. Now 
7675         Thread_internal does all work of creating and starting a thread.
7676         Added icalls for setting and getting the state of the object. Moved from
7677         managed code to avoid locking there.
7678         Added wait_for_tids_or_state_change() which is called instad of
7679         wait_for_tids when waiting for non-backround threads to end. This method
7680         will return if one of the threads ends or the background_change_event
7681         is signaled.
7682         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7683         the background mode. This method signals the background_change_event
7684         event.
7685         * icall.c:
7686         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7687         removed Start_internal.
7688         
7689 2005-05-11  Martin Baulig  <martin@ximian.com>
7690
7691         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7692         to order of some fields to get proper alignment on 64-bit machines.
7693
7694 2005-05-11  Martin Baulig  <martin@ximian.com>
7695
7696         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7697         changes as they're broken and completely fuck up the debugger.
7698
7699         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7700
7701 2005-05-10  Martin Baulig  <martin@ximian.com>
7702
7703         * reflection.c (mono_reflection_generic_class_initialize): Don't
7704         call mono_class_setup_parent() here.
7705
7706 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7707
7708         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7709         send/receive timeout use an integer in milliseconds. We were using a
7710         struct timeval.
7711
7712 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7713
7714         * locales.c:
7715         (internal_get_cultures): reserve the first slot of the array for the
7716         InvariantCulture, which will be filled in managed code.
7717
7718 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7719
7720         * reflection.c (mono_image_fill_module_table): Initialize the
7721         GENERATION field as well.
7722
7723 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7724
7725         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7726         Monitor.Enter on the object.
7727
7728 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7729
7730         * threads.c: Enable the wait for running threads when exiting.
7731         * icall.c: Suspend all threads before exiting.
7732
7733 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7734
7735         * assembly.c (mono_assembly_load_reference): Fix warning.
7736
7737 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7738
7739         * threadpool.c: changed the default number of threads per cpu. From now
7740         on, the default will be 20 + (5 * number of cpus) instead of 50.
7741
7742 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7743
7744         * loader.c (mono_method_get_signature_full): Add locking here.
7745
7746 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7747
7748         * appdomain.c: Moved methods for parsing and freeing assembly
7749         names to assembly.c.
7750         * assembly.c, domain-internals.h: Created public methods for parsing
7751         assembly names. Fixed mono_assembly_load_with_partial_name:
7752         it now finds the best match, taking into account the version,
7753         token and culture specified in the partial name. Also return
7754         the latest version if no version information is specified.
7755
7756 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7757
7758         * threadpool.c: replace check for SocketAsyncCall class.
7759
7760 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7761
7762         * threadpool-internals.h:
7763         * Makefile.am: added threadpool-internals.h
7764
7765         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7766         that happen in threadpool threads (tested on MS).
7767         (mono_thread_pool_remove_socket): new function that dispatch any pending
7768         AIO call on a socket that is closing. By now only epoll really needs it,
7769         as select/poll wake up when the socket closes.
7770
7771
7772         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7773
7774 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7775
7776         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7777
7778 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7779
7780         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7781
7782 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7783
7784         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7785         has an abort request, convert it into a suspend request.
7786
7787 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7788
7789         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7790         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7791         is not supported yet.
7792
7793 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7794
7795         * image.c: register assemblies loaded from data (bundles) in the loaded
7796         assemblies hash. Fixes bug #74772.
7797
7798 2005-04-29  Martin Baulig  <martin@ximian.com>
7799
7800         * class.c (mono_type_get_name_recurse): Update to the new naming
7801         schema from the latest .NET 2.x beta2.
7802         (mono_class_setup_vtable_general): If we're a generic instance,
7803         copy the vtable from our generic type definition and inflate all
7804         the methods in it.
7805
7806         * loader.c (find_method): Update to the new naming schema from the
7807         latest .NET 2.x beta2.
7808
7809 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7810
7811         * class.c (mono_class_init): Add a mono_loader_unlock to the
7812         #74734 fix.
7813
7814 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7815
7816         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7817         suspend_all_other_threads () call for the time being, since it can hang.
7818
7819         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7820         the background threads to exit, since it can also hang.
7821
7822         * class.c (mono_class_init): Applied patch from Ankit Jain 
7823         (radical@gmail.com). Avoid pending init errors when a field refers
7824         to a nested class using a typeref. Fixes #74734.
7825
7826         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7827         this for dynamic modules.
7828
7829 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7830
7831         * threads.c: don't wait for threads that are in the process of aborting
7832         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7833         and waiting for background threads to finish. This makes xsp and
7834         mod-mono-server exit without random length delays and/or hangs.
7835
7836 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7837
7838         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7839
7840 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7841
7842         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7843         dynamic types to prevent infinite loops. Fixes #74727.
7844
7845         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7846         ..._is_assignable_to.
7847
7848 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7849
7850         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7851
7852 2005-04-25  Martin Baulig  <martin@ximian.com>
7853
7854         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7855
7856         * domain.c
7857         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7858
7859         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7860
7861         * reflection.c (build_compressed_metadata): Set metadata header
7862         version to 2.0.
7863
7864 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7865
7866         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7867         number into an integral and a decimal part. Fixes #70473.
7868
7869         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7870
7871 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7872
7873         * culture-info-table.h : reflected the latest locale-builder output.
7874
7875 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7876
7877         * threadpool.c: check for SuspendRequested too when deciding if
7878         mono_thread_interruption_checkpoint should be called.
7879
7880 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7881
7882         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7883         * threads.c: remove interruption_mutex and use Interlocked instead. When
7884         suspending all the threads, wait for all the suspended events at once.
7885         If we're shutting down and get an APC that is going to be queued,
7886         call mono_thread_execute_interruption immediately, as the thread might
7887         be sleeping on a pthread condition or mutex.
7888
7889         * icall.c: call mono_runtime_set_shutting_down before suspending the
7890         threads.
7891
7892         Fixes bug #74693. And now xsp is happier when exiting.
7893
7894 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7895
7896         * loader.c (mono_stack_walk): Fix #74690.
7897
7898 2005-04-22  Martin Baulig  <martin@ximian.com>
7899
7900         * mono-debug.h (MonoDebugMethodJitInfo): Added
7901         `MonoDebugMethodJitInfo *jit'.
7902
7903         * mono-debug.c (mono_debug_read_method): Cache the
7904         MonoDebugMethodJitInfo in `address->jit'.
7905         (mono_debug_free_method_jit_info): New public method.
7906
7907 2005-04-22  Martin Baulig  <martin@ximian.com>
7908
7909         * class.c (mono_class_is_assignable_from): Disallow
7910         type parameter -> interface.
7911
7912 2005-04-21  Dick Porter  <dick@ximian.com>
7913
7914         * threads.c (mono_thread_create): Turn an assertion into an error.
7915
7916 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7917
7918         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7919         
7920         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7921         Fix some gcc 4.0 warnings.
7922
7923 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7924
7925         * file-io.c: fix alt dir separator char on unix systems
7926         and cleanup (fixes bug #71214).
7927
7928 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7929
7930         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7931         a call to a remote domain, since the method may be an
7932         interface method in the client domain. This fixes bug #74192.
7933
7934 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7935
7936         * threadpool.c: recv/send are now performed before going back to managed
7937         code to save one transition.
7938
7939 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7940
7941         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7942
7943         * metadata/threadpool.c: removed hack to workaround the bug above.
7944
7945         Fixes bug #74618.
7946
7947 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7948
7949         * reflection.c reflection.h: Fix handling of parameter defaults in
7950         dynamic methods. Also fixes handling of parameter attributes.
7951         Fixes #74609.
7952
7953         * mono-debug.c (mono_debug_close_image): Fix warning.
7954
7955 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7956
7957         * socket-io.h: replaced old unused field with new 'blocking'.
7958         * threadpool.c: restore socket blocking state on windows(tm).
7959
7960 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7961
7962         * icall.c: don't return the codebase in the AssemblyName[] returned by
7963         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7964         * object-internals.h: Removed FIXME (fields were presents) and fixed
7965         versioncompat declaration.
7966
7967 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7968
7969         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7970         not closed, so don't cleanup when it happens.
7971
7972 2005-04-13  Chris Toshok  <toshok@ximian.com>
7973
7974         * mono-debug-debugger.h: change prototype for
7975         mono_debugger_lookup_type.
7976
7977         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7978         this function, although it should probably be named
7979         mono_debugger_init_type.
7980
7981 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7982
7983         * threadpool.c: fix non-AIO case.
7984
7985 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7986
7987         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7988         the built-in profiler to measure just JIT compilation times.
7989
7990 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7991
7992         * threadpool.c: the epollfd might be closed by another thread at
7993         any time, so ignore EBADF at treat it as a "we're closing" sign.
7994
7995 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7996
7997         * threadpool.c: release the semaphores with a count equals to the number
7998         of working threads in both IO and regular pools. Fixed typo that messed
7999         up the count of IO pool threads. Don't initialize the pipe handles if
8000         we're using epoll.
8001
8002 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8003
8004         * threadpool.c: some systems don't like a NULL when deleting the socket
8005         from epoll.
8006
8007 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8008
8009         * threadpool.c: fix semaphore allocation.
8010
8011 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8012
8013         * threadpool.c: added epoll() based implementation for asynchronous IO
8014         that is used instead of the default poll() when available.
8015         It can be disabled by setting MONO_DISABLE_AIO.
8016
8017 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8018
8019         * threadpool.c: windows needs 'closesocket' and instead of returning
8020         0 when the stream is closed while in select, it returns -1. Fixes bug
8021         #74573.
8022
8023 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8024
8025         * class.c (class_compute_field_layout): Fix the regression caused by
8026         the previous try.
8027
8028 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8029
8030         * threadpool.c: separate pool for socket async. IO.
8031         * threadpool.h: mono_max_worker_threads is not a global any more.
8032
8033 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8034
8035         * class.c (class_compute_field_layout): Fix #74549.
8036
8037 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8038
8039         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8040         use 2 connected sockets instead.
8041
8042 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8043
8044         * mono-config.c: Add new entry point for mkbundle
8045         mono_config_parse_memory. 
8046
8047 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8048
8049         * threadpool.c: removed another unused function.
8050
8051 2005-04-08  Ankit Jain  <radical@corewars.org>
8052
8053         * reflection.c (get_default_param_value_blobs): Add 'types'
8054         parameter to get the types encoded in the constant table.
8055         (mono_param_get_objects): Use the type from the constant table,
8056         not the type of the parameter, when creating default values.
8057         Handle null default values correctly.
8058
8059 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8060
8061         * file-io.c:
8062         * file-io.h:
8063         * threadpool.c:
8064         * threadpool.h:
8065         * icall.c:
8066         * socket-io.c: removed dead code for async IO.
8067
8068 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8069
8070         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8071
8072         * threadpool.c: intercept socket async. calls and pass them to a thread
8073         that is polling and dispatching the job items to the threadpool as
8074         socket become ready. Fixes bugs #71217, #71933.
8075
8076         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8077         between char and short/ushort arrays.
8078
8079         * socket-io.c: remove dead code.
8080
8081 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8082
8083         * locales.c,
8084           icall.c : removed InternalToUpper_Comp() and
8085           InternalToLower_Comp().
8086
8087 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8088
8089         * char-conversions.h : The tables were incorrectly generated. Should
8090           be generated against invariant culture.
8091
8092 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8093
8094         * object.c (mono_runtime_invoke_array): Fix return value when 
8095         passing pre-created valuetype objects to ctors.
8096
8097         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8098         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8099         Fixes #74338.
8100
8101 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8102
8103         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8104         only used with --security and hides the wrong corlib version error.
8105
8106 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8107
8108         * class.c: Changed mono_class_name_from_token so that types
8109         outside of a namespace don't have an initial period.  Improved
8110         the g_warning message used in _mono_class_get when loading
8111         fails.
8112         * assembly.c: In mono_assembly_load_reference, when an assembly
8113         can't be found, "No such file or directory" is misleading and
8114         unhelpful because a few paths were checked for the presence of
8115         the assembly.  When that happens (ENOENT), display a nicer
8116         message indicating the directories that were searched.  In all
8117         cases, the warning is made easier to read for non-hackers.
8118
8119 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8120
8121         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8122         project/solution.
8123         * appdomain.h|domain.c: Removed inline from functions.
8124         * appdomain.c: Reduced warnings when compiling on windows.
8125         * icall.c: Fixed output_debug declaration to gunichar2*.
8126         * mono-config.c: Reduced warnings when compiling on windows.
8127         * rand.c: Added missing "windows.h". Added missing return value.
8128         * rawbuffer.c: Added missing winsock2.h for windows.
8129         * sysmath.h: Added mono-compiler.h header to allow/ease 
8130         compilation with non-GCC compilers.
8131         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8132         Removed cast warnings.
8133
8134         Adapted from the work of J Lothian (for VC6).
8135
8136 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8137
8138         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8139         from default_path.
8140
8141 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8142
8143         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8144         the 2.0 profile.
8145
8146 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8147
8148         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8149         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8150         stuff, and it would probably use $(prefix)/share rather than
8151         $(prefix)/lib.
8152
8153 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8154
8155         * console-io.c: added 2 includes that might be missing.
8156
8157 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8158
8159         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8160         profile.
8161
8162         * reflection.c (create_custom_attr): Allocate the params array using
8163         alloca so it gets GC tracking.
8164
8165 2005-03-23  Chris Toshok  <toshok@ximian.com>
8166
8167         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8168         out some spew.
8169
8170 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8171
8172         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8173         changes to pick up any changes in prefix, etc.
8174
8175 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8176
8177         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8178         
8179         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8180         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8181
8182 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8183
8184         * class-internals.h object-internals.h class.c reflection.c: Extend the
8185         mono_lookup_dynamic_token () function to return the class of the
8186         token as well. 
8187
8188         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8189         well. Fixes #73848.
8190
8191 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8192
8193         * security-manager.c: Skip inheritance checks for intra-corlib
8194         class inheritance and method overrides. This skips a lot of checks
8195         and (anyway) permissions cannot work until corlib is loaded.
8196
8197 2005-03-23  Martin Baulig  <martin@ximian.com>
8198
8199         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8200         MONO_TYPE_GENERICINST.  
8201
8202 2005-03-23  Martin Baulig  <martin@ximian.com>
8203
8204         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8205
8206 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8207
8208         * class.c: added locking comments to some functions.
8209         Cache the interface offsets arrays (saves about 20 KB
8210         of runtime memory in a typical app).
8211         Reduce the time overhead in mono_class_setup_supertypes ().
8212
8213 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8214
8215         * icall.c: speedup and fix leaks in GetMethodsByName and
8216         GetPropertiesByName.
8217
8218 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8219
8220         * reflection.c: some locking fixes.
8221
8222 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8223
8224         * metadata.c: added missing break in case statement.
8225
8226 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8227
8228         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8229         typedbyref return values. Fixes #73941.
8230
8231 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8232
8233         * security-manager.c|h: Added demandunmanaged method and 
8234         suppressunmanagedcodesecurity class to MonoSecurityManager.
8235         Renamed aptc class to allowpartiallytrustedcallers.
8236
8237 2005-03-17  Martin Baulig  <martin@ximian.com>
8238
8239         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8240
8241 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8242
8243         * file-io.c: disabled file async. IO using aio_*. It uses the
8244         threadpool now. Workaround for bug #73718.
8245
8246 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8247
8248         * assembly.h, mono-config.c: added code to deal with bundled configs
8249         for bundled assemblies.
8250
8251 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8252
8253         * *.c, private.h: cleanup, removing old private.h header file.
8254
8255 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8256
8257         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8258         and throw_on_unmappable_char attributes.
8259
8260 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8261
8262         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8263         _ProcessName_internal.
8264
8265 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8266
8267         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8268         #73631.
8269
8270         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8271         are no longer used.
8272
8273 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8274
8275         * object.c (compute_class_bitmap): Add support for generics. Fixes
8276         #73527.
8277
8278 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8279
8280         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8281
8282 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8283
8284         * filewatcher.c: commented out the code for windows watcher, as we don't
8285         use it (we use the managed implementation instead).
8286
8287 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8288
8289         * object-internals.h (MonoThread): Remove 'unused1' field.
8290
8291         * appdomain.c: Bump corlib version.
8292
8293         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8294
8295         * reflection.c (mono_reflection_create_runtime_class): Remove the
8296         AssemblyBuilder.Save optimization since it causes too many problems.
8297
8298 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8299
8300         * exception.c|h: Added mono_get_exception_reflection_type_load to
8301         create a ReflectionTypeLoadException object.
8302         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8303         to return NULL is a InheritanceDemand fails during reflection. Updated
8304         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8305         ReflectionTypeLoadException if an InheritanceDemand fails during 
8306         reflection. Added icall mapping for GetLinkDemandSecurity.
8307         * security-manager.c|h: Added ves_icall_System_Security_
8308         SecurityManager_GetLinkDemandSecurity internal call to return the
8309         class and methods permissions set for a LinkDemand. Removed unused
8310         fields in MonoSecurityManager.
8311
8312 2005-03-10  Martin Baulig  <martin@ximian.com>
8313
8314         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8315         it's a generic instance.
8316
8317 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8318
8319         * reflection.c (mono_get_object_from_blob): Applied patch from
8320         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8321
8322         * class.c (mono_class_is_assignable_from): Another try at fixing 
8323         #73469 without breaking anything.
8324
8325 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8326
8327         * class.c: (mono_class_is_assignable_from): Revert the last changes
8328         since they don't work with generics.
8329         
8330         * class.c (mono_class_is_assignable_from): Fix build bustage.
8331
8332         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8333         the managed IsAssignableFrom method. Fixes #73469.
8334
8335         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8336         function.
8337
8338 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8339
8340         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8341         memory when the remoting callback does not sets the out arguments.
8342         Fixes #73007.
8343
8344         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8345         by mistake.
8346
8347         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8348
8349         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8350
8351         * appdomain.c: Bump corlib version.
8352
8353 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8354
8355         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8356         function.
8357
8358         * threads.c (mono_thread_attach): Detect threads which are not started
8359         by the GC pthread wrappers.
8360
8361 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8362
8363         * icall.c: Added new icall for RNG.
8364         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8365         single handle on Linux to access /dev/urandom and fix #73183.
8366
8367 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8368
8369         * object.c: setting the new vtable in a transparent proxy object must
8370         not change the GC descriptor.
8371
8372 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8373
8374         * object.c: fixed compilation without GCJ support.
8375         * reflection.c: for runtime-created types ensure klass->has_references
8376         is correct (bug #73215).
8377
8378 2005-03-02  Martin Baulig  <martin@ximian.com>
8379
8380         * class.c (mono_class_is_assignable_from): Make this work if
8381         `oklass' is a generic instance; fixes #72831.
8382
8383 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8384
8385         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8386         with hasthis set.
8387         
8388         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8389
8390         * marshal.c: Reorganize native->managed marshalling code to also use
8391         the emit_marshal_... functions.
8392
8393 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8394
8395         * object.c: typed allocs have issues with bitmap sizes > 30,
8396         so check for max_set >= 30.
8397
8398 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8399
8400         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8401         managed code. Fixes #73012.
8402
8403         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8404
8405         * metadata.c reflection.c: Load/Emit elem_mult as well.
8406         
8407         * metadata.h (MonoMarshalSpec): Add comment.
8408
8409         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8410
8411         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8412         num_elem to -1 if not given.
8413
8414         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8415
8416         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8417         given values.
8418
8419 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8420
8421         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8422
8423 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8424
8425         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8426
8427         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8428
8429 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8430
8431         * object.c: generalized the reference bitmap creation
8432         and added hooks for the new GC.
8433         * class-internals.c: removed the gc_bitmap field from MonoClass.
8434
8435 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8436
8437         * domain.c: help the compiler to produce better code
8438         in mono_jit_info_table_find ().
8439
8440 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8441
8442         * object.c: make all allocations look typed.
8443
8444 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8445
8446         * socket-io.c: load Mono.Posix if it's not loaded already
8447         (fixes bug#73033).
8448
8449 2005-02-24  Martin Baulig  <martin@ximian.com>
8450
8451         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8452         * reflection.c (dup_type): Likewise.
8453
8454 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8455
8456         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8457         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8458
8459 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8460
8461         * domain.c, threads.c, object-internals.h: make the critical thread
8462         local vars use the fast access mode (even when we're compiled in
8463         a lib). Provide accessors to be used by the jit during codegen.
8464
8465 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8466
8467         * appdomain.c: Changed hook functios behavior to include
8468         support for the reflection only assemblies. Some icalls were changed
8469         to support the mentioned assemblies too. Signatures of static methods
8470         try_assembly_resolve and real_load now have an additional parameter:
8471         refonly.
8472
8473         * assembly.c: General changes to mono_assembly_ methods to support
8474         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8475         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8476         suffix, to support an additional gbool parameter to specify whether
8477         the assembli is reflection only or not. Created some new hook functions 
8478         to add support for reflection only assemblies. Signatures of static 
8479         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8480         have now an additional parameter: refonly.
8481
8482         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8483         indicating whether the assembly is reflection only or not.
8484
8485         * exception.c: Add mono_get_exception_invalid_operation.
8486
8487         * icall.c: Throw an InvalidOperationException when trying to invoke
8488         a property/method/event, or trying to set/get the value of a field.
8489         Also add an icall to retrieve the ref_only flag to the
8490         MonoReflectionAssembly.
8491
8492 2005-02-23  Chris Toshok  <toshok@ximian.com>
8493
8494         Part of fix for #72827.
8495         * mono-debug.c (mono_debug_add_method): add lexical block data to
8496         the info we write.  Kind of a hack at the moment - we copy the
8497         lexical block info from the MonoDebugMethodInfo to the
8498         MonoDebugMethodJitInfo here, before writing it.
8499         (mono_debug_read_method): read the lexical block info.
8500
8501         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8502
8503         * debug-mono-symfile.h: add lexical block support.
8504
8505         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8506         support.
8507
8508 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8509
8510         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8511
8512         * object.c (mono_runtime_free_method): Call mono_free_method () and
8513         put the TODOs there.
8514
8515         * loader.c (mono_free_method): Free up most memory allocated for 
8516         dynamic methods.
8517
8518 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8519
8520         * reflection.c: properly flag a Type argument to a
8521         named custom attr value (bug #72248).
8522
8523 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8524
8525         * reflection.c: reduce code duplication in named custom
8526         attribute encoding.
8527
8528 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8529
8530         * reflection.c: properly encode custom attrs of type object
8531         (bug #72649).
8532
8533 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8534
8535         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8536
8537 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8538
8539         * socket-io.c: load System.dll if it's not loaded already
8540         (bug #72850 and #70477).
8541
8542 2005-02-21  Martin Baulig  <martin@ximian.com>
8543
8544         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8545         generic instances.
8546
8547 2005-02-21  Martin Baulig  <martin@ximian.com>
8548
8549         * reflection.c (mono_image_build_metadata): We also need to
8550         "fixup" the MethodImpl table after we computed the final method
8551         indices.  Call fixup_methodimpl() to do that.
8552         (fixup_methodimpl): New private method.
8553
8554 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8555
8556         * assembly.c: special case mscorlib.dll (bug#72536),
8557         patch from Carlos Alberto Cortez.
8558
8559 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8560
8561         * threads-types.h threads.c: Fix build bustage.
8562
8563         * threads.c: Use a union for long<->double conversions.
8564
8565         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8566         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8567
8568         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8569         containing the checkpoint call with NOT_TAKEN.
8570         
8571         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8572         checkpoint before pushing the arguments, so they won't have to be
8573         spilled to stack.
8574
8575 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8576
8577         * domain.c, assembly.c, domain-internals.h: make some data
8578         const and relocation-free.
8579
8580 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8581
8582         * object.c, appdomain.c, class-internals.h: introduce the
8583         MonoClassRuntimeInfo structure to hold the info needed to
8584         use a class at runtime. Made mono_class_vtable() lock-free
8585         for all the appdomains.
8586
8587 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8588
8589         * metadata-internals.h, image.c: introduce a per-image mempool to
8590         be used for memory that has the same lifetime as the image.
8591
8592 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8593
8594         * domain.c: In mono_init_internal(), instead of selecting the first
8595         runtime version supported by an executable, get a list of all
8596         supported versions and select the one for which an mscorlib exists
8597         (since even if the runtime supports a given version, it doesn't mean
8598         that the framework for that version is installed).
8599         Modified get_runtimes_from_exe to support this behavior.
8600         In supported_runtimes, added information about additional system
8601         assembly versions.
8602         
8603         * assembly.c: Added support for more than one system assembly version
8604         per runtime version. Updated the assembly list.
8605         In mono_assembly_remap_version, removed the initial version check,
8606         since we don't know to which version we need to compare until we
8607         get the version set on which the assembly is based.
8608         Moved the code for loading corlib into the new method
8609         mono_assembly_load_corlib(), so it can be used by the initialization
8610         code.
8611         
8612         * domain-internals.h: Updated data structures and added declaration
8613         for mono_assembly_load_corlib.
8614
8615 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8616
8617         * reflection.c (resolve_object): Fix the creation of the signature in 
8618         the SignatureHelper case.
8619
8620         * assembly.c (mono_assembly_remap_version): Fix binary search.
8621         
8622 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8623  
8624         * class.c: Added inheritance check when a method is overloaded (from a
8625         virtual method or when implementing an interface) and when a class is
8626         inherited. Added functions to set a failure for a class and to 
8627         retreive the exception from a failure.
8628         * class-internals.h: Added fields to MonoClass to keep the exception
8629         information status for inheritance (or other exceptions) to be thrown
8630         later (i.e. not at load time).
8631         * object.c: Throw the inheritance SecurityException when a type is to 
8632         be created with either class or method inheritance violations.
8633         * reflection.c|h: Fix when getting declsec from a class. Removed 
8634         unrequired code for class. Improved sanity in parameter naming.
8635         * security-manager.c|h: Added functions to check for class and method
8636         inheritance.
8637
8638 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8639
8640         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8641         and has_finalize in dynamic types as well.
8642
8643 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8644
8645         * culture-info-table.h : fixed currency format for en-GB (and so on).
8646
8647 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8648
8649         * gc.c: ensure the GC handles never have 0 as a value.
8650
8651 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8652
8653         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8654         a pointer to a struct to unmanaged code. Fixes #72625.
8655
8656 2005-02-16  Martin Baulig  <martin@ximian.com>
8657
8658         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8659
8660 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8661
8662         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8663
8664 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8665
8666         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8667
8668         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8669         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8670         etc. Fixes #71471.
8671
8672         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8673
8674         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8675
8676 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8677
8678         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8679         changes to make the current context a field in MonoThread.
8680
8681 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8682
8683         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8684         the last change.
8685         
8686         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8687         extracted from mono_marshal_get_native_wrapper.
8688
8689         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8690         to create wrappers around native functions.
8691
8692         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8693         delegates for arbitrary function pointers. Fixes #71472.
8694
8695 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8696
8697         * threads.c: cleaned up the code a little.
8698
8699 2005-02-15  Martin Baulig  <martin@ximian.com>
8700
8701         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8702         the data table.
8703
8704         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8705         allocate larger chunks if needed.
8706
8707 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8708
8709         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8710         in by mistake.
8711
8712 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8713
8714         * domain.c: keep the domains in an array and ensure the domain ids
8715         are kept small, so they can be used as indexes to domain-specific data
8716         with a small memory overhead.
8717
8718 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8719
8720         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8721
8722 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8723
8724         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8725
8726 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8727
8728         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8729
8730         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8731         values.
8732
8733         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8734         
8735 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8736
8737         * domain-internals.h: add the hashtable here.
8738
8739         * class-internals.h: Remove `info' from MonoMethod
8740
8741         * domain.c: Add a new hashtable, jit_trampoline_hash
8742
8743 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8744
8745         * object.c: don't set the value of static fields
8746         (fixes bug#72494).
8747
8748 2005-02-11  Martin Baulig  <martin@ximian.com>
8749
8750         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8751         (mono_debug_add_method): Silently ignore the method if it's too big.
8752         (mono_debug_add_type): Likewise.
8753
8754 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8755
8756         * threads.c, appdomain.c: remove #ifdefs from the code.
8757
8758 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8759
8760         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8761         common security informations. This allows us to stay in unmanaged code
8762         when doing LinkDemand and it's special cases (except for the first 
8763         time for initialization). The flags a very much used with --security.
8764         * reflection.c|h: Added code to get declarative security attributes 
8765         for LinkDemand and InheritanceDemand. This required to refactor the
8766         existing code for Demand.
8767         * security-manager.c|h: Added new method fields for the special cases
8768         of LinkDemand.
8769
8770 2005-02-10  Martin Baulig  <martin@ximian.com>
8771
8772         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8773         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8774
8775 2005-02-10  Martin Baulig  <martin@ximian.com>
8776
8777         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8778         debugging code; this is almost a complete rewrite.
8779
8780         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8781
8782 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8783
8784         * domain.c, object.h: expose mono_string_equal () and 
8785         mono_string_hash ().
8786         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8787         it's implemented in managed code.
8788
8789 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8790
8791         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8792         lo leak objects between appdomains.
8793
8794 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8795
8796         * assembly.c: old compilers compilation fix from 
8797         robertj@gmx.net (Robert Jordan).
8798
8799 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8800
8801         * class-internals.h: Little reminder for the future.
8802
8803         * debug-helpers.c: Fix up wrapper_type_names
8804
8805 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8806
8807         * image.c, metadata-internals.h: when loading an image from a file,
8808         mmap all of it and use the same codepaths as when using a
8809         in-memory image: the code is simpler and we use less memory
8810         (both writable and readonly).
8811
8812 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8813
8814         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8815         API to alloc runtime data structures that need to be tracked by the
8816         GC and contain pointers.
8817         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8818         make the code more readable and eventually use a different GC.
8819
8820 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8821
8822         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8823         for out arguments.
8824         
8825 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8826
8827         * object.c: In release_type_locks(), don't release the cctor lock
8828         if it has already been released. This fixes a crash in the
8829         thread5 test.
8830
8831 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8832
8833         * gc.c, marshal.c, icall.c: register a delegate for finalization
8834         only when the native function pointer has been allocated for it.
8835
8836 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8837
8838         * object.c: cleaned up some code, allocate objects that are
8839         pointer free with the atomic malloc variant. Allocate memory
8840         for static data from the mempool if it's pointer-free.
8841         Allocate the bounds array at the end of the array data, when needed.
8842         * object-internals.h, object.h: move a private function in a private
8843         header.
8844         * class.c: handle missing case in tracking references in fields.
8845
8846 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8847
8848         * class.c, class-internals.h: keep track if a type has
8849         reference fields in either the instance or static fields.
8850
8851 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8852
8853         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8854         and renamed to MonoRuntimeInfo. Added fields to store the expected
8855         framework assembly version. Changed mono_get_framework_version and
8856         mono_get_runtime_version for a single mono_get_runtime_info method.
8857         
8858         * assembly.c: Added method to remap system assembly versions to the
8859         current executing runtime version. Removed old mapping code.
8860         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8861         
8862         * icall.c, reflection.c: Track api changes.
8863
8864 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8865
8866         * loader.c (method_from_memberref): Improve error reporting,
8867         produce the class name instead of the typeref/typedef index. 
8868
8869 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8870
8871         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8872
8873 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8874
8875         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8876         stdcall and charset name mangling.  Reorganize the code and add
8877         some tracing stuff.
8878
8879 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8880
8881         * monodiet.c: More iters!
8882
8883         * marshal.c: Iter usage.
8884
8885         * icall.c: Iter usage.
8886
8887         * object.c: Use iters.
8888
8889         * debug-helpers.c: More iters
8890
8891 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8892
8893         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8894         under win32.
8895
8896 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8897
8898         * mono-debug-debugger.c: use iters
8899
8900         * class.c, class-internals.h: mono_class_setup_events is static
8901         now
8902
8903         * All callers: use iters
8904
8905 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8906
8907         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8908         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8909
8910 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8911
8912         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8913
8914         * marshal.h: Add prototypes for ldfld/stfld_remote.
8915
8916         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8917         this is called during startup.
8918         
8919 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8920
8921         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8922         MonoThreadsSync struct private in monitor.c. Changed the way
8923         MonoThreadsSync is allocated so it's faster and there is no
8924         need to keep track of it with a finalizer and it uses less memory.
8925         This also finally allows us to allocate mono objects as ptrfree when
8926         there are no reference fields.
8927
8928 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8929
8930         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8931         disappearing link to the GC interface and use them to simplify
8932         the gchandles code.
8933
8934 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8935
8936         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8937         stfld_remote which call mono_load/store_field_new. This allows methods
8938         calling ldfld/stfld wrappers to be AOTed.
8939
8940         * console-io.c: Include sys/filio.h under solaris.
8941         
8942         * console-io.c: Include curses.h if needed correctly.
8943
8944 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8945         
8946         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8947         method->klass as well.
8948
8949         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8950
8951         * class.c (mono_class_init): Switch on lazy initialization of 
8952         methods.
8953
8954         * class.c (mono_class_get_finalizer): Handle the case when the 
8955         finalizer is inherited.
8956
8957 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8958
8959         * console-io.c: <curses.h> is needed by term.h on solaris.
8960
8961 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8962
8963         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8964         mono_class_setup_properties where possible. Remove this ftn from
8965         the header file, and make it static.
8966
8967 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8968
8969         * loader.c: Add missing setup_... call.
8970
8971         * class.c: Add missing setup_... calls.
8972
8973         * class.c (mono_class_init): Switch on lazy initialization of 
8974         the generic vtable.
8975         
8976         * class.c (mono_class_init): Fix generics broken by the recent changes.
8977
8978         * monodiet.c (handle_type): Add missing setup_... calls.
8979
8980         * class.c: Back out garbage in previous patch.
8981         
8982         * class.c: Add missing setup_... calls.
8983
8984         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8985         mono_class_setup_methods () if possible.
8986
8987         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8988
8989         * class-internals.h (MonoCachedClassInfo): New structure.
8990
8991         * class.c: Initialize properties and events fields of MonoClass lazily.
8992
8993         * class.c: Add infrastructure for lazily initializing the methods and
8994         vtable fields of MonoClass. Not yet used.
8995
8996         * class.c (mono_class_get_finalizer): New helper function.
8997
8998         * class.c: Add infrastructure for loading some class related data from
8999         an AOT file.
9000
9001         * object.c: Add infrastructure for initializing the vtable from data
9002         in the AOT file.
9003
9004         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9005
9006         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9007         appropriate initialization function before accessing parts of the
9008         MonoClass structure.
9009
9010         * marshal.c: Fix warnings.
9011         
9012         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9013
9014         * mono-debug-debugger.c (get_exception_message): Use 
9015         mono_class_get_method_from_name_flags ().
9016
9017 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9018
9019         * reflection.c, appdomain.c: Replace a few manual searches that
9020         Zoltan missed. (Paolo approved this part of my initial patch).
9021
9022 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9023
9024         * profiler.c: disable recording statistical events at report time.
9025
9026 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9027
9028         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9029         to byteswap arrays of enum values, too (bug #72080).
9030
9031 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9032
9033         * appdomain.c (set_domain_search_path): Allow this to be called if
9034         domain->setup is not yet set.
9035
9036         * loader.c (mono_method_get_index): New helper function.
9037
9038         * loader.c reflection.c: Use mono_method_get_index ().
9039
9040         * class.c (mono_class_get_method_from_name_flags): New helper method.
9041
9042         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9043         this.
9044
9045         * class.c (mono_class_get_cctor): New helper method.
9046
9047         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9048         mono_class_get_method () to look up methods.
9049
9050 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9051
9052         * console-io.c: Fix the build, this should work on Windows.
9053
9054 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9055
9056         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9057         be set to null to keep things valid
9058
9059 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9060
9061         * icall.c: added Console 2.0 icalls.
9062         * Makefile.am: added console-io.[ch]
9063         * console-io.[ch]: internal calls for Console 2.0 API.
9064
9065 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9066
9067         * class.c: make sure we consider all the interfaces
9068         when calculating max_interface_id (bug found by
9069         Jeroen Frijters running ikvm).
9070
9071 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9072
9073         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9074         valuetype fields to null.
9075
9076         * object.c (set_value): Ditto. Fixes #71669.    
9077
9078 2005-01-31  Martin Baulig  <martin@ximian.com>
9079
9080         * metadata.c (mono_metadata_has_generic_params): New public
9081         function; checks whether something is a generic method.
9082
9083 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9084
9085         * appdomain.c: fix infinite recursion when adding assemblies.
9086
9087 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9088
9089         * object.c: Fix small typo to return all items for Environment.
9090         GetCommandLineArgs.
9091
9092 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9093
9094         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9095         reflection.c: more domain and assembly-unload related fixes
9096         and memory leaks plugs.
9097
9098 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9099
9100         * 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.
9101
9102 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9103
9104         * loader.c (mono_method_signature): Make this method lazy
9105         (mono_get_method_from_token): Don't computate the signature here.
9106
9107         Doing this saves quite a bit of memory. I got 90 kb on starting up
9108         monodoc. It should also save some disk reads on startup.
9109
9110         * *: MonoMethod->signature might be NULL now. You *MUST* use
9111         mono_method_signature.
9112
9113 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9114
9115         * object.c (mono_runtime_get_main_args): Return an array from the
9116         current domain here. Fixes #71938.
9117
9118 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9119
9120         * monitor.c: formatting changes to comply with the
9121         mono coding style and remove #ifdefs from the code.
9122
9123 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9124
9125         * metadata.c, private.h: remove some unneeded data
9126         and use a more compact representation for table schemas.
9127
9128 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9129
9130         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9131         to get a better distribution in hash tables.
9132         * *.c: use mono_aligned_addr_hash() where appropriate.
9133         * assembly.c: make var static.
9134
9135 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9136
9137         * domain-internals.h: Put MonoJitInfo on a diet.
9138
9139         * domain.c: Fix a warning.
9140
9141 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9142
9143         * gc.c: rework the gc handles code to reuse handles
9144         when freed.
9145
9146 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9147
9148         * domain.c: fixed long standing bug in mono_string_equal() which
9149         was brought to light with the ldstr changes.
9150
9151 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9152
9153         * reflection.c: Remove warning by adding missing include for marshal.h
9154
9155 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9156
9157         * domain.c, object.c: change the ldstr_table to hold
9158         MonoString* as keys: makes the runtime isinterned lookup
9159         faster and simplifies memory management.
9160
9161 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9162  
9163         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9164         possible to add imperative security checks before calling the icall.
9165         * reflection.c: Return security attributes on the original MonoMethod
9166         (and not the wrapped one). This fix permissions on icalls.
9167
9168 2005-01-25  Dick Porter  <dick@ximian.com>
9169
9170         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9171         the check for mktime() support actually test the mktime() return
9172         value.  "Fixes" bug 71682, though the output is still different to
9173         MS.
9174
9175 2005-01-25  Martin Baulig  <martin@ximian.com>
9176
9177         * class.c (mono_class_is_assignable_from): Make this work for
9178         generic instances.
9179
9180 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9181
9182         * marshal.c (mono_string_utf8_to_builder)
9183         (mono_string_builder_to_utf16): We might not have ownership of the
9184         string. In thise case, we need to create a new buffer.
9185
9186         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9187         be null, in which case, use the default capacity.
9188
9189 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9190
9191         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9192         GC events to the profiler.
9193
9194 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9195
9196         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9197         if you don't want the GC to run.
9198
9199 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9200
9201         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9202         start providing a GC API and keeping different implementations in
9203         their own file.
9204         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9205
9206 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9207
9208         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9209         mmap rather than allocating a huge buffer.
9210         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9211         above.
9212
9213 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9214
9215         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9216         and CheckExecutionRights.
9217         * reflection.c|h: Keep the index of the declarative security to be 
9218         used, instead of the pointer, when AOT compiler is used. Also add 
9219         class initialization when requesting demands.
9220         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9221         CheckExecutionRights. Both properties are now FALSE by default, and
9222         unmodifiable, unless the --security option is used.
9223
9224 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9225
9226         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9227         reflection.c: properly refcount images and assemblies, many leaks fixed.
9228
9229 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9230
9231         * threadpool.c: increase the timeout for threads in the thread pool to
9232         10s.  Fixes bug #67159.
9233
9234 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9235
9236         * class-internals.h: Sun's compiler insists on explicit
9237         signed on bit fields to handle then correctly.
9238
9239 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9240
9241         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9242         Make the size of the array fit only the number of invalid path
9243         chars that we have.
9244
9245         * class.c (_mono_class_get): Improve the error reporting when a
9246         class referenced is not found, to assist debugging. 
9247
9248 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9249
9250         * threads.c: fix off-by-one error.
9251         * domain.c: free data allocated in the domain.
9252
9253 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9254
9255         * reflection.c (mono_method_body_get_object): Fill out exception info
9256         as well.
9257
9258         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9259         structure.
9260         
9261 2005-01-19  Martin Baulig  <martin@ximian.com>
9262
9263         * loader.c (mono_get_method_constrained): Make this work again.
9264
9265 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9266
9267         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9268         guint16 to match the managed side.
9269
9270         * reflection.c (mono_reflection_body_get_object): Fill out local
9271         variables array.
9272
9273         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9274         as well.
9275
9276         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9277         'local_var_sig_token'.
9278
9279 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9280
9281         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9282         System.Drawing.
9283
9284         * reflection.c (mono_method_body_get_object): Handle abstract and
9285         runtime methods.
9286
9287 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9288
9289         * marshal.c, loader.c, class-internals.h, reflection.c:
9290         store the emthod data for a wrapper in an array instead of a list.
9291
9292 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9293
9294         * marshal.c: change the code to allocate memory more
9295         conservatively for method wrappers.
9296
9297 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9298
9299         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9300         fields from MonoClass to the marshal info structure where they belong.
9301
9302 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9303
9304         * class.c, object.c, class-internals.h, marshal.c: rearrange
9305         some fields and tweak some types to lower memory usage.
9306
9307 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9308
9309         * threads.c (signal_thread_state_change): Handle the case when the
9310         target thread is the current thread.
9311
9312         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9313
9314         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9315         emit_ptr_to_object_conv. 
9316
9317         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9318         marshalling. Fixes #71352.
9319
9320 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9321
9322         * metadata.h, blob.h: move table enum to blob.h so it can be included
9323         in any header.
9324         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9325         cut the size of MonoImage/MonoDynamicImage.
9326
9327 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9328
9329         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9330
9331 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9332
9333         * reflection.c, reflection.h, icall.c: add a function to check
9334         if an attribute type is defined for a metadata object.
9335
9336 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9337
9338         * object-internals.h: Added some needed fields from StringBuilder class.
9339         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9340
9341 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9342
9343         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9344         threads before shutting down the runtime.
9345
9346         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9347
9348 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9349
9350         * object-internal.h, threads.c: implement stacksize and 
9351         parameterized thread start functionality (requires
9352         matching corlib). Marked broken code for later removal.
9353
9354 2005-01-12  Martin Baulig  <martin@ximian.com>
9355
9356         * class-internals.h (MonoGenericClass): Moved the `initialized'
9357         flag to MonoDynamicGenericClass, removed `init_pending'.
9358         (MonoGenericInst): Added `is_reference' flag.
9359
9360 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9361
9362         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9363         inside the MSDOS header. Fixes #71201.
9364
9365         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9366         gc thread.
9367         (mono_domain_finalize): Ditto.
9368
9369 2005-01-12  Martin Baulig  <martin@ximian.com>
9370
9371         * class.c (mono_get_shared_generic_class): Use the cache for
9372         non-dynamic generic classes.
9373
9374         * class-internals.h (mono_class_create_generic_2): Removed
9375         function prototype, this function is now static inside class.c.
9376
9377         * class.c (mono_class_create_generic_2): Made this static, only
9378         call it from mono_class_init() and mono_class_setup_parent().
9379         (collect_implemented_interfaces_aux): Call mono_class_init() on
9380         the interfaces we collect.
9381         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9382
9383 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9384
9385         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9386         it a real thread handle.
9387
9388         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9389         MonoJitExceptionInfo, since each catch clause needs its own variable.
9390         
9391 2005-01-11  Dick Porter  <dick@ximian.com>
9392
9393         * image.c (mono_pe_file_open): New variant on mono_image_open()
9394         that does not set up the CLI metadata; used for FileVersionInfo so
9395         it can get the data for windows binaries too.
9396         
9397         * process.c (process_read_string_block): Don't read off the end of
9398         the StringTable block.
9399
9400         These both fix bug 70766.
9401
9402 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9403
9404         * gc.c: set some fields to NULL at GC cleanup time.
9405         * threads.c: if we quit the main thread, call exit ().
9406
9407 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9408
9409         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9410
9411 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9412
9413         * threads.h, threads.c, object.c: added accessor and settor for
9414         main_thread. Handle it specially when exiting from it: wait
9415         for other foreground threads to exit.
9416
9417 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9418
9419         * process.c, verify.c: remove some bloat.
9420
9421 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9422
9423         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9424         the calling convention to cdecl under win32.
9425
9426 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9427
9428         * object.c (mono_object_get_size): New function to get the size of
9429         an object instance.
9430
9431         * profiler.c (simple_allocation): Use above.
9432
9433 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9434
9435         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9436         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9437         get an appdomain by it's id and we can't assume the root's id is 0).
9438         * domain-internals.h: Change the function prototype to match.
9439         * icall.c: Change the icall table for AppDomain.
9440
9441 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9442
9443         * locales.c (string_invariant_compare_char): Only compute
9444         GUnicodeTypes in the case where we need them.  Test for ordinality
9445         first and return if so.
9446
9447         From the commit:
9448
9449                 /*
9450                  * FIXME: here we must use the information from c1type and c2type
9451                  * to find out the proper collation, even on the InvariantCulture, the
9452                  * sorting is not done by computing the unicode values, but their
9453                  * actual sort order.
9454                  */
9455
9456 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9457
9458         * loader.c: for P/Invoke methods, allow the "Internal" shared
9459         library name to refer to the calling process symbol namespace.
9460
9461 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9462
9463         * Makefile.am: Add the security manager to the build.
9464         * security-manager.c|h: New. Initialization of the security manager.
9465
9466 2005-01-07  Dick Porter  <dick@ximian.com>
9467
9468         * threads.c: 
9469         * monitor.c: Update thread state during Monitor and WaitHandle
9470         waits.  Fixes bug 71031.
9471
9472 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9473
9474         * reflection.c (property_encode_signature): Correctly handle when the
9475         property has no methods.
9476
9477 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9478
9479         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9480         
9481         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9482         fields from mb, not rmb. Fixes #71017.
9483
9484         * marshal.c (emit_ptr_to_str_conv): Add support for 
9485         ByValTStr -> string conversion. Fixes #71015.
9486
9487         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9488
9489         * mempool.c (mono_mempool_contains_addr): New helper function.
9490
9491 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9492
9493         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9494         HasSematics encoded fields.
9495         
9496         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9497         invalid string marshalling.
9498
9499         * metadata.c: Fix warnings.
9500         
9501 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9502
9503         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9504         profiler support.
9505
9506 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9507
9508         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9509         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9510         tests.
9511
9512 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9513
9514         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9515         so methods containing these can be AOTed.
9516
9517 2005-01-03  Martin Baulig  <martin@ximian.com>
9518
9519         * loader.c (find_method): Removed the hack for generic instances.
9520         (method_from_memberref): If our parent is a generic instance, pass
9521         its generic type definition to find_method() and then inflate the
9522         method.
9523         (mono_get_method_constrained): Pass the generic type definition to
9524         find_method() and inflate the method later.
9525
9526         * class-internals.h (MonoStats): Added `generic_class_count'.
9527
9528         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9529         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9530
9531         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9532         generic type definitions.
9533
9534 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9535
9536         * loader.c icall.c: Fix warnings.
9537
9538 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9539
9540         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9541         blittable types. Fixes #70864.
9542
9543 2004-12-29  Martin Baulig  <martin@ximian.com>
9544
9545         * icall.c
9546         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9547
9548         * reflection.c (mono_method_get_object): Create a
9549         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9550         call mono_get_inflated_method().
9551
9552         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9553
9554 2004-12-27  Martin Baulig  <martin@ximian.com>
9555
9556         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9557         (MonoMethodInflated): Added `inflated' field.
9558
9559         * class.c (mono_class_inflate_generic_method): Don't really
9560         inflate the method here; just set the `is_inflated' flag in the
9561         MonoMethod.
9562         (mono_class_get_inflated_method): Actually inflate the method here
9563         if it's not already inflated; we use the MonoMethodInflated's new
9564         `inflated' field as a cache.
9565
9566 2004-12-26  Martin Baulig  <martin@ximian.com>
9567
9568         * class.c
9569         (inflate_generic_class): Moved some code out of inflate_generic_type().
9570         (mono_class_inflate_generic_method): If we're already inflated,
9571         inflate the context and use the declaring method; ie. make sure
9572         the declaring method of an inflated method is always the generic
9573         method definition.
9574         (mono_class_create_from_typedef): Create
9575         `class->generic_container->context->gclass'.
9576
9577 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9578
9579         * metadata-internals.h, marshal.c, reflection.c: More
9580         MonoGHashTable->GHashTable.
9581
9582         * domain-internals.h, class.c: Change MonoGHashTable's into
9583         GHashTables for some cases where no gc stuff is used
9584
9585         All users: update apis
9586
9587 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9588
9589         * metadata.c (builtin_types): Make this `const'. Makes this get
9590         put into the shareable section.
9591         (mono_metadata_init): Casts to make gcc happy.
9592
9593 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9594
9595         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9596
9597 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9598
9599         * icall.c: Added an internal call to retrieve the position and length
9600         of assembly-level declarative security attributes (RequestMinimum, 
9601         RequestOptional and RequestRefuse). This is used by the Assembly class
9602         to re-create the corresponding permission sets.
9603
9604 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9605
9606         * marshal.c: fix the stelemref wrapper to be type correct
9607         (and faster).
9608
9609 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9610
9611         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9612         to do key & 0x7fffffff. Hashtable already does this. It just
9613         results in longer code.
9614
9615 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9616
9617         * appdomain.c: Bump corlib version.
9618         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9619         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9620         * reflection.c|h: Add functions to get declarative security infos
9621         (blob position and length) for assemblies, classes and methods.
9622
9623 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9624
9625         * reflection.c: sort the constant table (bug #70693).
9626
9627 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9628
9629         * object-internals.h, threads.c, domain.c: add accessors for
9630         the MonoThread and MonoDomain tls keys.
9631
9632 2004-12-18  Martin Baulig  <martin@ximian.com>
9633
9634         * class.c (inflate_generic_type): If we're inflating a generic
9635         instance, set `ngclass->context->container = context->container';
9636         ie. the container we inflated into.
9637
9638         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9639         inflate_generic_type() changes.
9640
9641 2004-12-17  Martin Baulig  <martin@ximian.com>
9642
9643         * class-internals.h
9644         (MonoGenericClass): Replaced `MonoType *generic_type' with
9645         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9646         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9647         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9648
9649 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9650
9651         * exception.c (mono_exception_from_token): New helper function.
9652
9653 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9654
9655         * assembly.c (mono_assembly_load_with_partial_name): Call 
9656         mono_assembly_loaded before invoking the preload hooks. Fixes
9657         #70564.
9658
9659         * object-internals.h (MonoThread): Change culture_info and 
9660         ui_culture_info into an array.
9661
9662         * threads.c: Cache culture info objects from more than one appdomain.
9663
9664         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9665         current UI culture.
9666
9667 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9668
9669         * threads.h threads.c appdomain.c: Clear the culture_info field of
9670         all threads during unloading if they point to an object in the dying
9671         appdomain.
9672
9673 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9674
9675         * culture-info.h (TextInfoEntry): New struct
9676         * object-internals.h: sync with managed
9677         * locales.c: fill the `text_info_data' field
9678         * culture-info-tables.h: update
9679
9680 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9681
9682         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9683         collector.
9684
9685 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9686
9687         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9688         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9689
9690 2004-12-12  Martin Baulig  <martin@ximian.com>
9691
9692         * mono-debug-debugger.c (write_type): If we're an enum and the
9693         builtin types have already been initialized, call mono_class_init().
9694
9695 2004-12-11  Martin Baulig  <martin@ximian.com>
9696
9697         * metadata.c (mono_metadata_load_generic_params): Added
9698         `MonoGenericContainer *parent_container' argument; automatically
9699         compute `container->is_method'; pass the correct owner to
9700         get_constraints().      
9701
9702         * reflection.c (compare_genericparam): Sort the GenericParam table
9703         according to increasing owners. 
9704
9705 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9706
9707         * profiler.c: allow disabling the default profiler.
9708
9709 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9710
9711         * decimal.c, icall.c: allow disabling System.Decimal support.
9712
9713 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9714
9715         * reflection.c: Add support for null attribute arguments.
9716
9717 2004-12-09  Martin Baulig  <martin@ximian.com>
9718
9719         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9720         names to get rid of compiler warnings.
9721
9722 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9723
9724         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9725         mono_marshal_load_type_info (). Fixes #69625.
9726         (mono_marshal_get_ptr_to_struct): Likewise.
9727
9728 2004-12-08  Martin Baulig  <martin@ximian.com>
9729
9730         * mono-debug.h: Bumped version number to 47.
9731
9732         * mono-debug-debugger.c
9733         (mono_debugger_event_handler, mono_debugger_event): Take two
9734         guint64 arguments insteed of a gpointer and a guint32.  
9735
9736 2004-12-08  Martin Baulig  <martin@ximian.com>
9737
9738         * debug-mono-symfile.h
9739         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9740         `address' to `native_offset'.
9741
9742 2004-12-08  Martin Baulig  <martin@ximian.com>
9743
9744         * class.c (mono_class_create_from_typespec): Only inflate if we
9745         either have `context->gclass' or `context->gmethod'.
9746
9747 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9748
9749         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9750
9751         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9752
9753         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9754
9755         * reflection.c (mono_assembly_get_object): Remove the workaround put
9756         in for the release.
9757         
9758         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9759
9760         * appdomain.c: Bump corlib version.
9761
9762         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9763         be visible in other appdomains.
9764
9765 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9766
9767         * threads.c: Interlocked inc and dec for longs were messed up,
9768         use a KISS based impl for this. Fixes 70234
9769
9770 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9771
9772         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9773
9774 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9775
9776         * icall.c: fix to follow policy not to allow struct
9777         arguments in icalls.
9778
9779 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9780
9781         * process.c: make the patch that handles spaces in file paths work
9782         on mono/windows too.
9783
9784 2004-12-06  Martin Baulig  <martin@ximian.com>
9785
9786         * class.c (mono_class_create_generic): Call
9787         mono_class_setup_supertypes() if we're dynamic.
9788         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9789
9790 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9791
9792         * object-internals.h: Add new fields to MonoThread.
9793
9794         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9795
9796         * icall.c threads-types.h threads.c: Add new icalls.
9797
9798         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9799
9800         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9801         managed side.
9802
9803         * appdomain.c: Bump corlib version.
9804
9805         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9806         internal assemblies. Fixes #69181.
9807
9808 2004-12-05  Martin Baulig  <martin@ximian.com>
9809
9810         * class.c (mono_class_inflate_generic_signature): Make this a
9811         no-op if `context' is NULL or we don't have any type parameters;
9812         also copy `sentinelpos'.        
9813
9814 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9815
9816         * image.c: Add unbox_wrapper_cache.
9817
9818         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9819
9820         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9821         function generator.
9822         
9823         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9824         Fixes #70173.
9825
9826         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9827         
9828 2004-12-04  Martin Baulig  <martin@ximian.com>
9829
9830         * loader.c (mono_method_get_signature_full): New public function;
9831         like mono_method_get_signature(), but with an additional
9832         `MonoGenericContext *' argument.
9833
9834         * class.c (mono_class_inflate_generic_signature): Formerly known
9835         as inflate_generic_signature(); make this public.
9836
9837 2004-12-04  Martin Baulig  <martin@ximian.com>
9838
9839         * metadata.c
9840         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9841         instead of a `MonoGenericContainer *'.  
9842         (mono_metadata_parse_array_full): Likewise.
9843         (mono_metadata_parse_signature_full): Likewise.
9844         (mono_metadata_parse_method_signature_full): Likewise.
9845         (mono_metadata_parse_generic_inst): Likewise.
9846         (mono_metadata_parse_generic_param): Likewise.
9847         (mono_metadata_parse_mh_full): Likewise.
9848         (mono_type_create_from_typespec_full): Likewise.
9849
9850 2004-12-03  Martin Baulig  <martin@ximian.com>
9851
9852         * class-internals.h (MonoGenericContainer): Replaced the
9853         `MonoGenericContext * pointer with a `MonoGenericContext'
9854         structure and made it the first element.
9855
9856 2004-12-03  Martin Baulig  <martin@ximian.com>
9857
9858         * class.c
9859         (inflate_generic_type): Set the `context->container' when creating
9860         a new MonoGenericContext.
9861         (mono_class_inflate_generic_method): Likewise.
9862         (mono_class_create_from_typespec): Just use `context->container'
9863         to get the container.
9864
9865         * loader.c (method_from_methodspec): Set `context->parent' from
9866         `context->container' - and if that's a method container, use its
9867         parent.  Also set the `context->container' when creating a new
9868         MonoGenericContext.
9869         (mono_get_method_from_token): Use just `context->container' to get
9870         the container.
9871
9872         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9873         `gclass->context->container'.
9874
9875         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9876         the `context->container' when creating a new MonoGenericContext.
9877
9878 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9879
9880         * reflection.c (compare_genericparam): Sort params with identical
9881         owner by their number. Fixes gen-111 on sparc.
9882
9883 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9884
9885         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9886         around the domain changes.
9887
9888         * appdomain.c (mono_domain_unload): Handle the case when the thread
9889         calling Unload is itself being aborted during unloading. Fixes #70022.
9890
9891         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9892
9893         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9894         checkpoint_func as an icall so it gets a wrapper.
9895         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9896         in the cross-appdomain wrappers too.
9897
9898         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9899
9900         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9901
9902         * reflection.c: Fix some memory leaks.
9903         
9904 2004-12-02  Martin Baulig  <martin@ximian.com>
9905
9906         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9907
9908         * metadata.c (generic_class_cache): New static hashtable.
9909         (mono_metadata_lookup_generic_class): New public method.
9910
9911 2004-12-02  Martin Baulig  <martin@ximian.com>
9912
9913         * class.c (mono_class_create_from_typedef): Call
9914         mono_class_setup_parent() and mono_class_create_mono_type() before
9915         parsing the interfaces.
9916
9917 2004-12-02  Martin Baulig  <martin@ximian.com>
9918
9919         * metadata.c (generic_inst_cache): New static hashtable.
9920         (mono_metadata_lookup_generic_inst): New public function.
9921         (mono_metadata_inflate_generic_inst): New public function.
9922         (mono_metadata_parse_generic_inst): New public function.
9923         (do_mono_metadata_parse_generic_class): Use the new
9924         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9925         since this'll also use the cache.
9926
9927         * reflection.c (mono_reflection_bind_generic_method_parameters):
9928         Use mono_metadata_lookup_generic_inst() to use the new cache.
9929
9930         * class.c (inflate_mono_type): Use
9931         mono_metadata_inflate_generic_inst() to inflate a generic
9932         instance; this'll also use the new cache.
9933
9934         * loader.c (method_from_methodspec): Use
9935         mono_metadata_parse_generic_inst() and
9936         mono_metadata_inflate_generic_inst() rather than parsing it
9937         manually, so we can use the new cache.
9938
9939 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9940
9941         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9942         the wait times out.
9943
9944 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9945
9946         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9947         iter->args based on whether parameters are passed in registers (i.e.
9948         MONO_ARCH_REGPARMS is defined)
9949
9950 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9951
9952         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9953         the exception message. Fixes #70070.
9954         (method_from_methodspec): Fix warnings.
9955
9956 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9957
9958         * process.c: (complete_path) return the path quoted
9959
9960 2004-12-01  Martin Baulig  <martin@ximian.com>
9961
9962         * class-internals.h (MonoGenericInst): New structure.
9963         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9964         `is_open' with `MonoGenericInst *inst'.
9965         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9966         `is_open' with `MonoGenericInst *inst'.
9967
9968 2004-11-30  Martin Baulig  <martin@ximian.com>
9969
9970         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9971
9972         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9973         to `generic_class_cache'.
9974
9975         * metadata.c
9976         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9977         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9978         (mono_generic_inst_is_valuetype): Renamed to
9979         mono_generic_class_is_valuetype().
9980
9981         * class-internals.h
9982         (MonoGenericInst): Renamed to MonoGenericClass.
9983         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9984         (MonoClass): Renamed `generic_inst' to `generic_class'.
9985         (MonoGenericContext): Renamed `ginst' to `gclass'.
9986
9987         * object-internals.h
9988         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9989
9990         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9991         mono_reflection_generic_class_initialize().
9992
9993         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9994         now known as "System.Reflection.MonoGenericClass".
9995         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9996
9997 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9998
9999         * class-internals.h: Added a flag field to MonoClass to cache the
10000         declarative security attributes actions associated with the class.
10001         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10002         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10003         applicable to the JITted method.
10004         * reflection.c|h: Added functions to extract (as flags) which security
10005         actions are available (declaratively) for a method, class or assembly.
10006         * metadata.c|h: Added functions to search the declarative security
10007         table in the metadata.
10008         
10009 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10010
10011         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10012         EXPORTEDTYPES are already in the class name cache, so there is no
10013         need to add extra code here to look at them. Just removes a bit of
10014         cruft.
10015
10016         (ves_icall_System_Environment_get_TickCount): No need for #if
10017         WINDOWS. We already have the code in io-layer.
10018
10019 2004-11-28  Martin Baulig  <martin@ximian.com>
10020
10021         * loader.c
10022         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10023         Fixes gen-112.cs.
10024
10025 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10026
10027         * assembly.c (do_mono_assembly_open): Instead of having a
10028         conditional WITH_BUNDLE, incorporate support for bundles here, by
10029         having a global `bundles' variable holding a pointer to the actual
10030         bundles. 
10031
10032         (mono_register_bundled_assemblies): New API call used by the
10033         bundle code. 
10034
10035         See mkbundle.1 for details.
10036         
10037 2004-11-27  Martin Baulig  <martin@ximian.com>
10038
10039         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10040         the vtable for generic methods.
10041
10042 2004-11-26  Martin Baulig  <martin@ximian.com>
10043
10044         * metadata.c
10045         (mono_metadata_generic_method_hash): New public function.
10046         (mono_metadata_generic_method_equal): Likewise.
10047
10048         * class-internals.h
10049         (MonoGenericContainer): Added `GHashTable *method_hash'.
10050
10051         * reflection.c (ReflectionMethodBuilder): Added
10052         `MonoGenericContainer *generic_container'.
10053         (reflection_methodbuilder_to_mono_method): Don't create a new
10054         MonoGenericContainer each time we're called.
10055         (mono_reflection_bind_generic_method_parameters): Use
10056         `container->method_hash' to cache the results so we don't create a
10057         different method if we're called several times with the same
10058         arguments.
10059
10060         * loader.c (method_from_methodspec): Use the new
10061         `container->method_hash' here, too.
10062
10063 2004-11-26  Martin Baulig  <martin@ximian.com>
10064
10065         * class.c (inflate_generic_signature): Correctly compute
10066         `res->has_type_parameters'.
10067         (mono_class_vtable): Use the `has_type_parameters' flag to
10068         determine whether we're a generic method.
10069
10070         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10071
10072 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10073
10074         * object.c (mono_runtime_run_main): Fix a small memory leak.
10075
10076 2004-11-25  Martin Baulig  <martin@ximian.com>
10077
10078         * class.c (set_generic_param_owner): Fixed the loop.
10079
10080 2004-11-25  Martin Baulig  <martin@ximian.com>
10081
10082         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10083         generic methods.
10084
10085 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10086
10087         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10088         names. Fixes #69787.
10089
10090 2004-11-24  Martin Baulig  <martin@ximian.com>
10091
10092         * class.c (mono_class_create_generic_2): If we don't have a
10093         `ginst->parent', inflate `gklass->parent' to get our parent.
10094
10095 2004-11-24  Martin Baulig  <martin@ximian.com>
10096
10097         * reflection.c (compare_genericparam): Correctly sort the
10098         GenericParam table; fixes #69779.
10099
10100 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10101
10102         * reflection.c: When writing a PE file, don't create a huge
10103         buffer in memory. Just write the arrays we have to the file.
10104         This reduces memory usage.
10105
10106         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10107         globally.
10108
10109 2004-11-17  Martin Baulig  <martin@ximian.com>
10110
10111         * class.c (mono_class_init): Don't setup `class->parent' for
10112         dynamic instances; moved this to mono_class_generic_2().
10113         (mono_class_create_generic): Also set `klass->inited' for dynamic
10114         generic instances.
10115         (mono_class_create_generic_2): Don't do anything for dynamic
10116         generic instances.  Set `klass->parent' here and also call
10117         mono_class_setup_parent() here. 
10118
10119         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10120         `MonoType *parent' argument; set `ginst->parent' before calling
10121         mono_class_create_generic_2(), so we set the correct parent.
10122
10123 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10124
10125         * reflection.c: allow getting attributes from ModuleBuilder
10126         (used by ikvm).
10127
10128 2004-11-17  Martin Baulig  <martin@ximian.com>
10129
10130         * class.c (mono_class_create_from_typedef): If a type parameter is
10131         inherited from an outer class, set its owner to that class.
10132
10133 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10134
10135         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10136           for (int*) written size. This fixes bug #69592.
10137
10138 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10139
10140         * icall.c: Added IsAuthenticodePresnet internal call.
10141         * image.c|h: New function that check a MonoImage for an Authenticode
10142         signature in the certificate PE data directory.
10143         * security.c|h: New internal call to ask the runtime if an 
10144         Authenticode signature seems referenced in the PE header.
10145
10146 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10147
10148         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10149
10150         * reflection.c (mono_image_create_pefile): Free the assembly streams
10151         after writing out the assembly file.
10152
10153         * object.c (mono_runtime_run_main): Fix small memory leak.
10154
10155         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10156         property access modifiers. Fixes #69389.
10157
10158 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10159
10160         * domain.c, object.c, object-internals.h, domain-internals.h,
10161         object.h, marshal.c: keep dynamic code info per domain.
10162
10163 2004-11-15  Martin Baulig  <martin@ximian.com>
10164
10165         * class.c (mono_type_get_name_recurse): Put type arguments in
10166         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10167         see bug #68387.
10168
10169 2004-11-15  Martin Baulig  <martin@ximian.com>
10170
10171         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10172         (mono_class_setup_vtable): When computing `the_cname' for a
10173         generic instance, don't include the namespace since we'd otherwise
10174         add it twice.
10175
10176 2004-11-15  Martin Baulig  <martin@ximian.com>
10177
10178         * class.c (mono_class_create_generic): Changed return type to void.
10179         (mono_class_create_generic_2): New public function; setup
10180         `class->method', `class->field' and `class->interfaces' here
10181         instead of in mono_class_init().
10182
10183         * class.h (mono_class_create_generic): Moved to class-internals.h.
10184
10185 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10186
10187         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10188         rather than writing to memory, write to this file. Right now,
10189         we are just writting into a buffer, and copying that. However
10190         we can avoid the buffer later.
10191
10192         (mono_dynamic_stream_reset): new function
10193
10194         * icall.c, object-internals.h: update for the above.
10195
10196 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10197
10198         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10199         have been using gc'd memory. First it is slower, unlikely
10200         the comment in the source code said, secondly, it increases
10201         our footprint to do it in the gc.
10202
10203         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10204         the method so that it does not have to copy to managed code.
10205
10206 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10207
10208         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10209
10210 2004-11-12  Martin Baulig  <martin@localhost>
10211
10212         * reflection.c (mono_image_create_token): Allow generic method
10213         definitions here, since they may appear in an `.override'; see
10214         gen-98/gen-99 for an example.
10215
10216 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10217
10218         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10219         #69365.
10220
10221         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10222         descriptive.
10223
10224 2004-11-11  Martin Baulig  <martin@ximian.com>
10225
10226         * class.c (mono_class_setup_vtable): In an explicit interface
10227         implementation, the method name now includes the arity.
10228
10229 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10230
10231         * object.c (mono_array_full_copy): Fix warning.
10232
10233 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10234
10235         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10236         mono_class_get_method_from_name() instead.
10237         
10238         * class-internals.h: Added two new types of wrappers. 
10239         Added MonoRemotingTarget enum. Added new trampoline function type, which
10240         takes an additional MonoRemotingTarget value as parameter, so it is
10241         possible to request a trampoline for a specific target.
10242         
10243         * class.c: Added new mono_class_get_method_from_name() method.
10244         
10245         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10246         general remoting sinks and one specific for cross domain calls.
10247         
10248         * debug-helpers.c: Added new wrapper names.
10249         
10250         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10251         of a remote class.
10252         
10253         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10254         
10255         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10256         with several other methods (mono_marshal_get_xappdomain_dispatch,
10257         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10258         and others) can generate a fast remoting wrapper for cross domain calls.
10259         More information can be found in docs/remoting.
10260         Other changes: Removed mono_find_method_by_name, and used
10261         mono_class_get_method_from_name instead.
10262         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10263         is stored in the remoting invoke hashtable.
10264         
10265         * marshal.h: published the new method for getting the xdomain wrapper,
10266         and also added a method for getting the adequate wrapper for a given
10267         method and target.
10268         
10269         * object-internals.h, object.c: Added a couple of methods for capying and
10270         cloning arrays.
10271         Modified mono_install_remoting_trampoline, which takes the new remoting
10272         trampoline that has a remoting target as parameter.
10273         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10274         will return the most suitable vtable for the target.
10275         Added mono_remote_class_vtable, which returns the vtable of a remote class
10276         (which can be the normal remoting vtable or the xdomain vtable).
10277         
10278         * threads.c: the xdomain invoke and dispatch wrappers must also be
10279         protected against interruptions.
10280
10281 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10282
10283         * icall.c: use memmove in BlockCopyInternal when the source and
10284         destination arrays are the same.
10285
10286 2004-11-09  Martin Baulig  <martin@ximian.com>
10287
10288         * class-internals.h (MonoGenericContainer): Removed `method' and
10289         `signature', replaced them with `is_method' and `is_signature'
10290         flags.  Added `context'.
10291
10292         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10293         instead of a `MonoGenericContainer *'.
10294
10295         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10296         for dynamic type parameters.
10297         (mono_metadata_load_generic_params): Setup `container->context'.
10298
10299         * reflection.c (mono_reflection_setup_generic_class): Setup
10300         `tb->generic_container->context'.
10301         (do_mono_reflection_bind_generic_parameters): Use
10302         mono_class_inflate_generic_type() to correctly inflate types,
10303         rather than using our own hack just for MONO_TYPE_VAR.
10304
10305 2004-11-09  Martin Baulig  <martin@ximian.com>
10306
10307         * class.c (mono_class_inflate_generic_method): Small fix; don't
10308         crash here.
10309
10310         * icall.c
10311         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10312         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10313         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10314         (ves_icall_Type_BindGenericParameters): Likewise.
10315         (ves_icall_Type_get_IsGenericInstance): Likewise.
10316         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10317         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10318         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10319         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10320
10321 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10322
10323         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10324         assembly versions and public key tokens. Fixes #69113.
10325
10326 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10327
10328         * metadata.c: fix bug introduced with the type cache changes
10329         on 2004-11-06.
10330
10331 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10332
10333         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10334         the MonoClass pointer instead of the token in exception clauses.
10335         * reflection.c: updates for the above and make the code not depend
10336         on the structure of MonoExceptionClause.
10337
10338 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10339
10340         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10341         Add support for dynamic assemblies. Fixes #69114.
10342
10343         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10344
10345 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10346
10347         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10348         since most only those methods use it. the code member of
10349         MonoMethodPInvoke was dead, so that can be removed too. Also,
10350         remove inline_count (again, not used), and move slot so that it
10351         can share bits with some other flags. This saves 8 bytes in the
10352         structure and gives us about 50 kb back for mcs helloworld.cs
10353
10354         * *.[ch]: Do naming changes for the above.
10355
10356         * loader.c (mono_method_get_header): Lazily init the header
10357         on first access.
10358         (mono_get_method_from_token): don't init the header here
10359         (mono_free_method): the header may never be allocated
10360
10361         Overall, this saves 150 kb of unmanaged allocations
10362         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10363         memory at runtime.
10364         
10365         * loader.c, loader.h (mono_method_get_header): new accessor.
10366
10367         * *.[ch]: use the above method. Prepares us to lazily load
10368         the header.
10369
10370         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10371         three warnings, which are actual bugs (see 69206).
10372
10373         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10374         unused. Saves a cool 4 bytes / method.
10375
10376 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10377
10378         * metadata.c (builtin_types): Add types for System.Object here.
10379         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10380         for a class or valuetype from klass->this_arg or klass->byval_arg.
10381
10382         On mcs for a hello world, this gets us down from 21836 MonoType's
10383         to 14560.
10384
10385         (mono_metadata_free_type): Account for the above change.
10386
10387 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10388
10389         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10390         exception instead of asserting if name is null.
10391         (ves_icall_System_AppDomain_GetData): Ditto.
10392
10393 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10394
10395         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10396         EnumBuilder.
10397
10398         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10399         Return NULL when the domain does not have entry_assembly set.
10400
10401         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10402         Add a 'resource_modules' argument.
10403         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10404
10405         * reflection.c (mono_reflection_create_runtime_class): Move setting
10406         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10407         for enums too.
10408
10409         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10410         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10411         Throw an ArgumentNullException if 'ptr' is null.
10412
10413         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10414         assemblies here. Fixes #69020.
10415
10416 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10417
10418         * reflection.c (build_compressed_metadata): Fix the previous patch for
10419         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10420         the stack.
10421
10422 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10423
10424         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10425         the cultures is false. Fixes #69090.
10426
10427         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10428         detected by valgrind.
10429         
10430         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10431         TypeResolve multiple times for the same type. Fixes #65577.
10432
10433 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10434
10435         * marshal.c: Avoid using ldftn to call managed functions. It is
10436         much slower than just a call.
10437
10438         * reflection.c (mono_module_get_object): free the basename we
10439         allocate here from glib.
10440         
10441         * reflection.c (ensure_runtime_vtable): make sure to free
10442         overrides.  Also, we were allocating an array of MonoMethod not an
10443         array of MonoMethod*.
10444
10445         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10446
10447         * image.c (mono_image_close): free image->guid here.
10448
10449 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10450
10451         * reflection.c: Fix some spec conformance issues with the PE file
10452         structures so mcs compiled apps run on the Net 2.0 beta.
10453
10454 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10455
10456         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10457         Implement this. Fixes #67264.
10458
10459         * debug-helpers.h debug-helpers.c marshal.c: Move 
10460         mono_find_method_by_name to debug-helpers.c.
10461
10462 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10463
10464         * object.c (mono_release_type_locks): type_initialization_hash is
10465         a GHashTable.
10466
10467         * reflection.c object.c object-internals.h: Fix warnings.
10468
10469         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10470         without accessors. Fixes #61561.
10471
10472         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10473         application base from the root domain if not set. Fixes #65641.
10474         (mono_runtime_init): Fix warning.
10475
10476 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10477
10478         * appdomain.c: call mono_thread_pool_init.
10479         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10480         of worker threads based on the number of CPUs and the environment
10481         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10482         for non-windows (windows) systems.
10483
10484 2004-10-27  Chris Toshok  <toshok@ximian.com>
10485
10486         * mono-debug-debugger.c (write_class): don't call mono_class_init
10487         here, as even with the check for (!klass->init_pending), we get
10488         into a situation where we're hitting cycles in class
10489         initialization.  Fixes #68816.
10490
10491 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10492
10493         * image.c: Avoid overwriting values in the loaded_images_hash when an
10494         assembly is loaded multiple times. Fixes #61152.
10495
10496         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10497         so multiple satellite assemblies for the same name can be loaded.
10498         Fixes #68259.
10499
10500         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10501         not NULL.
10502
10503         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10504         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10505
10506         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10507         pending finalizers are not invoked after the appdomain has been 
10508         unloaded. Fixes #67862.
10509
10510 2004-10-22  Martin Baulig  <martin@ximian.com>
10511
10512         * mono-debug-debugger.c
10513         (mono_debugger_runtime_invoke): Don't box valuetypes.
10514
10515 2004-10-22  Chris Toshok  <toshok@ximian.com>
10516
10517         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10518         don't hide private methods.
10519
10520 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10521
10522         * icall.c: Allows the runtime to "share" (when known) the public key
10523         token of an assembly. This avoid the need to recalculate the token 
10524         (from the public key) in managed code.
10525
10526 2004-10-21  Chris Toshok  <toshok@ximian.com>
10527
10528         * debug-helpers.c (append_class_name): argh, revert last patch.
10529         
10530 2004-10-21  Chris Toshok  <toshok@ximian.com>
10531
10532         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10533         not '/', so that it matches what the debugger uses to look up
10534         methods.
10535
10536 2004-10-21  Martin Baulig  <martin@ximian.com>
10537
10538         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10539         public method; this is called each time an exception is thrown and
10540         allows the debugger to use exception catch points.
10541
10542 2004-10-21  Martin Baulig  <martin@ximian.com>
10543
10544         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10545         the stack pointer and the exception object in some struct and pass
10546         that to the debugger.
10547
10548 2004-10-21  Chris Toshok  <toshok@ximian.com>
10549
10550         * mono-debug-debugger.c (do_write_class): add instance/static
10551         event support.  We don't expose "raise" or "other" yet.
10552         (event_is_static): new method.
10553
10554 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10555
10556         * mono-debug-debugger.c
10557         (mono_debugger_handle_exception): Remove
10558         bogus return value for fussy compilers.
10559
10560 2004-10-20  Martin Baulig  <martin@ximian.com>
10561
10562         * mono-debug-debugger.c
10563         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10564         (mono_debugger_handled_exception): Likewise.
10565
10566 2004-10-20  Martin Baulig  <martin@ximian.com>
10567
10568         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10569         MONO_DEBUGGER_EVENT_EXCEPTION.
10570
10571         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10572         public function to send the debugger a notification for an
10573         exception and inform it about a catch/finally clause.
10574
10575 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10576
10577         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10578         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10579         fix 2.95 build. 
10580
10581         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10582
10583 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10584
10585         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10586         marshalled as [In,Out]. Fixes #58325.
10587
10588 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10589
10590         * reflection.c (mono_method_body_get_object): Implement some fields.
10591
10592 2004-10-12  Martin Baulig  <martin@ximian.com>
10593
10594         * reflection.c (mono_reflection_bind_generic_parameters): Small
10595         fix, correctly retrieve our parent from a generic instance.
10596
10597 2004-10-12  Martin Baulig  <martin@ximian.com>
10598
10599         * metadata.c (mono_metadata_generic_param_equal): We always have
10600         an owner.
10601
10602         * class.c
10603         (mono_class_from_generic_parameter): We need to have an owner.
10604         (my_mono_class_from_generic_parameter): Likewise.
10605
10606         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10607         mono_reflection_create_generic_class() and added a new
10608         mono_reflection_setup_generic_class().  
10609         (mono_reflection_initialize_generic_param): If we're a nested
10610         generic type and inherited from the containing class, set our
10611         owner to the outer class.
10612
10613 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10614
10615         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10616
10617         * reflection.c (mono_method_body_get_object): New function to create
10618         a MethodBody object.
10619
10620         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10621
10622 2004-10-11  Martin Baulig  <martin@ximian.com>
10623
10624         * metadata.c (_mono_metadata_type_equal): Renamed to
10625         do_mono_metadata_type_equal() and made static.
10626
10627 2004-10-11  Martin Baulig  <martin@ximian.com>
10628
10629         * appdomain.c: Bump corlib version number to 28.
10630
10631 2004-10-10  Martin Baulig  <martin@ximian.com>
10632
10633         * class-internals.h
10634         (MonoGenericInst): Added `MonoGenericContainer *container'.
10635         (MonoGenericMethod): Likewise.
10636         (MonoGenericContext): Likewise.
10637         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10638
10639         * metadata.c
10640         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10641         (do_mono_metadata_parse_generic_inst): Likewise.
10642         (mono_metadata_parse_type_full): New public method.  This is the actual
10643         mono_metadata_parse_type() implementation - with an additional
10644         `MonoGenericContainer *' argument.
10645         (mono_metadata_parse_array_full): Likewise.
10646         (mono_metadata_parse_signature_full): Likewise.
10647         (mono_metadata_parse_method_signature_full): Likewise.
10648         (mono_metadata_parse_mh_full): Likewise.
10649         (mono_type_create_from_typespec): Likewise.
10650         (mono_metadata_interfaces_from_typedef_full): New public method;
10651         this is similar to the other _full() methods, but we take a
10652         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10653         (mono_metadata_parse_generic_param): Take an additional
10654         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10655         from that container.
10656         (mono_metadata_generic_param_equal): New static method to compare
10657         two type parameters.
10658         (_mono_metadata_type_equal): New static method; takes an
10659         additional `gboolean signature_only' argument - if true, we don't
10660         compare the owners of generic parameters.
10661         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10662         with a TRUE argument - do a signature-only comparision.
10663
10664         * loader.c: Use the new _full() methods and pass the
10665         MonoGenericContainer to them.
10666
10667         * object-internals.h (MonoReflectionTypeBuilder): Added
10668         `MonoGenericContainer *generic_container' field.
10669         (MonoReflectionMethodBuilder): Likewise.
10670
10671 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10672
10673         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10674         case initial images of dynamic assemblies.
10675
10676         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10677
10678         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10679
10680         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10681         length of event->other array.
10682         (typebuilder_setup_events): Ditto.
10683
10684         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10685         'assembly_by_name' and add an 'assemblies' list.
10686
10687         * assembly.h assembly.c: Add a new search hook for determining whenever
10688         an assembly is already loaded. Use this instead of searching in the
10689         loaded_assemblies list.
10690
10691         * domain.c appdomain.c: Implement the new search hook so loaded 
10692         assemblies are now scoped by appdomain. Fixes #67727.
10693
10694 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10695
10696         * threads.c (mono_thread_attach): Initialize synch_lock field so
10697         mono_thread_detach works again.
10698
10699         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10700         'lib' too. Fixes #63130.
10701
10702 2004-10-06  Jackson Harper  <jackson@ximian.com>
10703
10704         * culture-info-tables.h: regenerated.
10705
10706 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10707
10708         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10709         implemented by other interfaces in the result. Fixes #65764.
10710         
10711         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10712         Handle unloadable modules without crashing.
10713
10714         * image.c (load_modules): Revert the previous patch since modules must
10715         have a fixed index inside the array.
10716         
10717         * image.c (load_modules): Don't include native modules in the modules
10718         array.
10719
10720 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10721
10722         * reflection.h: Add param_defaults field.
10723
10724         * reflection.c: Add support for parameter defaults in dynamic methods.
10725         Fixes #64595.
10726
10727         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10728         an empty string when a type has no namespace. Fixes #64230.
10729
10730 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10731
10732         * tabledefs.h: Added "internal" security actions to support non-CAS
10733         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10734         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10735
10736 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10737
10738         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10739         constructor of abstract class. Fixes #61689.
10740
10741 2004-10-04  Martin Baulig  <martin@ximian.com>
10742
10743         * class-internals.h (MonoGenericContainer): New type.
10744         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10745         `MonoGenericContainer *generic_container'.
10746         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10747         `MonoGenericContainer *generic_container'.
10748
10749         * metadata.c (mono_metadata_load_generic_params): Return a
10750         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10751         removed the `num' argument.
10752
10753 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10754
10755         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10756         for dynamic images.
10757
10758         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10759         machine fields.
10760
10761         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10762
10763         * reflection.c: Save pe_kind and machine values into the generated
10764         image file.
10765
10766         * appdomain.c: Bump corlib version number.
10767
10768         * object-internals.h: Reorganize layout of LocalBuilder.
10769
10770         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10771         New helper function.
10772
10773         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10774         created MonoType for dynamic types. Fixes #66180.
10775
10776 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10777
10778         * threadpool.c: the ares hashtable needs a critical section around it.
10779         this prevents some nasty segfaults
10780
10781 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10782
10783         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10784         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10785         bug 67324).
10786         
10787 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10788
10789         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10790         
10791 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10792
10793         * image.c: Always canonicalize image file names, to avoid loading
10794         the same assembly twice when referenced using a relative path.
10795
10796 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10797
10798         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10799
10800         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10801
10802         * marshal.c: Fix warnings.
10803
10804 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10805
10806         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10807         attempting to marshal the delegate_trampoline as the method_addr.
10808         This patch has a static hashtable of marshalled delegates so that 
10809         we can map delegate_trampoline addresses back to delegates.  This
10810         allows a delegate passed to managed code to be passed back into native
10811         code.  Fixes #67039
10812
10813 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10814
10815         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10816
10817         * reflection.c (method_encode_code): Align method headers properly.
10818         Fixes #66025.
10819
10820 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10821
10822         * marshal.c: In the runtime invoke wrapper, reset the abort
10823         exception if it is cached. This avoids the automatic rethrowal of 
10824         the exception after the catch of the wrapper. Also check for pending
10825         interruptions before calling the managed method. This is done using
10826         the new method emit_thread_force_interrupt_checkpoint, since the
10827         normal checkpoint method is ignored when running the invoke wrapper.
10828         * object.c: If the abort exception is rethrown, set the abort_exc
10829         field of the thread, so it will be rethrown aftere every catch.
10830         * threadpool.c: Only run an interruption checkpoint if what has been
10831         requested is a stop of the thread (aborts will be ignored).
10832         * threads.c: By default, a thread will now never be interrumped while
10833         running the runtime invoke wrapper (this ensures that runtime_invoke
10834         will always return to the caller if an exception pointer is provided).
10835         There is a new special method mono_thread_force_interruption_checkpoint()
10836         to force an interruption checkpoint even if running a protected
10837         wrapper, which is used by the same runtime invoke wrapper to do a check
10838         at a safe point.
10839
10840 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10841
10842         * object.c, object-internals.h: Implemented mono_release_type_locks,
10843         which releases the cctor locks held by a thread.
10844         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10845         by a thread. Added mono_thread_exit() method to be used to safely stop
10846         a thread.
10847
10848 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10849
10850         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10851         Move null check before dereference.  Avoid indexing beyond the end
10852         of the 'modules' array.
10853
10854 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10855
10856         * metadata-internals.h (MonoImage): Add module_count field.
10857         * image.c (load_modules): Set image->module_count.
10858         (mono_image_load_file_for_image): Use image->module_count.
10859         * reflection.c (mono_image_load_module): Append to image->modules array 
10860         of dynamic assembly.
10861         (mono_module_get_object): Fix loop to actually increment index.
10862         Use image->module_count.
10863         * assembly.c (mono_assembly_load_references): Use image->module_count.
10864         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10865         Likewise.
10866
10867 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10868
10869         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10870         Avoid assert on generic types.
10871
10872 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10873
10874         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10875
10876         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10877
10878         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10879         function to convert a MarshalSpec structure to its managed counterpart.
10880
10881         * reflection.c: Fix warnings.
10882         
10883         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10884         field.
10885
10886         * icall.c (mono_create_icall_signature): Fix build.
10887
10888 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10889
10890         * icall.c: Add MakePointType icall.
10891
10892         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10893         warnings.
10894
10895 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10896
10897         * threadpool.c: reuse allocated slots in the queue.
10898
10899 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10900
10901         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10902
10903         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10904
10905         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10906         previous change.
10907
10908         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10909         ThrowOnUnmappableChar.
10910
10911         * icall.c (ves_icall_Type_GetPacking): New icall.
10912
10913 2004-09-24  Martin Baulig  <martin@ximian.com>
10914
10915         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10916
10917 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10918
10919         * appdomain.c:
10920         (mono_domain_set): allow setting a domain that is being unloaded.
10921         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10922         being unloaded.
10923
10924 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10925
10926         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10927         the GetCustomAttributes icall.
10928
10929 2004-09-23  Martin Baulig  <martin@ximian.com>
10930
10931         * object-internals.h (MonoReflectionGenericParam): Replaced
10932         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10933         with `guint32 attrs'.
10934
10935 2004-09-23  Martin Baulig  <martin@ximian.com>
10936
10937         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10938
10939 2004-09-23  Martin Baulig  <martin@ximian.com>
10940
10941         * object-internals.h (GenericParameterAttributes): New enum.
10942
10943 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10944
10945         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10946         
10947         * class.c (init_events): Fill out event->other field.
10948
10949         * class.c: Fix warnings.
10950
10951         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10952
10953 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10954
10955         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10956         walk which doesn't supply the IL offset.
10957
10958 2004-09-22  Martin Baulig  <martin@ximian.com>
10959
10960         * reflection.c (mono_reflection_setup_internal_class): If we're
10961         System.ValueType, System.Object or System.Enum, set
10962         `klass->instance_size' and create the vtable.
10963         (mono_reflection_create_internal_class): If we're an enum type,
10964         get the base class from our current corlib.
10965
10966 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10967
10968         * reflection.h (MonoResolveTokenError): New type.
10969
10970         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10971         icall.
10972
10973         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10974
10975 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10976
10977         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10978         Support also calling constructors, but only for already allocated objects.
10979
10980 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10981
10982         * reflection.c (type_get_qualified_name): If the klass is null
10983         return the typename to avoid a NullRefEx.
10984         (encode_cattr_value): Get the qualified name of the boxed type,
10985         not the underlying enumtype.  Fixes #62984.
10986
10987 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10988
10989         * marshal.c: Fix problems with previous checkin.
10990
10991 2004-09-21    <vargaz@freemail.hu>
10992
10993         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10994         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10995
10996         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10997
10998 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10999
11000         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11001         should only return a type for pointers, arrays, and passbyref types.
11002         Fixes bug #63841.
11003
11004 2004-09-21  Martin Baulig  <martin@ximian.com>
11005
11006         * domain.c (mono_debugger_check_runtime_version): New public
11007         function.
11008
11009         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11010
11011 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11012
11013         * reflection.c: Added missing sort to the declarative security 
11014         attributes table. MS implementation stops seeing the attributes if the
11015         token number regress in the table (as shown by ildasm and permview).
11016
11017 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11018
11019         * object-internals.h (MonoReflectionModule): Add 'token' field.
11020         
11021         * reflection.c (mono_reflection_get_token): Add support for Module
11022         and Assembly.
11023         (mono_module_get_object): Set 'token' field.
11024         (mono_module_file_get_object): Set 'token' field.
11025
11026         * icall.c: Add new Assembly and Module icalls.
11027
11028         * appdomain.c: Bump corlib version.
11029
11030 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11031
11032         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11033         tokens of metadata objects.
11034
11035         * reflection.h reflection.c (mono_reflection_get_token): New function
11036         to obtain the token of a metadata object.
11037
11038         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11039
11040 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11041
11042         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11043         
11044         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11045
11046 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11047
11048         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11049         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11050         AssemblyBuilder to access the permissions set in the class lib.
11051         * reflection.c: Added security attributes encoding step in 
11052         mono_image_build_metadata.
11053         * tabledefs.h: Added new security actions defined in 2.0:
11054         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11055
11056 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11057
11058         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11059         macro parameter.
11060
11061 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11062  
11063         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11064           finalized. There where random SIGSEVs at program termination, when
11065           an object being finalized was trying to do a string comparison and
11066           the current culture was already finalized.
11067  
11068 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11069
11070         * threads.c: call thread_cleanup before finishing the thread if we get
11071         there.
11072
11073 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11074
11075         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11076         assemblies from the parent. Fixes #65665.
11077
11078 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11079
11080         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11081         modifiers.
11082
11083 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11084
11085         * reflection.h: add prototype for mono_get_dbnull_object
11086         * reflection.c: add prototypes for get_default_param_value_blobs 
11087         and mono_get_object_from_blob for fussier compilers
11088
11089 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11090  
11091         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11092         false deadlock checks in class initialization.
11093  
11094 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11095
11096         * image.c (mono_image_addref): Fix comment.
11097
11098         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11099         possible.
11100
11101 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11102
11103         * reflection.c (mono_param_get_objects): Modified to return
11104         ParameterInfo.DefaultValue object.
11105
11106         (get_default_param_value_blobs):
11107         (mono_get_object_from_blob):
11108         (mono_get_dbnull_object): New helper routines. 
11109
11110         * object.c (mono_get_constant_value_from_blob): New helper routine
11111         carved out from get_default_field_value ()
11112
11113         * object-internals.h (mono_get_constant_value_from_blob): Added
11114         function declaration.
11115
11116 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11117
11118         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11119         referenced assemblies. Fixes #62135.
11120
11121         * exception.h exception.c (mono_get_exception_file_not_found2): New
11122         helper function.
11123
11124 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11125
11126         * class.h class.c: Add mono_type_get_underlying_type ().
11127
11128 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11129
11130         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11131         Fix GetTypes() to support dynamically created assemblies.
11132
11133 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11134
11135         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11136         
11137         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11138         previous patch.
11139
11140         * reflection.h reflection.c loader.c: Allow dynamic construction of
11141         pinvoke methods. Fixes #65571.
11142         
11143         * reflection.c (mono_reflection_get_type): Revert previous change since
11144         it causes regressions.
11145
11146 2004-09-08  Martin Baulig  <martin@ximian.com>
11147
11148         * class.c (class_compute_field_layout): Don't call
11149         mono_class_layout_fields() for open generic instances.
11150
11151 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11152         * threads.c appdomain.c: fix typo in GC macro
11153
11154 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11155
11156         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11157         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11158
11159 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11160
11161         * image.c (mono_image_close): Applied patch from 
11162         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11163         assembly is loaded multiple times from data.
11164         
11165         * image.c (mono_image_open): Fix warning.
11166
11167 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11168
11169         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11170         once. Fixes #58334.
11171         
11172         * reflection.c (mono_reflection_create_runtime_class): Initialize
11173         klass->nested_classes. Fixes #61224.
11174
11175 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11176
11177         * threads.c: sched_yield() on exit, to allow threads to quit.
11178
11179 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11180
11181         * object.c (mono_unhandled_exception): Remove leftover debug code.
11182
11183 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11184
11185         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11186
11187 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11188
11189         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11190         
11191         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11192
11193 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11194
11195         * marshal.c (emit_marshal_array): Null terminate string arrays.
11196         
11197         * marshal.c (raise_auto_layout_exception): Fix warning.
11198
11199         * reflection.c (mono_param_get_objects): Initialize the default value
11200         with DBNull.Value, not null. Fixes #62123.
11201
11202 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11203
11204         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11205         throw an exception with a cute explanation.
11206
11207 2004-09-06  Dick Porter  <dick@ximian.com>
11208
11209         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11210         Close the new process's thread handle, as we don't use it.  The
11211         handle stays around forever otherwise.
11212
11213 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11214
11215         * object.c (arith_overflow): Fix warning.
11216
11217         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11218         calling conventions in method refs. Fixes #65352.
11219
11220         * reflection.c: Fix warnings.
11221
11222 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11223
11224         * icall.c: Add a new icall for Array.Clear
11225
11226 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11227
11228         * object.c: When allocating an array, we have to throw
11229         an overflow exception if any of the lengths are < 0.
11230
11231 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11232
11233         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11234         properly. Also move implementation of string array marshalling to 
11235         managed code. Fixes #42316.
11236
11237 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11238
11239         * assembly.c: provide more information when loading an assembly fails.
11240
11241 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11242
11243         * filewatcher.c: don't expect the development fam package to be
11244         installed.
11245
11246 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11247
11248         * marshal.c: Make a copy of the signature cookie since it will be
11249         freed by the caller.
11250         
11251         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11252
11253         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11254
11255         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11256         marshal specs.
11257
11258         * marshal.c: More refactoring.
11259         
11260         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11261         smaller functions.
11262
11263 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11264
11265         * object.c: In mono_message_invoke, fill the output parameter array after
11266           calling the managed method (it was done before the call). This fixes
11267           bug #59299.
11268
11269 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11270
11271         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11272         as well.
11273
11274 2004-09-02  Martin Baulig  <martin@ximian.com>
11275
11276         * class.c (mono_class_instance_size): Don't allow generic type
11277         definitions or open generic instances.
11278         (mono_class_array_element_size): If we're a value type, call
11279         mono_class_instance_size() on the original class.
11280
11281         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11282         handle generic instances.
11283
11284         * mono-debug-debugger.c (write_type): Handle generic instances
11285         like classes.
11286
11287 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11288
11289         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11290         the allocation request fails. Fixes #65089.
11291
11292         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11293         
11294         * object.c (mono_runtime_free_method): New function to free a dynamic
11295         method.
11296
11297         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11298         delegate trampoline.
11299
11300         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11301         with hasthis as dynamic,
11302
11303         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11304
11305         * domain.c (mono_jit_info_table_remove): New function to remove an
11306         entry from the jit info table.
11307
11308         * class-internals.h (MonoMethod): Add 'dynamic' field.
11309
11310         * loader.c: Fix warnings.
11311
11312 2004-09-01  Martin Baulig  <martin@ximian.com>
11313
11314         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11315         instead of mono_debugger_lock() because the latter one is a no-op
11316         unless running in the debugger.
11317
11318 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11319
11320         * class.c (class_compute_field_layout): Classes with auto-layout or
11321         reference fields are not blittable.
11322         
11323 2004-09-01  Dick Porter  <dick@ximian.com>
11324
11325         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11326         mono_image_get_filename() to get the assembly location.
11327
11328         * icall.c:
11329         * metadata.h: Fix compile warnings
11330
11331 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11332
11333         * class.c (class_compute_field_layout): System.Object is blittable.
11334
11335         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11336         as in/out. Fixes #59909.
11337
11338 2004-09-01  Martin Baulig  <martin@ximian.com>
11339
11340         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11341         mono_metadata_generic_inst_is_valuetype() if we're a generic
11342         instance to check whether our underlying type is a reference type.
11343
11344 2004-09-01  Martin Baulig  <martin@ximian.com>
11345
11346         * metadata.c (mono_type_size): If we're a generic instance, call
11347         mono_class_value_size() for value types.
11348
11349 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11350
11351         * marshal.c: Implement more custom marshalling functionality. Fixes
11352         #64915.
11353
11354 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11355
11356         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11357
11358 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11359
11360         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11361
11362         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11363
11364         * icall.c: Fix some warnings.
11365
11366         * threads.c (abort_appdomain_thread): Fix unref errors.
11367         (mono_thread_current): Fix THREAD_DEBUG define.
11368
11369 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11370
11371         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11372
11373         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11374
11375 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11376
11377         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11378         string arrays.
11379
11380 2004-08-28  Martin Baulig  <martin@ximian.com>
11381
11382         * metadata.c
11383         (mono_metadata_generic_inst_is_valuetype): New public function.
11384
11385         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11386         mono_metadata_generic_inst_is_valuetype() if we're a generic
11387         instance to check whether our underlying type is a valuetype.
11388
11389 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11390
11391         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11392         #63768.
11393
11394 2004-08-25  Martin Baulig  <martin@ximian.com>
11395
11396         * loader.c (mono_get_method_from_token): Abstract methods can also
11397         be generic and thus have type parameters.
11398
11399         * metadata-internals.h
11400         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11401
11402         * reflection.c (mono_image_get_generic_param_info): Don't create a
11403         metadata row, just add an entry to the `gen_params' array.
11404         (build_compressed_metadata): Sort the `gen_params' array and then
11405         actually create the metadata.
11406
11407 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11408
11409         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11410
11411 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11412
11413         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11414
11415 2004-08-24  Martin Baulig  <martin@ximian.com>
11416
11417         * class.cs (mono_class_is_subclass_of): Like an interface, a
11418         generic instance also derives from System.Object.
11419
11420 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11421
11422         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11423         custom modifiers to be in any order. Fixes #61990.
11424
11425 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11426
11427         * object.c: Register mono_object_new_fast icall.
11428         
11429         * object.c (mono_class_get_allocation_ftn): Return to calling
11430         mono_object_new_fast, since it seems faster to compute the object 
11431         size in unmanaged code than passing it as a parameter.
11432
11433         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11434
11435         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11436         this function with Boehm as the oom handler, so we don't have to check
11437         the result of GC_malloc.
11438
11439         * object.c: Remove checks for oom.
11440
11441         * object.h object.c (mono_class_get_allocation_ftn): New function to
11442         return the icall which can be used to allocate an instance of a given
11443         class. 
11444
11445         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11446
11447         * class-internals.h: Add 'enabled' field.
11448
11449 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11450
11451         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11452
11453 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11454         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11455         value 0x0010.
11456
11457 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11458
11459         * appdomain.c: use the Tls function for appdomain too,
11460         at Zoltan's request. Actually return in mono_context_get
11461
11462         * appdomain.c, profiler.c, threads.c: use __thread
11463
11464 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11465
11466         * appdomain.c threads.c: Call GC_CreateThread on windows.
11467
11468         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11469         multiple libraries since this don't work on windows.
11470
11471 2004-08-18  Martin Baulig  <martin@ximian.com>
11472
11473         * class-internals.h
11474         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11475         MonoMethodHeader.
11476
11477         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11478         MonoMethodNormal since we also need it for abstract and interface
11479         methods.
11480
11481         * reflection.c
11482         (build_compressed_metadata): Sort the GenericParam table.
11483         (mono_image_create_token): Added `gboolean create_methodspec'
11484         argument; this is false when generating a MethodImpl token.
11485         (reflection_methodbuilder_to_mono_method): Abstract and interface
11486         methods may also have generic parameters.
11487
11488 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11489
11490         * appdomain.c: thread local alloc
11491
11492 2004-08-17  Martin Baulig  <martin@ximian.com>
11493
11494         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11495
11496         * icall.c
11497         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11498         argument.
11499
11500         * class.c (mono_type_get_full_name): New public function.
11501         (mono_type_get_name): Don't include the type arguments.
11502
11503 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11504
11505         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11506         for inclusion into the mono executable.
11507
11508 2004-08-16  Martin Baulig  <martin@ximian.com>
11509
11510         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11511         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11512
11513 2004-08-14  Martin Baulig  <martin@ximian.com>
11514
11515         * class.c (dup_type): Also copy the `byref' field.
11516
11517 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11518
11519         * reflection.c (create_dynamic_mono_image): Revert the last change 
11520         since it breaks bootstrap.
11521
11522 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11523
11524         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11525
11526         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11527         not free them with g_free.
11528
11529 2004-08-11  Martin Baulig  <martin@ximian.com>
11530
11531         * reflection.c (mono_reflection_setup_internal_class): Also call
11532         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11533
11534 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11535
11536         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11537         called during default (first) AppDomain creation. Keep track of
11538         Evidence when loading assemblies.
11539
11540 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11541
11542         * opcodes.c, opcodes.h: reduce runtime relocations.
11543
11544 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11545
11546         * culture-info.h, locales.c: fixes and chages to sue the new
11547         optimized format of the locale data.
11548         * culture-info-tables.h: regenerated.
11549
11550 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11551         
11552         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11553
11554 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11555
11556         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11557         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11558         * domain-internals.h: icall declaration.
11559         * icall.c: icall registration.
11560         * object-internals.h: New fields in MonoAssembly for CAS.
11561
11562 2004-08-05  Duncan Mak  <duncan@ximian.com>
11563
11564         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11565         CEE_LDELEM_ANY.
11566
11567 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11568
11569         * reflection.c: fix to deal with object[] arrays in custom ctors
11570         (bug #62550).
11571
11572 2004-08-05  Martin Baulig  <martin@ximian.com>
11573
11574         * class.c (mono_class_array_element_size): Added support for
11575         generic instances and correctly handle "recursive" types.
11576
11577 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11578
11579         * assembly.c: Fix warnings.
11580
11581 2004-08-04  Martin Baulig  <martin@ximian.com>
11582
11583         * class.c
11584         (mono_type_get_name_recurse): Added `gboolean include_arity'
11585         argument specifying whether or not we should include the generic
11586         arity in the type name.
11587         (_mono_type_get_name): New static function.
11588         (mono_class_setup_vtable): If we're a generic instance, don't
11589         include the generic arity in the names of explicit method
11590         implementations.        
11591
11592 2004-08-03  Martin Baulig  <martin@ximian.com>
11593
11594         * class.c (mono_type_get_name_recurse): Enclose the generic type
11595         arguments in `<', '>'.
11596
11597 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11598
11599         * gc.c: make GC warning messages use the trace API, they are just
11600         noise to most of the users.
11601
11602 2004-08-03  Martin Baulig  <martin@ximian.com>
11603
11604         * debug-mono-symfile.c (read_string): Correctly read the string.
11605
11606 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11607
11608         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11609         
11610         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11611         icalls.
11612         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11613
11614 2004-07-30  Martin Baulig  <martin@ximian.com>
11615
11616         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11617         Reflect latest symbol writer changes.   
11618
11619 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11620
11621         * object.c: always create an object if null is passed
11622         to Invoke() where a valuetype is expected.
11623
11624 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11625
11626         * marshal.c (mono_marshal_init): make managed
11627         signatures match native ones better for 64bits.
11628
11629 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11630
11631         * appdomain.c: hack to build correctly the private bin path on windows.
11632         Fixes bug #61991.
11633
11634 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11635
11636         * assembly.c: Load mscorlib from the correct framework directory
11637           (mono/<version>/mscorlib.dll).
11638         * appdomain.h: Added prototypes for new functions.
11639         * internals.h: Added some prototypes.
11640         * domain.c: When initializing the runtime, get from the executable and
11641           the configuration files the runtime version that the app supports.
11642           Added support methods for reading app.exe.config. Added list of versions
11643           supported by the JIT. Added two new methods: mono_init_from_assembly,
11644           which initializes the runtime and determines the required version from
11645           the provided exe file, and mono_init_version, which initializes
11646           the runtime using the provided version.
11647         * icall.c: Get machine.config from version-specific directory.
11648         * reflection.c: When generating an image, embed the version number
11649           of the current runtime.
11650
11651 2004-07-28  Dick Porter  <dick@ximian.com>
11652
11653         * socket-io.c
11654         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11655         returned sockaddr size before creating the remote address object.
11656         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11657         61608.
11658
11659 2004-07-28  Dick Porter  <dick@ximian.com>
11660
11661         * locales.c (string_invariant_compare_char): Fix invariant char
11662         compares between upper and lower cases.  Fixes bug 61458.
11663
11664 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11665         
11666         * marshal.c: actually cache stelem.ref wrappers.
11667         
11668 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11669
11670         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11671         sections and remove the mono_cli_rva_map () function.
11672
11673 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11674
11675         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11676         by Geoff Norton (<gnorton@customerdna.com>).
11677
11678 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11679
11680         * class.c: fix class loads for pointer types (typeof(int) !=
11681         typeof(int*)).
11682
11683 2004-07-27  Martin Baulig  <martin@ximian.com>
11684
11685         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11686         reading the debugging information from an external ".mdb" file.
11687
11688 2004-07-24  Martin Baulig  <martin@ximian.com>
11689
11690         * reflection.c (mono_image_get_type_info): Only write a class
11691         layout entry if we actually have a size or a packing size.
11692
11693 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11694
11695         * reflection.c (type_get_fully_qualified_name): 
11696         insert cast to get type checking of ?: with non-gcc compilers
11697
11698 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11699
11700         * rand.c: use g_getenv for both lookups of
11701         MONO_EGD_SOCKET
11702
11703 2004-07-17  Martin Baulig  <martin@ximian.com>
11704
11705         * reflection.c (mono_reflection_bind_generic_method_parameters):
11706         Set `gmethod->reflection_info'.
11707
11708 2004-07-17  Martin Baulig  <martin@ximian.com>
11709
11710         * class.c (mono_class_create_from_typedef): Insert the newly
11711         created class into the hash table before computing the interfaces
11712         since we could be called recursively.
11713
11714 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11715
11716         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11717         function to implement stelem.ref in managed code
11718         * class-internals.h, debug-helpers.c: a new wrapper type
11719         for the above.
11720
11721 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11722
11723         * gc.c: allow GC handles to work even when no GC is compiled in.
11724         Fix part of bug #61134 (GetAddrOfPinnedObject).
11725
11726 2004-07-13  Peter Williams  <peter@newton.cx>
11727  
11728         * process.c (complete_path): Make sure we don't attempt to execute
11729         directories.
11730  
11731 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11732
11733         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11734           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11735           and will add/subtract the hour if needed
11736
11737 2004-07-12  Martin Baulig  <martin@ximian.com>
11738
11739         * reflection.c (mono_field_get_object): If we have
11740         `field->generic_info', take the attributes from
11741         `field->generic_info->generic_type'.    
11742
11743 2004-07-12  Martin Baulig  <martin@ximian.com>
11744
11745         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11746         This function must be called before initializing the runtime.
11747         (mono_debug_init_1): New function; call this after initializing
11748         the runtime, but before loading the assembly.  It tells the
11749         debugger to load corlib and the builtin types.
11750
11751         * mono-debug-debugger.c: Did some larger changes in the debugging
11752         code; support recursive class declarations, make sure we actually
11753         add all classes.
11754
11755 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11756
11757         * debug-helpers.c: undo my previous patch and fixed the real issue in
11758         ../mini/exceptions-x86.c
11759
11760 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11761
11762         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11763         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11764         called from other .cctors.
11765
11766 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11767
11768         * loader.c: Removed the mono_loader_wine_init hack now that we are
11769         doing a managed version of Windows.Forms.
11770
11771 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11772
11773         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11774         threadpool.c, threads.c: remove static data from rootset.
11775
11776 2004-07-09  Dick Porter  <dick@ximian.com>
11777
11778         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11779         Don't do any more processing if the matched length was 0.  It was
11780         increasing the size of the string before.  Fixes bug 61167.
11781
11782 2004-07-09  Dick Porter  <dick@ximian.com>
11783
11784         * socket-io.h:
11785         * socket-io.c
11786         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11787         Add support for SO_PEERCRED if its available.
11788
11789 2004-07-09  Peter Bartok <pbartok@novell.com>
11790         * loader.c: winelib.exe.so error message is now only displayed if
11791         MONO_DEBUG is set. To help us avoid questions when people are trying
11792         out the new Managed.Windows.Forms.
11793
11794 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11795
11796         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11797         for isinst and castclass wrappers.
11798
11799         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11800         to libmetadata from the JIT, so they could be used by the marshalling
11801         code and the interpreter.
11802
11803         * marshal.c: Register marshalling related JIT icalls here instead of
11804         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11805         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11806
11807         * metadata.h: Remove unneeded marshalling conversions.
11808
11809         * opcodes.c: Update for new opcodes.
11810         
11811 2004-07-08  Martin Baulig  <martin@ximian.com>
11812
11813         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11814         (mono_debug_get_domain_data): Make this function static.
11815
11816 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11817
11818         * gc.c, object.h: add nice GC handle API for embedders.
11819
11820 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11821
11822         * reflection.c: more changes for the new api
11823
11824         * object.c: When we reflect on a field w/ a constant value, it
11825         will not have a memory location, so we must access metadata. Also,
11826         allow easier reading of strings so that we can read them from
11827         the constant data.
11828
11829         * class.c (mono_class_layout_fields): no need for literal fields here.
11830
11831         * class-internals.h: api changes for const fields
11832
11833         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11834
11835 2004-07-06  Martin Baulig  <martin@ximian.com>
11836
11837         * mono-debug.h: Increment version number to 44.
11838
11839         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11840         now a gpointer, rewrote this whole method.
11841
11842         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11843         function.  Add information about the wrapper in a new "misc table".
11844
11845         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11846         for the new misc table.
11847
11848 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11849
11850         * metadata-internals.h image.c: Add a cache for helper signatures.
11851
11852         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11853
11854 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11855
11856         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11857         delegates from a delegate. Fixes #61033.
11858         
11859         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11860         marshalling of stringbuilder arrays. Fixes #59900.
11861
11862 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11863
11864         * icall.c: Add EnumBuilder:setup_enum_type icall.
11865
11866 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11867
11868         * icall.c: Added a new icall for the property version of
11869         OffsetOfStringData.
11870
11871 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11872
11873         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11874         it has a constant size across platforms.
11875
11876         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11877         stack trace.
11878
11879 2004-06-29  Martin Baulig  <martin@ximian.com>
11880
11881         * mono-debug.c (mono_debug_add_method): Protect the whole function
11882         in mono_debugger_lock(), not just parts of it.
11883
11884 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11885
11886         * reflection.c: make sure padding bytes in heaps are zeroed.
11887
11888 2004-06-24  David Waite  <mass@akuma.org>
11889
11890         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11891         image.c, loader.c, locales.c, marshal.c, metadata.c,
11892         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11893         string-icalls.c, threads.c: change to C90-style comments from C99 /
11894         C++ -style
11895
11896 2004-06-24  Dick Porter  <dick@ximian.com>
11897
11898         * threads.c
11899         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11900         return createdNew.  Fixes bug 60412.
11901
11902         * threads-types.h: 
11903         * icall.c: Add createdNew parameter to CreateMutex icall
11904
11905 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11906
11907         * reflection.c, object-internals.h: save default value in params.
11908
11909 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11910
11911         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11912         no need to build a new path combining that with the application base.
11913         Fixes bug #60442.
11914
11915 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11916
11917         * reflection.c: fixed minor standard compliance issues.
11918
11919 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11920
11921         * reflection.c: fixed issue with encoding some custom attributes
11922         (arrays in properties and fields, bug #60411).
11923
11924 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11925
11926         * reflection.c: fix start address when copying the public key token.
11927
11928 2004-06-23  Martin Baulig  <martin@ximian.com>
11929
11930         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11931         the `exc' object in a static object to put it into the GC's root set.
11932
11933 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11934
11935         * reflection.c: make mono_reflection_setup_internal_class ()
11936         callable a second time to setup a new parent class.
11937
11938 2004-06-23  Dick Porter  <dick@ximian.com>
11939
11940         * threads.c: Check for WAIT_IO_COMPLETION return values.
11941
11942 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11943
11944         * appdomain.c: Removed the g_free on the public key token. Now copy 
11945         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11946         * assembly.c: Added public key token string value when loading 
11947         assemblies. Fix bug #60439.
11948         * icall.c: Added missing informations (like public key) in 
11949         GetReferencedAssemblies. Fix #60519.
11950         * image.h: Changed definition for public key token from const char*
11951         public_tok_value to guchar public_key_token [17];
11952         * reflection.c: Updated for changes to public key token.
11953
11954 2004-06-22  Lluis Sanchez Gual
11955
11956         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11957         for the field in base classes.
11958
11959 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11960
11961         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11962         mark headers as not supported, they are installed only for use by the
11963         debugger.
11964
11965 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11966
11967         * *.c, *.h: avoid namespace pollution in public headers.
11968
11969 2004-06-21  Martin Baulig  <martin@ximian.com>
11970
11971         * exception.c (mono_get_exception_security): It's in
11972         "System.Security", not in "System".
11973
11974         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11975         the exception classes.
11976
11977 2004-06-21  Martin Baulig  <martin@ximian.com>
11978
11979         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11980         Protect the exception object from being finalized.
11981
11982 2004-06-21  Martin Baulig  <martin@ximian.com>
11983
11984         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11985         public function.
11986
11987 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11988
11989         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11990         if it was not loaded before. Fix parts of #60439.
11991
11992 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11993
11994         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11995         code that was broken since Ben's change: wrappers are now
11996         dependent on the method signature only again.
11997
11998 2004-06-21  Martin Baulig  <martin@ximian.com>
11999
12000         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12001         added interface support.
12002
12003 2004-06-21  Martin Baulig  <martin@ximian.com>
12004
12005         * class.c (mono_vtable_get_static_field_data): New public method.
12006
12007 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12008
12009         * filewatcher.c : Windows build fix to be compliant with API changes.
12010
12011 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12012
12013         * class.h, class.c: more accessors.
12014         * metadata.h, metadata.c: prepare for hiding MonoType and
12015         MonoMethodSignature: people should use the accessors from now on
12016         outside of the tree.
12017
12018 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12019
12020         * *.c, *.h: more API cleanups.
12021
12022 2004-06-18  Jackson Harper  <jackson@ximian.com>
12023
12024         * assembly.c: Trace loading assemblies.
12025         * loader.c: Trace loading native libraries.
12026         * mono-config.c: Trace loading config files.
12027         
12028 2004-06-18  Dick Porter  <dick@ximian.com>
12029
12030         * locales.c: Tell ICU the lengths of strings, it can cope with
12031         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12032
12033 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12034
12035         * image.c: swapped name/filename;
12036
12037 2004-06-18  Martin Baulig  <martin@ximian.com>
12038
12039         * mono-debug-debugger.c (write_class): Write the parent class at
12040         the end of the header.
12041
12042 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12043
12044         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12045
12046 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12047
12048         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12049         (bundle_obj): New conditional define.
12050         (BUILT_SOURCES): Remove.
12051         ($(bundle_srcs)): Make parallel-make safe.
12052         (libmonoruntime_la_LIBADD): Make unconditional.
12053         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12054         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12055
12056 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12057
12058         * culture-info-tables.h: It was inconsistent with the latest
12059           supp info files.
12060
12061 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12062
12063         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12064         be loaded.
12065
12066         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12067         with gcc 2.95.
12068
12069 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12070
12071         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12072         cleaned up public header threads.h.
12073
12074 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12075
12076         * Makefile.am, *.c, *.h: more API cleanups.
12077
12078 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12079
12080         * Makefile.am: removed monosn from compilation.
12081         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12082         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12083         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12084         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12085         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12086         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12087
12088 2004-06-15  Jackson Harper  <jackson@ximian.com>
12089
12090         * assembly.c: Make locales lower case when searching the GAC for
12091         assemblies. gacutil will always make locales lowercase when
12092         installing so this effectively makes them case insensitive.
12093         
12094 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12095
12096         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12097         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12098           parameter which allows to choose whether the wait can be interrupted or 
12099           not. Also added the method mono_monitor_enter(), which locks the monitor
12100           using an infinite wait and without allowing interruption.
12101           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12102           interrupted.
12103         * object.h: Added new fields in MonoThread. suspend_event holds the event
12104           used to susped/resume the thread. synch_lock is the lock object to use for
12105           modifying the thread state.
12106         * threads.c: Use the new synch_lock object for locking, instead of "this",
12107           which can generate deadlocks.
12108           Moved thread state change in Thread.Sleep and Thread.Join from managed
12109           to unmanaged code. This avoids a deadlock when the thread was suspended
12110           just after acquiring the thread lock.
12111           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12112           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12113           which is not fully implemented in the io-layer.
12114         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12115
12116 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12117
12118         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12119         threads-types.h: more API cleanups.
12120
12121 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12122
12123         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12124         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12125         threadpool.c, threads.c: first pass at the exported API cleanup.
12126
12127 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12128
12129         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12130
12131 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12132
12133         * icall.c: added internalGetHome.
12134
12135 2004-06-14  Dick Porter  <dick@ximian.com>
12136
12137         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12138         possible to return successfully when '.' or '..' were the only
12139         entries in a directory, but were skipped.  The MonoIOStat was not
12140         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12141         Fixes bug 59574.
12142
12143 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12144
12145         * reflection.c: make binaries run on .Net 1.1 by default.
12146
12147 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12148
12149         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12150
12151 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12152
12153         * marshal.c: keep track of struct size with explicit layout
12154         (bug #59979).
12155
12156 2004-06-12  Martin Baulig  <martin@ximian.com>
12157
12158         * mono-debug-debugger.c: Comment out a debugging g_message().
12159
12160 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12161
12162         * reflection.c, reflection.h: do not free custom attrs that are cached.
12163         * icall.c: use braces to make code clearer.
12164
12165 2004-06-11  Martin Baulig  <martin@ximian.com>
12166
12167         * class.h (MonoInflatedField): New type.
12168         (MonoClassField): Replaced `MonoType *generic_type' with
12169         `MonoInflatedField *generic_info'.
12170
12171         * icall.c
12172         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12173
12174 2004-06-11  Martin Baulig  <martin@ximian.com>
12175
12176         * reflection.c (mono_image_create_method_token): Correctly encode
12177         varargs methods.
12178
12179 2004-06-11  Martin Baulig  <martin@ximian.com>
12180
12181         * metadata.c (mono_metadata_parse_method_signature): When parsing
12182         a MethodDef which has VarArgs, also set sentinelpos if we don't
12183         have any parameters.
12184
12185 2004-06-11  Martin Baulig  <martin@ximian.com>
12186
12187         * verify.c (mono_method_verify): In CEE_CALL, use
12188         mono_method_get_signature() to get the method's signature, unless
12189         we're a PInvoke method.
12190
12191 2004-06-10  Jackson Harper  <jackson@ximian.com>
12192
12193         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12194         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12195         logical name as the supplied path is just a prefix to the gac not
12196         the direct path to it.
12197         
12198 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12199
12200         * reflection.c: make the token for a created method match
12201         the token of the MethodBuilder it was created from
12202         (IKVM requires this behaviour now).
12203
12204 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12205
12206         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12207         reflection.c, socket-io.c: leak fixes.
12208
12209 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12210
12211         * icall.c: handle sentinel pos in vararg methods in position different
12212         from 0.
12213
12214 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12215
12216         * culture-info-tables.h: freshly generated.
12217
12218 2004-06-09  Martin Baulig  <martin@ximian.com>
12219
12220         * loader.c (mono_get_method_constrained): Call `mono_class_init
12221         (constrained_class)'.   
12222
12223 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12224
12225         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12226         any methods. Fixes #59629.
12227
12228 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12229
12230         * culture-info-tables.h: reflecting locale-builder updates.
12231
12232 2004-06-08  Dick Porter  <dick@ximian.com>
12233
12234         * object.h:
12235         * locales.c: Fixed compile warnings, including a real bug in
12236         CompareInfo_internal_compare.
12237         
12238 2004-06-08  Dick Porter  <dick@ximian.com>
12239
12240         * locales.c
12241         (ves_icall_System_Globalization_CompareInfo_internal_index):
12242         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12243         Double-check the resuls of usearches, because ICU currently
12244         ignores most of the collator settings here.  Fixes bug 59720.
12245         
12246 2004-06-08  Dick Porter  <dick@ximian.com>
12247
12248         * locales.c
12249         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12250         Fix memory leak and segfault-causing typo.  No idea how this one
12251         lasted so long without being noticed.
12252
12253 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12254
12255         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12256         any methods. Fixes #59629.
12257
12258 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12259
12260         * assembly.c:
12261         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12262         own the critical section before). Removed dead code (that's done
12263         in the preload hook).
12264
12265         (mono_assembly_load_with_partial_name): call the preload hook.
12266
12267 2004-06-08  Martin Baulig  <martin@ximian.com>
12268
12269         * metadata.c (mono_metadata_signature_alloc): Default
12270         `sentinelpos' to -1.
12271
12272         * reflection.c (mono_image_get_array_token): Likewise.
12273
12274 2004-06-08  Martin Baulig  <martin@ximian.com>
12275
12276         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12277
12278         * metadata.c (mono_metadata_parse_method_signature): When parsing
12279         a MethodDef which has VarArgs, set sentinelpos.
12280
12281         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12282         `gint16' since we're using -1 for non-varargs methods.
12283
12284         * reflection.c
12285         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12286         (method_encode_signature): Added varargs support.
12287         (method_builder_encode_signature): Likewise.
12288         (mono_image_get_varargs_method_token): New static method.
12289         (mono_image_create_method_token): New public method; this is
12290         called via an icall instead of mono_image_create_token() when
12291         calling a varargs method.       
12292
12293 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12294
12295         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12296
12297 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12298
12299         * culture-info-tables.h : Reflecting the latest locale-builder that
12300           fixed empty array representation ({} to {0}).
12301
12302 2004-06-07  Jackson Harper  <jackson@ximian.com>
12303
12304         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12305         looking up extra gac paths. This allows MONO_GAC_PATH to act
12306         exactly like a prefix.
12307         
12308 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12309
12310         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12311         type name before modifying it. Fixes #59405.
12312
12313 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12314
12315         * culture-info.h: added fields for "all datetime patterns".
12316         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12317           _construct_datetime_format ()): fill xxx_patterns fields.
12318         * object.h: added fields for "all datetime patterns" to
12319           MonoDateTimeFormatInfo.
12320         * culture-info-tables.h: reflecting locale-builder updates.
12321
12322 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12323
12324         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12325         the event has no add and remove methods. Fixes #59629.
12326
12327 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12328
12329         * object.c: Fixed possible integer overflow when allocating large
12330         strings.
12331
12332 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12333
12334         * culture-info-tables.h: reflecting locale-builder updates.
12335
12336 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12337
12338         * culture-info-tables.h: reflecting locale-builder updates.
12339
12340 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12341
12342         * culture-info-tables.h: reflecting locale-builder updates.
12343
12344 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12345
12346         * threads.c: Made Thread.Sleep abortable.
12347
12348 2004-06-02  Martin Baulig  <martin@ximian.com>
12349
12350         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12351
12352         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12353
12354 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12355
12356         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12357
12358 2004-05-30  Jackson Harper  <jackson@ximian.com>
12359
12360         * reflection.c: Do not hardcode assembly versions or public key
12361         tokens anymore. All of this except the corlib section was dead
12362         code anyways.
12363         
12364 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12365
12366         * object.c (mono_runtime_invoke_array): Automatically create boxed
12367         objects for byref valuetypes if needed. Fixes #59300.
12368         
12369         * object.c (mono_method_return_message_restore): Handle 
12370         MONO_TYPE_OBJECT as well.
12371
12372 2004-05-28  Jackson Harper  <jackson@ximian.com>
12373
12374         * reflection.c: The modified type encoding was causing build
12375         problems. Reverted for now.
12376         
12377 2004-05-28  Jackson Harper  <jackson@ximian.com>
12378
12379         * reflection.c/h: Take an assembly ref so that we dont create
12380         fully qualified names when encoding types in the same assembly as
12381         the custom attribute being emitted.
12382         * appdomain.c: Increment version number.
12383         
12384 2004-05-26  Duncan Mak  <duncan@ximian.com>
12385
12386         * icall.c
12387         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12388         Set the full version number (major, minor, build, revision).
12389
12390 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12391
12392         * marshal.c (emit_struct_conv): increment src/dst after blit
12393         (mono_marshal_get_managed_wrapper,
12394         mono_marshal_get_native_wrapper): make sure we have marshalling
12395         info before marshalling params (info computation affects
12396         blittable)
12397
12398         * class.c (class_compute_field_layout): correctly deal with
12399         blittable
12400         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12401         value types (as per what windows dows by default)
12402         (mono_class_setup_mono_type): System.ValueType is blittable
12403         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12404         blittable
12405
12406         * marshal.c (mono_marshal_load_type_info): flag types  as
12407         non-blittable if the native layout doesn't match the managed
12408         layout
12409
12410 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12411
12412         * appdomain.c: don't add stuff in the private search path that is
12413         above the application base. If application base is not set, there's
12414         no private search path.
12415
12416 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12417
12418         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12419         byref struct arguments in native->managed marshalling.
12420
12421 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12422
12423         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12424         cache methods using signature (special case for methods
12425         that are value type or string class)
12426         
12427         * image.c (mono_image_close): clean up allocated GSList's
12428         in runtime_invoke_cache.
12429
12430 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12431
12432         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12433         there's no MONO_CFG_DIR environment variable defined.
12434
12435 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12436
12437         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12438
12439 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12440
12441         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12442           is interrumped.
12443         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12444           before waiting for it, and call CloseHandle after the wait to unref it.
12445           This will make sure that handles are not disposed too early.
12446
12447 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12448
12449         * appdomain.c:
12450         * appdomain.h:
12451         * icall.c: removed
12452         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12453         needed now.
12454
12455         * object.c: se the application_base only for the domain that runs
12456         Main. Fixes bug #59216,
12457
12458 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12459
12460         * appdomain.c:
12461         * object.c: only the domain in which Main is run have
12462         SetupInformation.ConfigurationFile set, so moved a few lines from
12463         appdomain.c to object.c.
12464
12465 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12466
12467         * appdomain.c: we tried to load [name].(dll|exe), but according
12468         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12469         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12470         There's a test case attached to bug #58922.
12471
12472 2004-05-27  Dick Porter  <dick@ximian.com>
12473
12474         * icall.c:
12475         * file-io.c: Implemented icalls for locking and unlocking regions
12476         in a file.
12477         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12478         FALSE on error (fixes both compiler warning and real bug.)
12479
12480 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12481
12482         * culture-info-tables.h: reflecting locale-builder updates.
12483
12484           (Added missing ChangeLog entry for 05/26)
12485
12486 2004-05-27  Jackson Harper  <jackson@ximian.com>
12487
12488         * locales.c: Fix some cut and paste errors.
12489         
12490 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12491
12492         * mono-config.c: set the correct path for config. directory on windows.
12493
12494 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12495
12496         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12497           on win32.
12498
12499 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12500
12501         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12502         from pinvoke functions.
12503         
12504         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12505
12506 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12507
12508         * culture-info-tables.h: reflecting locale-builder updates.
12509
12510 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12511
12512         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12513         #59086.
12514
12515 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12516
12517         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12518         * icall.c: Modified icalls for RNG.
12519         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12520         Windows (CryptoAPI).
12521
12522 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12523
12524         * locales.c: Fix build.
12525
12526 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12527
12528         * culture-info-tables.h: reflecting locale-builder updates.
12529
12530 2004-05-25  Jackson Harper  <jackson@ximian.com>
12531
12532         * locales.c: When creating the current culture use the $LANGs
12533         specific culture. So DateTimeFormat and NumberFormat entries are created.
12534         
12535 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12536
12537         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12538         a char array as parameter.
12539
12540 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12541
12542         * image.c: In mono_image_open(), always use an absolute path name to
12543           look for already loaded images.
12544
12545 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12546
12547         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12548         missing in the windows build (like older cygwin include files).
12549
12550 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12551
12552         * icall.c: Fixed check for possible integer overflow in Buffer_
12553         BlockCopy icall. Replaced comments style // by /* */.
12554
12555 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12556
12557         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12558         
12559         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12560         check after MONO_VTADDR. Fixes pinvoke2.exe.
12561
12562         * marshal.h marshal.c metadata.h: Add beginnings of support for
12563         ftnptr -> delegate marshalling.
12564
12565 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12566
12567         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12568         * threads.c: Fix warnings.
12569
12570 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12571
12572         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12573         * icall.c: Registered icalls for Suspend and Resume.
12574         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12575           Thread.Abort.
12576         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12577         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12578         * process.c: Use WaitForSingleObjectEx.
12579         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12580           checkpoints.
12581         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12582           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12583           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12584           background threads. Added basic support for Abort in Windows.
12585           Start new threads using a managed delegate invoke wrapper. This wrapper
12586           has an interruption checkpoint that is needed since an interruption
12587           can be requested before the thread leaves the unmanaged code that starts 
12588           the thread.
12589         * marshal.c: Added interruption checkpoint after every native call, and
12590           also before managed calls for wrappers called from unmanaged code to
12591           go into managed code.
12592         * object.h: Added new field in MonoThread to keep track of interruption
12593           requests.
12594
12595 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12596
12597         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12598         calls.
12599
12600 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12601
12602         * appdomain.c:
12603         * assembly.c:
12604         * gc.c:
12605         * locales.c:
12606         * mono-config.c:
12607         * rand.c: getenv -> g_getenv (windows!)
12608
12609         * process.c: complete_path is also used on non-windows platforms.
12610
12611 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12612
12613         * icall.c: new signature for Process_Start.
12614
12615         * process.[ch]: new signature for Process_Start. If we're on windows
12616         and UseShellExecute is false, we have to search for the program by
12617         ourselves if we don't get a full path.
12618
12619 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12620
12621         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12622         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12623
12624 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12625
12626         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12627         Fixes bug #58373.
12628
12629 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12630
12631         * process.c: use double quotes to quote program name and arguments on
12632         windows. Fixes bug #58575.
12633
12634 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12635
12636         * file-io.c: don't return "." and ".." when using windows Find*File.
12637
12638 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12639
12640         * marshal.c: Don't pass wrappers to message init because method 
12641         addressed used to lookup metadata. part of remoting[2|3] fix.
12642
12643 2004-05-15  Jackson Harper  <jackson@ximian.com>
12644
12645         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12646         path is essentially the same as MONO_PATH except that it points to
12647         GACs instead of lib directories.
12648         * loader.h: The user gac is gone so we dont need function to
12649         enable/disable it.
12650         * mono-config.c: user gac option is now gone.
12651         
12652 2004-05-15  Jackson Harper  <jackson@ximian.com>
12653
12654         * culture-info.h: Make defines more consistent, add calendar data
12655         to the culture info table.
12656         * culture-info-tables.h: Add basic calendar data. Basically
12657         everyone gets default gregorian until all the data is
12658         updated.
12659         * locales.c: Use the new consistent defines. Set calendar data for
12660         culture info objects.
12661         * object.h: add a field for calendar data to CultureInfo
12662         
12663 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12664
12665         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12666         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12667         a signature.
12668         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12669         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12670         an extra param that is the pointer of the method to invoke. The IL for
12671         the invoke method is no longer specific to the method, but to the
12672         signature of the method. Thus, we can share the same code for multiple
12673         methods. This reduces the number of methods that have to be compiled.
12674
12675 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12676
12677         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12678
12679         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12680
12681         * icall.c: Optimize Buffer.BlockCopy.
12682
12683 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12684
12685         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12686         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12687         quote). Changed them to "MMMM yyyy".
12688
12689 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12690
12691         * rand.c
12692         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12693
12694 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12695
12696         * reflection.h: Updated after changes to managed structures.
12697
12698         * appdomain.c: Bump corlib version.
12699
12700 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12701
12702         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12703         windows.
12704
12705 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12706
12707         * Makefile.am: link to ../os/libmonoos.la on windows.
12708
12709         * assembly.c:
12710                 -If MONO_DEBUG, warn about non-existing directories in
12711                 MONO_PATH.
12712                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12713                 compile time variable.
12714                 -Removed init_default_path and call mono_set_rootdir from
12715                 libmonoos.a instead (windows only).
12716
12717         * assembly.h: declare mono_assembly_getrootdir().
12718
12719         * domain.c:
12720         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12721
12722         * loader.c: s/getenv/g_getenv/
12723
12724 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12725
12726         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12727
12728         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12729
12730         * metadata.h: Add new marshalling conversions.
12731
12732         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12733         function.
12734
12735         * reflection.c (mono_reflection_get_type): Lookup the type in all
12736         modules of a multi-module assembly. Fixes #58291.
12737
12738 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12739
12740         * threads.c: Before aborting a background, set the StopRequested
12741         state.  This avoids throwing the Abort exception.
12742         In mono_thread_manage, don't continue with the shutdown until all
12743         aborted threads have actually stopped.
12744
12745 2004-05-10  Jackson Harper  <jackson@ximian.com>
12746
12747         * locales.c: Remove the modifier from culture names.
12748         
12749 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12750
12751         * Makefile.am: monosn is not installed any more. It has been deprecated
12752         in favor of sn.
12753
12754 2004-05-07  Jackson Harper  <jackson@ximian.com>
12755
12756         * locales.c
12757         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12758         Fix array construction, add bailout if the length is 0.
12759
12760 2004-05-07  Dick Porter  <dick@ximian.com>
12761
12762         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12763         machine doesn't have a DNS entry.  Patch by Urs Muff
12764         (umuff@quark.com), fixes bug 57928.
12765
12766 2004-05-06  Jackson Harper  <jackson@ximian.com>
12767
12768         * reflection.c: Handle null PublicTokens properly. alloc mem for
12769         assembly names culture so we dont crash when freeing it.
12770         
12771 2004-05-06  Jackson Harper  <jackson@ximian.com>
12772
12773         * assembly.c: Check the usergac when loading with partial names.
12774         
12775 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12776
12777         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12778         does nothing for now (not required for Linux/Windows) but the class
12779         library can call it (and a newer or modified runtime could need it).
12780         * icall.c: Registred icall.
12781
12782 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12783
12784         * loader.c: prints a message on module loading error we set MONO_DEBUG
12785         environment variable.
12786
12787 2004-05-05  Jackson Harper  <jackson@ximian.com>
12788
12789         * appdomain.c: Handle PublicKeyToken=null properly.
12790         
12791 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12792
12793         * environment.c|h: Added icall ves_icall_System_Environment_
12794         GetOSVersionString to get the current OS version as a string.
12795         * icall.c: Registred icall.
12796
12797 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12798
12799         * object.c: in mono_object_get_virtual_method(), take into account that
12800         non-virtual methods don't have a slot in the vtable. Check needed when
12801         the object is a proxy.
12802
12803 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12804
12805         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12806         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12807
12808         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12809
12810         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12811         passed when a valuetype is expected.
12812
12813         * object.c (mono_unhandled_exception): Only set the exit code if the
12814         exception happens in the main thread. Fixes thread5.exe.
12815
12816         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12817         invalid names. Fixes #58047.
12818
12819 2004-05-03  Jackson Harper  <jackson@ximian.com>
12820
12821         * assembly.c: This line was committed accidently and is unneeded.
12822         
12823 2004-05-03  Jackson Harper  <jackson@ximian.com>
12824
12825         * icall.c: Add new icall for Assembly::LoadWithPartialName
12826         * assembly.c/.h: new function that probes the GAC to load partial
12827         assembly names by Paolo Molaro.
12828         
12829 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12830
12831         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12832         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12833         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12834         full type name.
12835
12836 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12837
12838         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12839         * reflection.c: fix bug when parsing a full type name and Version is not
12840         the last thing in the string.
12841
12842 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12843
12844         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12845         crashes when it is freed.
12846
12847 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12848
12849         * assembly.c: print the compat warning to stderr.
12850
12851 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12852
12853         * assembly.c (mono_assembly_load_references): Add a compatibility
12854         hack to run old applications that might be still referencing the
12855         3300-based assemblies, only do this for System.xxx.
12856
12857 2004-05-01  Jackson Harper  <jackson@ximian.com>
12858
12859         * appdomain.c: If the culture is neutral we set it to "".
12860         
12861 2004-04-29  Jackson Harper  <jackson@ximian.com>
12862
12863         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12864
12865 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12866  
12867         * string-icalls.c: added low overhead function for copying chars
12868         * icall.c: added needed icall for the above function
12869  
12870 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12871
12872         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12873         Environment.GetLogicalDrives.
12874
12875 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12876
12877         * rand.c: try and talk to egd or prngd
12878         for random bytes if opening devices fail.
12879
12880 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12881
12882         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12883         alignment for the type using the native alignment of its members 
12884         instead of using klass->min_align.
12885
12886         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12887
12888 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12889
12890         * file-io.c:
12891         * socket-io.c: added check for sys/aio.h.
12892
12893 2004-04-28  Dick Porter  <dick@ximian.com>
12894
12895         * threads.c: Don't abort a thread thats already aborting, when
12896         terminating everything.
12897
12898 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12899
12900         * icall.c: added 2 new async calls for Socket.
12901
12902         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12903         IO on *nix systems.
12904
12905         * threadpool.c: removed unused variable.
12906
12907 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12908
12909         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12910
12911 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12912
12913         * locales.c: put back string_invariant_tolower () and
12914         string_invariant_toupper ().
12915
12916 2004-04-26 David Waite <mass@akuma.org>
12917
12918         * file-io.h:
12919         * socket-io.h:
12920         * threads.h:
12921         * unicode.h: remove comma from end of enumeration declarations
12922
12923 2004-04-26 David Waite <mass@akuma.org>
12924
12925         * debug-mono-symfile.h:
12926         * decimal.c:
12927         * mono_debug.h:
12928         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12929
12930
12931 2004-04-26  Jackson Harper  <jackson@ximian.com>
12932
12933         * appdomain.c: Increment version number.
12934         
12935 2004-04-26  Jackson Harper  <jackson@ximian.com>
12936
12937         * appdomain.c: Set assembly references public token value when
12938         PublicKeyToken is specified, not the hash_value. Free public token
12939         values when free assembly name data. Previously the public key
12940         token was hex decoded, however we are using hex encoded public key
12941         tokens, so this is not neccasary.
12942         * assembly.c: Lookup assemblies in the gac if their public token
12943         value is set. Add function to allow enabling user gac
12944         lookups. Specify whether or not the assembly was loaded from the
12945         GAC. Compare full assembly names when checking the cache for
12946         assemblies (Temporarily disabled see comment in code). Remove
12947         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12948         specifies trace-loader they get extra info to stdout on the
12949         loading of assemblies.
12950         * image.h: Add a field for an assembly references public token
12951         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12952         whether an assembly has been loaded from the GAC.
12953         * image.c: Remove a corlib -> mscorlib name mapping.
12954         * loader.h: Add function to enable/disable the user gac.
12955         * mono-config.c: Check if the usergac is enabled in the config
12956         file.
12957         * icall.c: New icall to determine whether or not an assembly has
12958         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12959         * tabldefs.h: Add constant for assemblyref flag that specifies a
12960         full public key is used instead of a public token.
12961         * reflection.c: Remove mscorlib -> corlib mappings. Set
12962         PublicTokenValue instead of hash value. This value is a hex
12963         string so it does not need to be expanded.
12964
12965 2004-04-26  Martin Baulig  <martin@ximian.com>
12966
12967         * mono-debug-debugger.c (mono_debugger_initialize): Set
12968         `mono_debugger_initialized' before calling mono_debug_lock().
12969
12970 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12971
12972         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12973           InternalToUpper/InternalToLower.
12974         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12975           removed invariant culture shortcut.  This is now done in managed code.
12976         * locales.c: (string_invariant_toupper/tolower) removed.
12977
12978 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12979
12980         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12981         Added Poll internal call.
12982
12983         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12984         call for Poll. Select was too heavy for polling a single socket.
12985
12986         * threadpool.[ch]: added mono_threadpool_cleanup.
12987         * threads.c: use it. Don't use Thread_Abort on windows.
12988
12989 2004-04-23  Martin Baulig  <martin@ximian.com>
12990
12991         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12992
12993 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12994
12995         * icall.c: Registred new icalls for key pair protection and added an
12996         icall for Environment.GetFolderPath on Windows.
12997         * security.c|h: Added new icalls for key pair protection.
12998
12999 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13000
13001         * socket-io.c: don't display the non-supported family warning for known
13002         families. Now this is not displayed on windows when checking support
13003         for IPv4/IPv6.
13004
13005 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13006
13007         * class.c: don't display the layout warning for static fields.
13008
13009 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13010
13011         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13012         * locales.c, locales.h: Added new icalls for culture-specific
13013         Char.ToLower and Char.ToUpper.
13014
13015 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13016
13017         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13018         by David Waite.
13019
13020 2004-04-20  Martin Baulig  <martin@ximian.com>
13021
13022         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13023         of the type name before passing it to mono_reflection_type_from_name().
13024
13025 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13026
13027         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13028         encodings here. Fixes #56965.
13029
13030 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13031
13032         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13033         fix test on strstr result not that I can see anything that
13034         relies on the result.
13035
13036 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13037
13038         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13039         Fixes #57081.
13040
13041         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13042
13043         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13044         function to determine which marshalling to use for strings. Fixes
13045         #56965.
13046
13047         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13048
13049         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13050
13051 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13052
13053         * icall.c: #include mono-config.h
13054
13055 2004-04-15  Jackson Harper  <jackson@ximian.com>
13056
13057         * culture-info-tables.h: Fix date formats for en-US culture.
13058         
13059 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13060
13061         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13062         ThreadPool.SetMinThreads.
13063         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13064         ThreadPool.SetMinThreads.
13065
13066 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13067
13068         * mono-config.c: also load the .config file in the directory
13069         where the assembly was found.
13070
13071 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13072
13073         * assembly.c: load per-assembly config files.
13074         * icall.c: decrapified code to get the config dir and moved to
13075         mono-config.c.
13076         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13077         per-assembly config files. When doing a dll map lookup give precedence
13078         to the per-assembly data.
13079
13080 2004-04-14  Martin Baulig  <martin@ximian.com>
13081
13082         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13083         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13084         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13085
13086         * mono-debugger-debugger.c: While the debugger is locked, remember
13087         whether the symbol tables have changes and send one single
13088         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13089
13090 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13091
13092         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13093
13094         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13095         function.
13096
13097         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13098         account when marshalling string arrays. Fixes #56965.
13099
13100 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13101
13102         * icall.c: Add new icalls mapping for security.
13103         * security.c|h: Add internal calls for WindowsIdentity,
13104         WindowsImpersonationContext and WindowsPrincipal.
13105
13106 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13107
13108         * class.c: Added comment to ensure the System.MonoDummy class
13109         is removed when no longer necessary
13110
13111 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13112
13113         * appdomain.c: Pass arguments to the bootstraping exceptions to
13114         minimize JITed methods at boot
13115
13116         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13117         second string to be null.
13118
13119         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13120         Change the protocol to minimize the JIT methods at startup.  Now
13121         it Returns the internal codepage, if the value of "int_code_page"
13122         is 1 at entry, and we can not compute a suitable code page
13123         number, returns the code page as a string.
13124
13125 2004-04-13  Jackson Harper  <jackson@ximian.com>
13126
13127         * culture-info-tables.h: Fix number of decimal digits for all
13128         english locales.
13129
13130 2004-04-13  Jackson Harper  <jackson@ximian.com>
13131
13132         * icall.c: Clairfy out of sync error message. It is not always
13133         your corlib that is out of sync.
13134
13135 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13136
13137         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13138         properties when only the set accessor is overriden. Fixes #55874.
13139
13140 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13141
13142         * assembly.c (mono_assembly_load_references): Make this thread safe.
13143         Fixes #56327.
13144
13145 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13146
13147         * monosn.c: Add missing initialization calls.
13148
13149 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13150
13151         * locales.c:
13152         ves_icall_System_Globalization_CultureInfo_construct_number_format
13153         Fix g_assert so it compiles on fussier compilers re int/ptr
13154         mismatch
13155
13156 2004-04-08  Dick Porter  <dick@ximian.com>
13157
13158         * socket-io.h:
13159         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13160         53992.  Also rearrange the code so that the internal calls return
13161         an error value and exceptions are thrown from managed code.
13162
13163         * icall.c: Add type info to the socket icalls.
13164
13165 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13166
13167         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13168         owes me a beer.
13169
13170 2004-04-07  Martin Baulig  <martin@ximian.com>
13171
13172         * class.c (mono_class_from_generic_parameter): Don't default
13173         `klass->parent' to `mono_defaults.object_type'.
13174
13175 2004-04-07  Martin Baulig  <martin@ximian.com>
13176
13177         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13178         `param->pklass->reflection_info'.       
13179
13180 2004-04-07  Jackson Harper  <jackson@ximian.com>
13181
13182         * culture-info-tables.h: Fix date separator symbol.
13183         
13184 2004-04-07  Martin Baulig  <martin@ximian.com>
13185
13186         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13187         from System.Type to System.MonoType.
13188
13189 2004-04-07  Martin Baulig  <martin@ximian.com>
13190
13191         * reflection.h
13192         (MonoReflectionGenericParam): Added `has_reference_type' and
13193         `has_value_type' fields.
13194
13195         * reflection.c (mono_image_get_generic_param_info): Encode the
13196         correct flags if we have the `class' or `struct' constraint.
13197
13198 2004-04-07  Martin Baulig  <martin@ximian.com>
13199
13200         * reflection.h
13201         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13202
13203 2004-04-07  Jackson Harper  <jackson@ximian.com>
13204
13205         * appdomain.c: Revert extra patches, just wanted to bump the
13206         version number.
13207         
13208 2004-04-07  Jackson Harper  <jackson@ximian.com>
13209
13210         * Makefile.am: Add culture-info private headers.
13211         * icall.c: Add new icalls for contructing locales.
13212         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13213         * locales.h: Declare new culture info construction methods.
13214         * object.h: Add new fields used to avoid the CultureMap to
13215         MonoCultureInfo.
13216         * culture-info.h: Definition of structs used in the culture info
13217         tables.
13218         * culture-info-tables.h: Autogenerated tables that contain culture
13219         info data. This file was generated with the locale-builder tool.
13220         * appdomain.c: Incement corlib version number.
13221         
13222 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13223
13224         * appdomain.c: (mono_runtime_init) move mono_thread_init
13225         to before mono_object_new calls so critical sections
13226         are initialized before use.
13227
13228 2004-04-07  Martin Baulig  <martin@ximian.com>
13229
13230         * icall.c
13231         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13232         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13233         (ves_icall_MonoGenericParam_initialize): Removed.
13234         (monogenericparam_icalls): Removed.
13235         (generictypeparambuilder_icalls): Added new table for
13236         System.Reflection.Emit.GenericTypeParameterBuilder.
13237
13238         * reflection.c
13239         (mono_reflection_define_generic_parameter): Removed.
13240         (mono_reflection_initialize_generic_parameter): This is now called
13241         from GenericTypeParameterBuilder's .ctor.
13242
13243 2004-04-06  Martin Baulig  <martin@ximian.com>
13244
13245         * class.c (mono_class_init): Don't inflate nested classes in a
13246         generic instance.
13247         (mono_type_get_name_recurse): Include the generic arguments for
13248         generic instances and generic type declarations.
13249         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13250         (_mono_class_get_instantiation_name): Removed.
13251         (mono_class_create_generic): Always use `gklass->name' as our name.
13252
13253         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13254
13255         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13256         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13257         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13258         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13259         closed generic methods here.
13260
13261         * reflection.c
13262         (mono_reflection_generic_inst_get_nested_types): Removed.
13263         (inflate_mono_method): Copy the generic parameters from the
13264         MonoMethodHeader into out MonoGenericMethod.
13265
13266 2004-04-06  Martin Baulig  <martin@ximian.com>
13267
13268         * row-indexes.h
13269         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13270
13271         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13272
13273         * reflection.c (build_compressed_metadata): If we have any entries
13274         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13275         set the header version to 1.1.
13276
13277 2004-04-06  Martin Baulig  <martin@ximian.com>
13278
13279         * class.c (mono_class_init): If we're a generic instance,
13280         initialize our nested classes, too.
13281         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13282         suffix. 
13283
13284 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13285
13286         * process.c: quote the argument passed to the shell on windows.
13287
13288 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13289
13290         * threads.c (mono_alloc_special_static_data): Allow this to be
13291         called during startup.
13292
13293 2004-04-02  Martin Baulig  <martin@ximian.com>
13294
13295         * icall.c
13296         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13297
13298 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13299
13300         * icall.c: Fix build.
13301
13302 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13303
13304         * Makefile.am: Added security.c|h.
13305         * icall.c: Added icall for get_UserName;
13306         * security.c: New file for security related icalls. Added function
13307         get_UserName for System.Environment (fix #56144).
13308         * security.h: New. Header file for security.c
13309
13310 2004-04-02  Dick Porter  <dick@ximian.com>
13311
13312         * icall.c: Deleted the icalls that were obsoleted some time ago
13313         by the ICU string code, and which were mixed into the icall
13314         rearranging.  Fixes bug 55969.
13315
13316         * string-icalls.h: 
13317         * string-icalls.c: Deleted the code that those icalls reference.
13318
13319 2004-04-01  Martin Baulig  <martin@ximian.com>
13320
13321         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13322
13323         * class.c (mono_class_from_generic_parameter): Don't set 
13324         TYPE_ATTRIBUTE_INTERFACE.
13325         (my_mono_class_from_generic_parameter): Likewise.
13326
13327 2004-04-01  Martin Baulig  <martin@ximian.com>
13328
13329         * loader.c (find_method): Added an optional `MonoClass *ic'
13330         argument to search in a specific interface.
13331         (mono_get_method_constrained): New public function.
13332
13333 2004-04-01  Martin Baulig  <martin@ximian.com>
13334
13335         * reflection.c (mono_image_get_generic_field_token): Use the
13336         `handleref' cache here.
13337
13338 2004-04-01  Martin Baulig  <martin@ximian.com>
13339
13340         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13341
13342         * reflection.c (create_generic_typespec): Use the `typespec' hash
13343         here, not the `typeref' one.    
13344
13345 2004-04-01  Martin Baulig  <martin@ximian.com>
13346
13347         * class.c (mono_class_inflate_generic_type): Moved the
13348         functionality into a new static inflate_generic_type() which
13349         returns NULL if it didn't do anything.  Only increment the
13350         `mono_stats.inflated_type_count' if we actually inflated
13351         something.
13352         (mono_class_get_full): Check the classes type to see whether we
13353         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13354
13355 2004-04-01  Jackson Harper  <jackson@ximian.com>
13356
13357         * reflection.c: Set culture for assembly references.
13358         
13359 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13360
13361         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13362
13363 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13364
13365         * assembly.c:
13366         (do_mono_assembly_open): the critical section also covers
13367         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13368
13369 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13370
13371         * threads.c:
13372         (mono_manage_threads): abort the background threads when finishing.
13373         Fixes bug #47232.
13374
13375 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13376
13377         * gc.c: only close the done_event handle if there was no timeout.
13378         C-ified comments.
13379
13380 2004-03-30  Martin Baulig  <martin@ximian.com>
13381
13382         * icall.c (icall_entries): It's called "System.Activator", not
13383         "System.Activation".    
13384
13385 2004-03-30  Martin Baulig  <martin@ximian.com>
13386
13387         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13388         (mono_class_create_from_typespec): Likewise.
13389
13390 2004-03-30  Martin Baulig  <martin@ximian.com>
13391
13392         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13393         `has_ctor_constraint' and `initialized'.
13394
13395 2004-03-30  Martin Baulig  <martin@ximian.com>
13396
13397         * reflection.c (encode_new_constraint): New static function to add
13398         the constructor constraint attribute to a type parameter.
13399         (encode_constraints): Call encode_new_constraint() if necessary.
13400
13401         * reflection.h
13402         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13403
13404         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13405         
13406 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13407
13408         * reflection.c, icall.c: add support for pinning variables. 
13409
13410 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13411
13412         * marshal.c (mono_marshal_get_managed_wrapper):
13413         init bool local with zero rather than null.
13414
13415 2004-03-29  Martin Baulig  <martin@ximian.com>
13416
13417         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13418         the "official" behavior here.
13419         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13420
13421 2004-03-29  Martin Baulig  <martin@ximian.com>
13422
13423         * icall.c: Reflect latest API changes.
13424
13425 2004-03-29  Martin Baulig  <martin@ximian.com>
13426
13427         * loader.c (mono_get_method_from_token): Also call
13428         mono_metadata_load_generic_params () for abstract and interface
13429         methods; replace the type arguments in the method signature with
13430         the ones which are loaded from the metadata.
13431
13432 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13433
13434         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13435         of the lock is not the current thread. MS.NET don't do it, in spite of
13436         what the documentation says. See bug #56157.
13437
13438 2004-03-28  Martin Baulig  <martin@ximian.com>
13439
13440         * class.c (mono_class_init): Don't call init_properties() and
13441         init_events() for generic instances; set `prop->parent' when
13442         inflating properties.
13443
13444         * reflection.c (mono_generic_inst_get_object): Call
13445         `mono_class_init (ginst->klass)'.
13446         (mono_type_get_object): Only create a MonoGenericInst if your
13447         generic type is a TypeBuilder.
13448         (do_mono_reflection_bind_generic_parameters): Only set
13449         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13450
13451 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13452
13453         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13454         Fixes #56091.
13455
13456 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13457
13458         * icall.c: added Kill_internal icall.
13459         * process.[ch]: added Kill_internal icall.
13460
13461 2004-03-25  Martin Baulig  <martin@ximian.com>
13462
13463         * class.h (MonoStats): Added `generic_instance_count',
13464         `inflated_method_count', `inflated_type_count' and
13465         `generics_metadata_size'.       
13466
13467 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13468
13469         * reflection.c: no warnings now.
13470
13471 2004-03-25  Martin Baulig  <martin@ximian.com>
13472
13473         * class.c (mono_class_get_full): New public function; does a
13474         mono_class_get(), but also takes a `MonoGenericContext *'.
13475
13476         * loader.c (mono_field_from_memberref): Renamed to
13477         `field_from_memberref', made static and added `MonoGenericContext *'
13478         argument.
13479         (mono_field_from_token): Added `MonoGenericInst *' argument.
13480         (method_from_memberef): Likewise.
13481         (mono_get_method_from_token): Likewise.
13482         (mono_get_method_full): New public function; does a
13483         mono_get_method(), but also takes a `MonoGenericContext *'.
13484
13485         * verify.c (mono_method_verify): Get the method's generic context
13486         and pass it to mono_field_from_token(), mono_get_method_full() and
13487         mono_class_get_full().
13488
13489 2004-03-25  Martin Baulig  <martin@ximian.com>
13490
13491         * class.c (mono_class_inflate_generic_type): Take a
13492         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13493         `MonoGenericMethod *'.
13494
13495 2004-03-25  Martin Baulig  <martin@ximian.com>
13496
13497         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13498         instead of the MonoGenericMethod here.
13499
13500 2004-03-25  Martin Baulig  <martin@ximian.com>
13501
13502         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13503         each time we create a new MonoGenericInst, we also create a new
13504         context which points back to us.
13505
13506         * class.c (inflate_method): Use `ginst->context' instead of
13507         creating a new context.
13508
13509         * loader.c (method_from_memberref): Use
13510         `klass->generic_inst->context' instead of creating a new context.
13511
13512 2004-03-25  Martin Baulig  <martin@ximian.com>
13513
13514         * class.h (MonoGenericContext): New struct.
13515         (MonoGenericMethod): Removed `generic_inst'.
13516
13517         * class.c (mono_class_inflate_generic_method): Take a
13518         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13519
13520 2004-03-25  Martin Baulig  <martin@ximian.com>
13521
13522         * loader.h (MonoMethodInflated): New typedef.
13523
13524         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13525         `generic_param_count' consume just 30 bits, added `is_inflated'
13526         and `has_type_parameters' flags (one bit each).
13527
13528         * class.c (mono_class_inflate_generic_method): Create a
13529         MonoMethodInflated instead of a MonoMethodNormal and set
13530         `is_inflated' in the method signature.
13531
13532         * class.h (MonoGenericMethod): Removed `generic_method'.
13533
13534 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13535
13536         * image.c: Make sure the name of a MonoImage is always an absolute path.
13537           This fixes bug #54415.
13538
13539 2004-03-24  Martin Baulig  <martin@ximian.com>
13540
13541         * class.c (mono_class_setup_vtable): If we're a generic instance,
13542         use our generic type's vtable size.
13543
13544 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13545
13546         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13547         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13548         problems.
13549
13550 2004-03-23  Martin Baulig  <martin@ximian.com>
13551
13552         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13553         `MonoEvent *events'.
13554
13555         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13556         (typebuilder_icalls): Added "get_event_info"; calls
13557         mono_reflection_event_builder_get_event_info(). 
13558
13559         * reflection.c (mono_reflection_generic_inst_initialize): Added
13560         `MonoArray *events'.
13561         (mono_reflection_event_builder_get_event_info): New function.
13562
13563 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13564
13565         * object.h: add mono_type_initialization_init
13566
13567         * object.c (mono_runtime_class_init): 
13568         implement class constructor synchronization rules
13569         to cope with threading issues.  
13570         add mono_type_initialization_init
13571
13572         * appdomain.c (mono_runtime_init): call 
13573         mono_type_initialization_init
13574
13575         * class.h: removing initializing field from MonoVTable
13576
13577 2004-03-23  Martin Baulig  <martin@ximian.com>
13578
13579         * class.c (my_mono_class_from_generic_parameter): Use
13580         `param->name' if it's not NULL. 
13581
13582 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13583
13584         * class.c: do not insert non-virtual methods in the vtable.
13585         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13586         that means the method is non-virtual. This never would have
13587         happened before.
13588
13589 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13590
13591         * profiler.c: Added lock for accessing coverage_hash.
13592
13593 2004-03-22  Martin Baulig  <martin@ximian.com>
13594
13595         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13596         `method->method->signature->generic_param_count != 0' to make it
13597         work for interface methods.
13598
13599 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13600
13601         * process.c: quote the string passed to the shell using g_shell_quote.
13602
13603 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13604
13605         * threads.c:
13606         (mono_threads_manage): don't remove the finalizer thread and self
13607         from the threads hash table so that mono_thread_manage can be called
13608         more than once.
13609
13610 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13611
13612         * process.c: quote the arguments when UseShellExecute is true. Fixes
13613         bug #55790.
13614
13615 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13616
13617         * threads.c: set mono_thread_detach as a cleanup routine for every
13618         thread. This way it's always executed upon thread termination, either
13619         aborted or finished normally. No more xsp hangs!
13620
13621 2004-03-17  Martin Baulig  <martin@ximian.com>
13622
13623         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13624         `int count_nested' and a `MonoType **nested'.
13625
13626         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13627         most of the functionality into a new static
13628         do_mono_reflection_bind_generic_parameters() and don't take a
13629         `MonoType *nested_in' argument any more.  Don't compute nested
13630         types here.
13631         (mono_reflection_generic_inst_get_nested_types): New public method
13632         to get nested types.
13633
13634         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13635         we're a nested class.
13636
13637         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13638         mono_reflection_generic_inst_get_nested_types() to compute the
13639         nested types.
13640
13641 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13642
13643         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13644         descriptive error message under windows.
13645         
13646 2004-03-17  Martin Baulig  <martin@ximian.com>
13647
13648         * class.c (dup_type): Added `const MonoType *original' argument;
13649         copy the attrs from the original type.
13650
13651 2004-03-17  Martin Baulig  <martin@ximian.com>
13652
13653         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13654         `m->generic_inst_cache' here.
13655
13656 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13657
13658         * exception.h exception.c: Add stack_overflow_exception.
13659
13660 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13661
13662         * threadpool.c:
13663         (overlapped_callback): call SetEvent *after* invoking the callback.
13664         No need to call CloseHandle.
13665
13666 2004-03-16  Martin Baulig  <martin@ximian.com>
13667
13668         * reflection.c (mono_image_get_fieldref_token): Take a
13669         `MonoReflectionField *' instead of a `MonoClassField *' and a
13670         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13671
13672 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13673
13674         * appdomain.c: don't add the culture to the filename we're looking for
13675         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13676
13677 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13678
13679         * locales.c: don't ignore symbols when doing case insensitive compares.
13680         Thanks Dick! Fixes bug #54046.
13681
13682         * threads.c: surround 'threads' usage with enter/leave in
13683         mono_thread_manage.
13684
13685 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13686
13687         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13688         implicitly marshalled as [Out]. Fixes #55450.
13689
13690         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13691         an exception.
13692
13693 2004-03-16  Martin Baulig  <martin@ximian.com>
13694
13695         * class.c (mono_class_from_generic_parameter): Use the actual
13696         parameter name. 
13697
13698 2004-03-16  Martin Baulig  <martin@ximian.com>
13699
13700         * reflection.c (type_get_signature_size): New static function.
13701         Compues the size of the type in a method signature.
13702         (method_get_signature_size): New static function; calls
13703         type_get_signature_size() to compute the actual size of the
13704         method's signature.
13705         (method_encode_signature): Use method_get_signature_size() to get
13706         the signature's size rather than using `nparams * 10'.
13707
13708 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13709
13710         * file-io.h: define here WapiOverlapped on windows. I don't want the
13711         regular OVERLAPPED one.
13712
13713         * file-io.c:
13714         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13715         Disabling AIO on windows.
13716
13717 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13718
13719         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13720         bug #55385.
13721
13722 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13723
13724         * appdomain.c: upgraded corlib version.
13725
13726         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13727         and BeginWrite. Allow opening files for asynchrnous operations.
13728
13729         * file-io.h: new struct that maps FileStreamAsyncResult.
13730         * icall.c: added new icalls.
13731         * process.[ch]: support setting child process environment variables
13732         and use the SHELL or COMSPEC when UseShellExecute is true.
13733
13734         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13735         callback for async. IO is here and also BindHandle.
13736
13737         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13738         from here.
13739
13740 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13741
13742         * reflection.c (create_custom_attr): Allow len == 0.
13743
13744         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13745         computation on big-endian machines.
13746
13747 2004-03-13  Martin Baulig  <martin@ximian.com>
13748
13749         * class.h (MonoGenericInst): Added `int count_ifaces'.
13750
13751         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13752         `ginst->count_ifaces' instead `klass->interface_count' since we
13753         may get called before the vtable is created.
13754
13755         * loader.c (mono_method_get_param_names): If we're a generic
13756         instance, return and don't initialize the class.
13757
13758         * reflection.c (mono_reflection_setup_generic_class): Don't call
13759         ensure_runtime_vtable().
13760         (mono_reflection_bind_generic_parameters): Set
13761         `ginst->count_ifaces'.
13762
13763 2004-03-11  Jackson Harper <jackson@ximian.com>
13764
13765         * icall.c:
13766         * unicode.c:
13767         * unicode.h: Remove unused System.Char icalls.
13768         
13769 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13770
13771         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13772         code when we P/Invoke the first library in Windows.Forms, instead
13773         of when we first open the assembly.
13774
13775         * assembly.c: Drop the lookup from here.
13776
13777 2004-03-10  Martin Baulig  <martin@ximian.com>
13778
13779         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13780         class for properties, fields and events.  Finally fixes #54945.
13781
13782 2004-03-10  Martin Baulig  <martin@ximian.com>
13783
13784         * metadata.c (mono_metadata_class_equal): New static function;
13785         checks whether two generic instances or two generic parameters are
13786         equal.
13787         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13788         compare classes.        
13789
13790 2004-03-10  Martin Baulig  <martin@ximian.com>
13791
13792         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13793
13794         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13795         argument and write it into the `reflection_info' field.
13796
13797         * icall.c
13798         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13799         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13800
13801 2004-03-09  Jackson Harper  <jackson@ximian.com>
13802
13803         * char-conversions.h: use 8 bits for numeric data its all we need
13804         * icall.c: numeric data is only 8 bits now.
13805
13806 2004-03-09  Martin Baulig  <martin@ximian.com>
13807
13808         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13809
13810         * class.c (init_properties, init_events): Initialize the new
13811         `parent' field.
13812
13813         * reflection.c (typebuilder_setup_properties): Likewise.
13814         (typebuilder_setup_events): Likewise.
13815
13816         * reflection.h (MonoEventInfo): Replaced `parent with
13817         `declaring_type' and `reflected_type'.
13818
13819         * icall.c (ves_icall_get_property_info): Distinguish between
13820         declaring and reflected type.
13821         (ves_icall_get_event_info): Likewise.
13822
13823 2004-03-09  Martin Baulig  <martin@ximian.com>
13824
13825         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13826         (ves_icall_Type_GetField): Correctly set field->klass.
13827
13828 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13829
13830         * loader.h: Fix warning.
13831
13832 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13833
13834         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13835         library routine if present.  Notice that it will still continue
13836         executing even if its missing, for those working on the Gtk#
13837         edition of Windows.Forms.
13838
13839         * assembly.c (do_mono_assembly_open): If loading the
13840         System.Windows.Forms call mono_loader_wini_init.
13841
13842 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13843
13844         * class.h: Added MonoRemoteClass struct.
13845         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13846         function for MonoStrings.
13847         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13848         Added internal call for getting the proxy type.
13849         * marshal.c: Get the type of transparent proxies from its remote_class.
13850         Added methods that generate the IL for type checks and casts:
13851         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13852         mono_marshal_get_proxy_cancast.
13853         * marshal.h: Declaration of the previous new methods.
13854         * object.c: Added new moethods for creating and updating MonoRemoteClass
13855         instances: mono_remote_class, mono_upgrade_remote_class, 
13856         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13857         * verify.c: FIx transparent_proxy_fields layout.
13858         * appdomain.c: Bump corlib version.
13859
13860 2004-03-04  Jackson Harper  <jackson@ximian.com>
13861
13862         * icall.c: Add icall to access char conversion tables.
13863         * char-conversions.h: Character conversion tables.
13864         * Makefile.am: Add char-conversions.h private header file.
13865         
13866 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13867
13868         * appdomain.c (unload_thread_main): Increase unloading timeout to
13869         10 sec as a temporary workaround for Nant problems.
13870
13871 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13872
13873         * gc.c: Add checks for GC_enable and GC_disable.
13874
13875         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13876         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13877         (bug #54988).
13878         
13879 2004-02-27  Martin Baulig  <martin@ximian.com>
13880
13881         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13882         `MonoReflectionType *' instead of a `MonoType *'.
13883
13884 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13885
13886         * gc.c (run_finalize): Avoid finalizing the object representing the
13887         finalizer thread.
13888         (finalizer_thread): Fix warning.
13889
13890 2004-02-25  Martin Baulig  <martin@ximian.com>
13891
13892         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13893         argument for nested types.
13894         (mono_class_create_generic): Added support for nested generictypes.
13895
13896         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13897         `GList *nested'.
13898
13899         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13900
13901         * reflection.c (method_encode_signature): Increase the minimum
13902         value of `size' from 10 to 11.
13903         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13904         and `MonoType **types' arguments instead of the `MonoArray
13905         *types'; added `MonoType *nested_in'.  Recursively instantiate
13906         nested classes. 
13907
13908 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13909
13910         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13911         stack_overflow_ex members which are used by exception handling.
13912
13913         * appdomain.c (mono_runtime_init): Initialize the new members.
13914
13915         * gc.c (mono_gc_enable): New helper function.
13916         * gc.c (mono_gc_disable): New helper function.
13917
13918 2004-02-23  Martin Baulig  <martin@ximian.com>
13919
13920         * icall.c: I must have been really stupid - make it actually work
13921         this time ;-)
13922
13923 2004-02-23  Martin Baulig  <martin@ximian.com>
13924
13925         * loader.c (method_from_memberref): Only inflate the method if
13926         it's in another klass.
13927
13928 2004-02-23  Martin Baulig  <martin@ximian.com>
13929
13930         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13931         (mono_class_init): If we're a generic instance and an interface,
13932         compute `class->interface_id'; also create `class->interfaces'
13933         here and inflate them.
13934
13935         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13936         `ginst->is_open'.
13937         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13938
13939         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13940
13941 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13942
13943         * reflection.c (method_encode_code): Improved the error message
13944         generated by the exception.
13945
13946 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13947
13948         * icall.c: Martin did not do what he said in the ChangeLog for
13949         2004-02-18, but put back the changes for properties and events.
13950         Commenting those changes out again and adding comment to bug #54518.
13951         
13952         * process.c: removed warning.
13953
13954 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13955
13956         * marshal.c (emit_struct_conv): Print an error message instead of
13957         asserting when a type does not have the StructLayout attribute.
13958
13959 2004-02-20  Martin Baulig  <martin@ximian.com>
13960
13961         * reflection.c (mono_type_get_object): Also use the cache for
13962         generic instances.
13963         (mono_reflection_bind_generic_parameters): Always compute
13964         `ginst->ifaces'.        
13965
13966 2004-02-20  Martin Baulig  <martin@ximian.com>
13967
13968         * class.h (MonoGenericMethod): Removed `klass'.
13969
13970         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13971         *klass' argument.
13972
13973 2004-02-20  Martin Baulig  <martin@ximian.com>
13974
13975         * reflection.c (method_encode_methodspec): Actually use the
13976         uninflated signature for the memberref.
13977
13978 2004-02-20  Martin Baulig  <martin@ximian.com>
13979
13980         * class.h (MonoGenericMethod): Removed `declaring'.
13981
13982         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13983         is NULL, compute it here.
13984
13985 2004-02-20  Martin Baulig  <martin@ximian.com>
13986
13987         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13988
13989         * metadata.c (mono_metadata_generic_inst_hash): New method.
13990         (mono_metadata_generic_inst_equal): New method.
13991
13992         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13993         `klass->image->generic_inst_cache' cache to avoid creating
13994         duplicate MonoGenericInst's.
13995
13996         * class.c (mono_class_inflate_generic_type): Use the cache.
13997
13998 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13999
14000         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14001
14002 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14003
14004         * icall.c: added Socket.WSAIoctl icall.
14005
14006         * socket-io.[ch]: implemented
14007         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14008
14009 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14010
14011         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14012
14013 2004-02-18  Urs C Muff  <umuff@quark.com>
14014
14015         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14016         this work on PPC and other big-endian architectures.
14017
14018         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14019         fields with an underscore to make sure they're only accessed by
14020         the read32() macro.
14021
14022 2004-02-18  Martin Baulig  <martin@ximian.com>
14023
14024         * icall.c: Put the klass->refclass changes back for methods and
14025         fields, but not for properties and events.  We're currently not
14026         distinguishing between DeclaringType and ReflectedType for
14027         properties and events, that's what caused the regressions.
14028
14029 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14030
14031         * object.c:
14032         (mono_async_result_new): the handle can be NULL.
14033
14034         * threadpool.c: Use an event instead of a semaphore, don't initialize
14035         it until needed. This saves quite a few semaphores from being created
14036         when using the threadpool.
14037
14038 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14039
14040         * object.c (mono_string_is_interned_lookup): Fix interning of long
14041         strings. Fixes #54473.
14042
14043         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14044
14045         * icall.c: Revert the klass->refclass changes since they introduce
14046         regressions (bug #54518).
14047
14048 2004-02-18  Martin Baulig  <martin@ximian.com>
14049
14050         * class.c (mono_class_init): If we're a generic instance and don't
14051         come from a TypeBuilder, inflate our members here.
14052         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14053         (mono_class_create_generic): New public method.
14054         (mono_class_initialize_generic): Removed.
14055         (get_instantiation_name): Renamed to
14056         _mono_class_get_instantiation_name() and made it public.
14057
14058 2004-02-18  Martin Baulig  <martin@ximian.com>
14059
14060         * class.c (mono_class_inflate_generic_type): Clear the new
14061         instance's `nginst->klass' when inflating a generic instance.
14062         (mono_class_is_subclass_of): Added (basic) support for generic
14063         instances.
14064
14065 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14066
14067         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14068         MonoMempool to hold compiled native code.
14069
14070 2004-02-17  Martin Baulig  <martin@ximian.com>
14071
14072         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14073         `properties'.
14074
14075         * reflection.c (mono_reflection_generic_inst_initialize): Added
14076         `MonoArray *properties' argument.
14077
14078         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14079
14080 2004-02-17  Martin Baulig  <martin@ximian.com>
14081
14082         * icall.c (ves_icall_Type_GetFields): Renamed to
14083         ves_icall_Type_GetFields_internal() and added a
14084         `MonoReflectionType *rtype' argument; pass it to
14085         mono_field_get_object() to set the field's "reflected" type.
14086         (ves_icall_Type_GetConstructors): Likewise.
14087         (ves_icall_Type_GetEvents): Likewise.
14088         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14089         argument; pass it to mono_method_get_object() to set the method's
14090         "reflected" type.       
14091
14092 2004-02-17  Martin Baulig  <martin@ximian.com>
14093
14094         * class.h (MonoDynamicGenericInst): New type.
14095         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14096
14097         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14098         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14099         (ves_icall_MonoGenericInst_GetFields): New interncall.
14100
14101         * class.c (mono_class_from_generic): Don't call
14102         mono_class_initialize_generic() if this is a dynamic instance;
14103         ie. it's being created from a TypeBuilder.
14104         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14105         `class->byval_arg.type'.
14106
14107         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14108         to `inflate_method' and made static.
14109         (mono_reflection_inflate_field): Removed.
14110         (mono_reflection_generic_inst_initialize): New public method.
14111
14112         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14113         `ctors' and `fields'; added `initialized'.
14114
14115 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14116
14117         * debug-helpers.c (mono_method_full_name): Fix output for empty
14118         namespaces.
14119
14120 2004-02-12  Martin Baulig  <martin@ximian.com>
14121
14122         * class.h (MonoClassField): Added `MonoType *generic_type'.
14123
14124         * reflection.c (mono_image_get_fieldref_token): Added support for
14125         instantiated generic types.
14126         (field_encode_inflated_field): Removed.
14127         (mono_image_get_inflated_field_token): Removed.
14128         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14129
14130         * reflection.h (MonoReflectionInflatedField): Removed.
14131
14132 2004-02-12  Martin Baulig  <martin@ximian.com>
14133
14134         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14135         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14136
14137         * reflection.c (mono_image_get_methodspec_token): Take a
14138         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14139         (mono_image_create_token): Check whether we have a
14140         `method->signature->gen_method' and call
14141         mono_image_get_methodspec_token() if appropriate.
14142         (inflated_method_get_object): Removed.
14143         (mono_reflection_bind_generic_method_parameters): Return a
14144         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14145         (mono_reflection_inflate_method_or_ctor): Likewise.
14146
14147         * reflection.h (MonoReflectionInflatedMethod): Removed.
14148
14149 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14150
14151         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14152         for custom valuetype marshalling.
14153
14154         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14155
14156 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14157
14158         * icall.c: fixed WSAGetLastError_internal name.
14159
14160 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14161
14162         * threads.c (mono_thread_attach): Allow this to be called multiple
14163         times for a thread.
14164         
14165         * threads.c (build_wait_tids): Do not wait for ourselves.
14166
14167         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14168         appdomain list is empty.
14169
14170         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14171         memory returned by mono_string_builder_to_utf16, since it points into
14172         managed memory. Thanks to Bernie Solomon for noticing this.
14173
14174         * icall.c: Add AppDomainSetup icalls.
14175
14176         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14177
14178         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14179         types.
14180
14181         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14182         custom attributes to the method_aux struct. Also fix array indexes etc.
14183
14184         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14185         
14186 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14187
14188         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14189         (both static and runtime) and reduce startup time.
14190
14191 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14192
14193         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14194         AsAny marshalling conversion instead of crashing.
14195
14196         * marshal.c: Fix warnings.
14197
14198 2004-02-09  Martin Baulig  <martin@ximian.com>
14199
14200         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14201
14202         * reflection.h (MonoReflectionInflatedMethod): Removed the
14203         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14204
14205         * reflection.c (method_encode_methodspec): Removed the `method'
14206         argument; we get it from `gmethod->declaring'.
14207         (inflated_method_get_object): Removed the `declaring' argument.
14208
14209 2004-02-09  Martin Baulig  <martin@ximian.com>
14210
14211         * class.h (MonoGenericMethod): New type.
14212         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14213         `generic_method'.
14214
14215         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14216         a `MonoGenericMethod *gen_method' one.
14217
14218         * class.c (mono_class_inflate_generic_type): Take an additional
14219         `MonoGenericMethod * argument.  This is only non-NULL if we're
14220         inflating types for a generic method.   
14221         (mono_class_inflate_generic_signature): Renamed to
14222         inflate_generic_signature() and made static; take a
14223         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14224         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14225         instead of a `MonoGenericInst *' one.
14226         (mono_class_inflate_generic_method): Likewise.
14227
14228         * reflection.c (encode_generic_method_sig): Take a
14229         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14230         (method_encode_methodspec): Likewise.
14231         (inflated_method_get_object): Likewise. 
14232
14233         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14234         field with a `MonoGenericMethod *gmethod' one.  
14235
14236 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14237
14238         * class.h (mono_class_has_parent): add parens to expansion
14239         so you can ! this.
14240
14241 2004-02-08  Martin Baulig  <martin@ximian.com>
14242
14243         * image.h (MonoImage): Removed `generics_cache'.
14244
14245         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14246         instead of a `MonoType *' argument; removed the `inflate_methods'
14247         argument.  Don't inflate methods here.
14248
14249         * loader.c (find_method): If it's a generic instance, call
14250         mono_class_init() on the `sclass->generic_inst->generic_type'.
14251
14252         * metadata.c (mono_type_size): Make this work on uninitialized
14253         generic instances; call it on the `ginst->generic_type's class.
14254
14255         * reflection.c (mono_reflection_bind_generic_parameters): Call
14256         mono_class_from_generic() to create the `ginst->klass'.
14257
14258 2004-02-08  Martin Baulig  <martin@ximian.com>
14259
14260         * class.h (MonoClass): Changed type of `generic_inst' from
14261         `MonoType *' to `MonoGenericInst *'.
14262
14263 2004-02-08  Martin Baulig  <martin@ximian.com>
14264
14265         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14266         mono_type_get_object(), this is now creating a `MonoGenericInst'
14267         for MONO_TYPE_GENERICINST.
14268         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14269         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14270
14271         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14272         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14273         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14274         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14275         and reflected type.
14276
14277         * reflection.h (MonoReflectionInflatedMethod): Removed
14278         `declaring_type' and `reflected_type'.
14279
14280 2004-02-08  Martin Baulig  <martin@ximian.com>
14281
14282         * class.h (MonoGenericInst): Added `MonoType *parent' and
14283         `MonoType **ifaces'.
14284
14285         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14286         `parent' and `interfaces'.
14287
14288         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14289         `MonoType *' argument and return a `MonoType *'.
14290
14291         * icall.c
14292         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14293         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14294
14295 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14296
14297         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14298         valuetype marshalling.
14299
14300 2004-02-06  Martin Baulig  <martin@ximian.com>
14301
14302         * class.c
14303         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14304         (my_mono_class_from_generic_parameter): Likewise.
14305
14306 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14307
14308         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14309         contents of the symbol files lazily.
14310
14311         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14312
14313         * threads.h threads.c icall.c: New icalls for getting and setting the
14314         threads name.
14315
14316 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14317
14318         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14319         Raise an exception when the domain is not found.
14320
14321 2004-02-03  Martin Baulig  <martin@ximian.com>
14322
14323         * reflection.c (mono_image_get_methodspec_token): Use the
14324         uninflated signature; fixes gen-33.
14325
14326 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14327
14328         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14329         the finalizer code can use thread functionality.
14330
14331         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14332         the finalizer thread.
14333
14334         * threads.c: Make some functions more robust.
14335
14336         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14337
14338         * metadata.h: Add new marshalling conventions.
14339
14340         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14341         stringbuilder marshalling. Fixes #53700.
14342
14343         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14344
14345         * reflection.c (mono_image_get_type_info): Save declarative security
14346         info.
14347
14348         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14349         unmanaged fields as well.
14350
14351         * appdomain.c: Bump corlib version.
14352
14353 2004-02-01  Martin Baulig  <martin@ximian.com>
14354
14355         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14356         method type arguments.  
14357
14358 2004-01-30  Duncan Mak  <duncan@ximian.com>
14359
14360         * marshal.h: Add prototype for
14361         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14362         and
14363         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14364         fix the build.
14365
14366 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14367
14368         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14369         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14370
14371 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14372
14373         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14374         custom marshalling of valuetypes.
14375
14376         * marshal.c: Fix some warnings.
14377
14378 2004-01-29  Martin Baulig  <martin@ximian.com>
14379
14380         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14381         for generic method parameters.
14382
14383         * reflection.c (method_encode_methodspec): Write the uninflated
14384         signature into the methodspec table.
14385         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14386         is always the uninflated method.
14387         (reflection_methodbuilder_to_mono_method): Copy the generic
14388         parameters from the MethodBuilder into `header->gen_params'.
14389
14390 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14391
14392         * class.c (mono_class_from_generic_parameter): Fix warning.
14393
14394 2004-01-27  Martin Baulig  <martin@ximian.com>
14395
14396         * class.c (mono_class_from_generic_parameter): Don't create
14397         `klass->methods' here.  
14398
14399 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14400
14401         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14402         extension since it does not work with libraries named lib<FOO>.dll.so.
14403
14404 2004-01-25  Martin Baulig  <martin@ximian.com>
14405
14406         * class.c (mono_class_inflate_generic_type): Added support for
14407         MONO_TYPE_GENERICINST.
14408
14409         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14410         inflate methods on open constructed types.      
14411
14412 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14413
14414         * object.c: fire ProcessExit event in the root AppDomain after running
14415         Main. Fixes bug #53299.
14416
14417 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14418
14419         * socket-io.c: include the new socket-wrappers.h header.
14420         Use the wrappers instead of the unix socket functions to make the code
14421         more clear.
14422
14423 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14424
14425         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14426
14427         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14428         Fixes #22532.
14429
14430 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14431
14432         * reflection.c (mono_image_create_pefile): Handle the case when the
14433         entry point is not a MethodBuilder.
14434
14435         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14436         field to ReflectionMethod since it is not allways a builder.
14437
14438         * reflection.c (type_get_fully_qualified_name): New helper function to
14439         return the fully qualified name of a type.
14440
14441         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14442         type name for custom marshallers.
14443
14444         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14445
14446         * class.c (mono_class_setup_vtable): If a parent class already 
14447         implements an interface, use the implementing methods from that class.
14448         Fixes #53148.
14449
14450 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14451
14452         * threadpool.c: just return instead of ExitThread to allow for thread
14453         clean up earlier.
14454
14455 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14456
14457         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14458         when closing resource modules.
14459
14460         * reflection.c (mono_image_create_pefile): Handle the case when the
14461         entry point is not a MethodBuilder.
14462
14463         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14464         field to ReflectionMethod since it is not allways a builder.
14465
14466 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14467
14468         * marshal.c (mono_marshal_get_managed_wrapper): 
14469         mono_marshal_alloc takes native int so CONV_I
14470         the arg for 64bits.
14471
14472 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14473
14474         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14475         tokens in the cattr table. Fixes #53108.
14476
14477 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14478
14479         * loader.c: don't trim ".dll" before looking up in the config file.
14480         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14481
14482 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14483
14484         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14485         Return the module which contains the resource as well.
14486         (ves_icall_System_Reflection_Module_Close): New icall.
14487
14488         * appdomain.c: Bump corlib version number.
14489
14490         * image.c (mono_image_addref): New public function.
14491
14492         * assembly.c: Call mono_image_addref.
14493
14494         * reflection.c (mono_module_get_object): Increase reference count of 
14495         the image.
14496
14497         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14498         Fixes #22532.
14499
14500         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14501         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14502         proper exceptions on DllImport problems.
14503
14504 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14505
14506         * class.c, metadata.c: eliminate CSIZE macro.
14507
14508 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14509
14510         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14511         * object.h: Added async_callback field in MonoAsyncResult.
14512         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14513         * verify.c: Added async_callback in MonoAsyncResult layout.
14514
14515 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14516
14517         * reflection.c (mono_reflection_get_custom_attrs): Add support
14518         for Modules.
14519
14520 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14521
14522         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14523         marshalling.
14524         (mono_marshal_method_from_wrapper): Add null pointer check.
14525
14526 2004-01-16  Martin Baulig  <martin@ximian.com>
14527
14528         * debug-mono-symfile.h: Set version number to 36 and reflect
14529         latest symbol writer changes.
14530
14531 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14532
14533         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14534         multi-dimensional arrays.
14535         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14536         (mono_class_from_mono_type): Use bounded_array_class_get.
14537         
14538         * class.c (mono_bounded_array_class_get): New function which takes
14539         a 'bounded' bool argument to distinguish vectors from one dimensional
14540         arrays.
14541
14542         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14543         bounded_array_class_get if the array has bounds.
14544
14545         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14546         Search modules loaded using AssemblyBuilder:AddModule as well.
14547
14548 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14549
14550         * appdomain.c: increased corlib version.
14551         * filewatcher.c: removed g_print.
14552         * icall.c:
14553         (get_property_info): only allocate what is actually requested.
14554         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14555
14556 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14557
14558         * Makefile.am: added filewatcher.[ch]
14559         * filewatcher.[ch]: FileSystemWatcher runtime support.
14560         * icall.c: added new FSW icalls.
14561
14562 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14563
14564         * string-icalls.c: fix stringbuilder regression as suggested by
14565         Iain McCoy <iain@mccoy.id.au>.
14566
14567 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14568
14569         * process.c (process_read_stringtable_block): Recognize '007f' as
14570         a language neutral stringtable block.
14571
14572 2004-01-12  Patrik Torstensson
14573
14574         * object.h (MonoStringBuilder) : Changed layout to support our
14575         new stringbuilder class.
14576         * marshal.c: Change marshalling to support the new layout of 
14577         string builder.
14578         * appdomain.c: increased version number because new layout of
14579         string builder.
14580
14581 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14582
14583         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14584         assembly name as an string instead of an AssemblyName, since it is
14585         easier to extract info from it.
14586
14587         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14588         the culture subdirectories too. Fixes #52231.
14589
14590 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14591
14592         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14593         It takes 2 new parameters with an optional name for the method to look
14594         for and case ignoring info.
14595
14596         * threadpool.c: removed unused variable.
14597
14598 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14599
14600         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14601         It takes 2 new parameters with an optional name for the property to look
14602         for and case ignoring info.
14603         Fixes bug #52753.
14604
14605 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14606
14607         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14608         Fix #52451.
14609
14610 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14611
14612         * appdomain.c:
14613         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14614         Fixes bug #52630.
14615
14616 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14617
14618         * reflection.c: Add support for more than one unmanaged resource.
14619
14620         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14621         in field->def_value, as done in all other cases.
14622
14623         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14624         TypeBuilders.
14625
14626         * reflection.c (mono_reflection_create_runtime_class): Remove 
14627         errorneous assignment to klass->element_class, since it is already
14628         done in mono_reflection_setup_internal_class.
14629
14630 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14631
14632         * gc.c: added missing LeaveCriticalSection.
14633         * icall.c: indented a couple of lines.
14634         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14635         if we call EndInvoke inside a callback. Fixes bug #52601.
14636
14637 2004-01-07  Martin Baulig  <martin@ximian.com>
14638
14639         * mono-debug-debugger.h
14640         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14641
14642 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14643
14644         * appdomain.c: Use messages in NotImplementedException.
14645
14646         * exception.c (mono_get_exception_not_implemented): Now this takes
14647         a message argument.
14648
14649         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14650         exception instead of g_asserting an aborting when something is not
14651         implemented.
14652
14653         Add some inline docs.
14654
14655 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14656
14657         * reflection.h: Update after changes to object layout.
14658
14659         * reflection.c: Implement saving of unmanaged aka win32 resources.
14660
14661         * appdomain.c: Bump version number.
14662
14663         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14664         Handle missing domains gracefully.
14665
14666 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14667
14668         * file-io.c : On Windows, there are much more invalid_path_chars.
14669
14670 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14671
14672         * class.h, object.c: prepare for GetType () speedup.
14673
14674 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14675
14676         * profiler.c: workaround for --profile null reference exception on
14677           cygwin. Patch by Patrik Torstensson.
14678
14679 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14680
14681         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14682         make work for unaligned access.
14683
14684 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14685
14686         * class.c: small cleanup (class->fields [i] -> field).
14687         * image.c: check address of metadata is valid.
14688
14689 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14690
14691         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14692         search the list of loaded assemblies.
14693
14694         * reflection.c (mono_reflection_type_from_name): Use 
14695         mono_assembly_loaded instead of mono_image_loaded.
14696
14697         * reflection.c: Fix warnings.
14698
14699 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14700
14701         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14702         is dynamic. This is needed since an assembly can contain both dynamic and
14703         non-dynamic images.
14704
14705         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14706         assembly->dynamic.
14707
14708         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14709
14710         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14711         to store modules loaded using AddModule.
14712
14713         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14714         on Modules.
14715
14716         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14717
14718         * reflection.c (mono_image_fill_export_table_from_module): New function to
14719         fill out the EXPORTEDTYPES table from a module.
14720
14721         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14722         into a separate function. Also handle loaded non-dynamic modules.
14723
14724         * reflection.c (mono_image_basic_init): Fix memory allocation.
14725
14726         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14727
14728         * assembly.c (mono_assembly_load_references): Make this public.
14729
14730 2003-12-19  Martin Baulig  <martin@ximian.com>
14731
14732         * class.c (mono_class_initialize_generic): Made this static, take
14733         a `MonoGenericInst *' instead of a `MonoClass *'.
14734         (mono_class_from_generic): Call mono_class_initialize_generic()
14735         unless we're already initialized or being called from
14736         do_mono_metadata_parse_generic_inst().
14737
14738         * class.h (MonoGenericInst): Added `initialized' and
14739         `init_pending' flags.
14740
14741         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14742         `mono_class_init (gklass)' or mono_class_initialize_generic()
14743         here; set `generic_inst->init_pending' while parsing the
14744         `type_argv'.
14745
14746 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14747
14748         * locales.c: include string.h for memxxx prototypes
14749
14750 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14751
14752         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14753         constructor when accessing literal fields.
14754
14755 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14756
14757         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14758
14759         * reflection.c (assembly_add_resource_manifest): New function to fill
14760         the MANIFESTRESOURCE table.
14761
14762         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14763
14764         * reflection.h: Update to changes in class layout.
14765
14766         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14767         Reenable call to mono_runtime_is_shutting_down ().
14768
14769         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14770         determine if the runtime is shutting down.
14771
14772 2003-12-16  Jackson Harper <jackson@ximian.com>
14773
14774         * icall.c: comment out call to mono_runtime_is_shutting_down to
14775         fix build.
14776         
14777 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14778
14779         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14780         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14781
14782 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14783
14784         * reflection.c: move definition of swap_with_size
14785         to before its first call
14786
14787 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14788
14789         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14790
14791         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14792         icall.
14793
14794         * object.c: Fix warnings.
14795
14796         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14797         members if FlattenHierarchy is set.
14798
14799         * reflection.c (mono_image_add_decl_security): New function to emit
14800         declarative security.
14801
14802         * reflection.h reflection.c: Add support for declarative security.
14803
14804         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14805         
14806 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14807
14808         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14809         
14810         * appdomain.c verify.c: Moved corlib version checking into its own
14811         function in appdomain.c since it needs to create vtables etc.
14812
14813 2003-12-13  Patrik Torstensson <p@rxc.se>
14814
14815         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14816         instead of unwrapped server.
14817
14818 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14819
14820         * verify.c (check_corlib): Fix field index.
14821
14822 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14823
14824         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14825         GetGacPath icall.
14826
14827 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14828
14829         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14830         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14831         cope with sizeof(size_t) != sizeof(guint32).
14832
14833 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14834
14835         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14836         in case of failure.
14837
14838 2003-12-10  Mark Crichton <crichton@gimp.org>
14839
14840         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14841         in managed code.
14842
14843         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14844
14845 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14846
14847         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14848         marked as deleted.
14849
14850 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14851
14852         * verify.c (check_corlib): Handle the case when the version field is 
14853         initialized by a static constructor.
14854
14855 2003-12-08  Patrik Torstensson  <p@rxc.se>
14856
14857     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14858
14859 2003-12-08  Martin Baulig  <martin@ximian.com>
14860
14861         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14862         a MonoReflectionGenericParameter, also take the parameter index
14863         and name as arguments.
14864         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14865         (ves_icall_MonoGenericParam_initialize): New interncall.
14866         (ves_icall_Type_make_byref_type): New interncall.
14867
14868         * reflection.h (MonoReflectionGenericParam): Derive from
14869         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14870         `index' fields.
14871
14872         * reflection.c (mono_reflection_define_generic_parameter): Create
14873         and return a new MonoReflectionGenericParam; don't initialize the
14874         constraints here.
14875         (mono_reflection_initialize_generic_parameter): New public method;
14876         initializes the constraints and creates the `param->pklass'.
14877
14878 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14879
14880         * reflection.h reflection.c: Use the new fields 'num_types', 
14881         'num_fields' and 'num_methods' to track the number of types etc.
14882
14883         * verify.c (check_corlib): Check corlib version number.
14884
14885 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14886
14887         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14888         function works on all methods.
14889
14890 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14891
14892         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14893         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14894         the custom_type_info flag of the transparent proxy.
14895         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14896         objects that supports IRemotingTypeInfo.
14897         * object.h: Added custom_type_info field in transparent proxy.
14898
14899 2003-12-06  Martin Baulig  <martin@ximian.com>
14900
14901         * class.c (mono_class_create_from_generic): Removed.
14902         (mono_class_from_generic): Check `ginst->klass' before doing
14903         anything else.  This is important to fully support "recursive"
14904         generic types.
14905
14906         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14907         empty `generic_inst->klass' before doing anything else.
14908
14909 2003-12-06  Dick Porter  <dick@ximian.com>
14910
14911         * verify.c: 
14912         * object.h:
14913         * icall.c:
14914         * locales.c: Use C structs to access class fields.  Don't do a
14915         conversion between MonoString and UChar because both are
14916         platform-endian UTF-16.  Compare now takes startindex and count
14917         parameters.  Add a char overload for IndexOf.  Speed up the
14918         invariant string IndexOf.
14919
14920 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14921
14922         * Makefile.am (monosn_LDADD): Fix parallel build.
14923
14924 2003-12-04  Martin Baulig  <martin@ximian.com>
14925
14926         * icall.c
14927         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14928         (ves_icall_Type_make_array_type): New interncall.       
14929
14930 2003-12-04  Martin Baulig  <martin@ximian.com>
14931
14932         * locales.c: also change it in the !HAVE_ICU case.
14933
14934 2003-12-04  Dick Porter  <dick@ximian.com>
14935
14936         * icall.c:
14937         * locales.c: construct_compareinfo is now in CompareInfo, not
14938         CultureInfo.
14939
14940 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14941
14942         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14943         image->files array.
14944
14945         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14946         table as well.
14947
14948         * assembly.c (mono_assembly_load_references): Only load references
14949         once.
14950
14951         * class.c (mono_class_from_name): Avoid linear search of the 
14952         EXPORTEDTYPE table.
14953
14954         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14955
14956 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14957
14958         * image.h (MonoImage): Add 'field_cache' field.
14959
14960         * loader.c (mono_field_from_token): Cache field lookups.
14961         
14962         * reflection.c (mono_module_get_object): Fix name property.
14963
14964         * icall.c (ves_icall_get_enum_info): Update after changes to 
14965         mono_metadata_get_constant_index ().
14966
14967         * icall.c: Get rid of get_type_info icall, use a separate icall for
14968         each type property to avoid needless memory allocations. Fixes #51514.
14969
14970         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14971         to avoid needless binary searches.
14972
14973         * class.c (class_compute_field_layout): Move the initialization of
14974         field->def_value to mono_class_vtable ().
14975
14976         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14977         non-corlib types.
14978
14979         * object.c (mono_object_allocate): Make it inline.
14980
14981         * object.c (mono_object_allocate_spec): Make it inline.
14982         
14983 2003-12-02  Dick Porter  <dick@ximian.com>
14984
14985         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14986         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14987
14988 2003-12-01  Dick Porter  <dick@ximian.com>
14989
14990         * threads.c: Fix signature and call in CreateMutex and
14991         CreateEvent.
14992
14993 2003-12-01  Dick Porter  <dick@ximian.com>
14994
14995         * icall.c: 
14996         * locales.c: Implement string compares and searching
14997
14998         * object.h: Add extra Thread field
14999
15000 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15001
15002         * reflection.c (fixup_method): Add support for MonoCMethod.
15003
15004 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15005
15006         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15007
15008         * reflection.c (assembly_name_to_aname): Allow extra characters in
15009         assembly names. Fixes #51468.
15010
15011 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15012
15013         * exception.c (mono_exception_from_name_domain): New helper function.
15014
15015         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15016         exception object in the correct domain.
15017
15018         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15019         formatting + make a copy a the input data.
15020
15021         * loader.c (mono_get_method_from_token): Methods which contain
15022         native code do not have entries in the ImplMap.
15023
15024         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15025         Thanks to Gonzalo for spotting this.
15026         
15027         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15028         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15029
15030         * assembly.h (mono_assembly_load_from): Split the second part of 
15031         assembly loading into a new public function.
15032
15033         * exception.h (mono_get_exception_bad_image_format): New function.
15034
15035 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15036
15037         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15038         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15039         
15040         * icall.c: Add new icall for creating dynamic methods.
15041
15042         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15043
15044         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15045
15046         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15047         create a dynamic method.
15048
15049         * reflection.c (resolve_object): New helper function.
15050
15051         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15052         which manipulate it so they can also work on dynamic methods.
15053
15054         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15055         creating the MonoReflectionMethodAux structure if it is not needed.
15056         
15057         * reflection.h verify.c: Update after changes to object layout.
15058
15059         * reflection.c (method_builder_encode_signature): Fix compilation on
15060         gcc 2.95.x.
15061
15062 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15063
15064         * appdomain.h: Added support for context static fields. Added static_data
15065           field to MonoAppContext and renamed thread_static_fields to a more
15066           generic special_static_fields in MonoAppDomain, since it can now contain
15067           context static fields.
15068         * domain.c: Updated hashtable name.
15069         * object.c: Replaced field_is_thread_static() for a more generic
15070           field_is_special_static() which also checks for context static attribute.
15071           In mono_class_vtable(), added support for static context fields.
15072         * threads.c: Changed methods that manage thread static fields to more
15073           generic methods so they can be reused both for thread and context static
15074           data.
15075         * threads.h: Declared some new methods.
15076
15077 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15078
15079         * reflection.h: Update after changes to the managed types.
15080
15081         * reflection.c (encode_custom_modifiers): New helper function.
15082
15083         * reflection.c (method_encode_signature): Emit custom modifiers.
15084
15085         * reflection.c (field_encode_signature): Emit custom modifiers.
15086
15087 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15088
15089         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15090
15091         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15092         implementation.
15093
15094         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15095         icall.
15096
15097         * object.c (mono_field_get_value_object): New function.
15098
15099         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15100         specific.
15101
15102 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15103
15104         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15105         return a preallocated out-of-memory exception instance.
15106
15107         * object.c (out_of_memory): Use the new function.
15108
15109         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15110         flag is before the custom modifiers. Fixes #49802.
15111
15112 2003-11-16  Martin Baulig  <martin@ximian.com>
15113
15114         * class.c (mono_class_is_open_constructed_type): Implemented the
15115         MONO_TYPE_GENERICINST case.
15116
15117 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15118
15119         * assembly.c (mono_assembly_fill_assembly_name): New function to
15120         fill out the MonoAssemblyName structure.
15121         (mono_assembly_open): Use the new function.
15122
15123         * icall.c (fill_reflection_assembly_name): New helper function.
15124
15125         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15126         new function.
15127
15128         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15129
15130 2003-11-15  Martin Baulig  <martin@ximian.com>
15131
15132         * class.c (mono_class_is_open_constructed_type): New public
15133         function; checks whether a type is an open constructed type,
15134         ie. whether it still contains type parameters.
15135         (mono_class_inflate_generic_type): If we're a type parameter and
15136         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15137         type.
15138
15139         * class.h (MonoGenericInst): Added `guint32 is_open'.
15140
15141         * loader.c (method_from_methodspec): Check whether we're an open
15142         or closed constructed type and set `ginst->is_open'.
15143
15144         * reflection.c (mono_reflection_bind_generic_parameters): Check
15145         whether we're an open or closed constructed type and set
15146         `ginst->is_open'.
15147         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15148         from open constructed types.
15149
15150 2003-11-15  Martin Baulig  <martin@ximian.com>
15151
15152         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15153         a generic instance (instead of a generic type declaration) with
15154         unbound generic parameters, bind them to our actual types.
15155
15156 2003-11-14  Martin Baulig  <martin@ximian.com>
15157
15158         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15159
15160         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15161         an interface type, populate `res->interfaces' with instantiated
15162         versions of all the interfaces we inherit.
15163
15164 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15165
15166         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15167         when MONO_PATH is set but doesn't contain the install dir.
15168
15169 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15170
15171         * icall.c:
15172         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15173         it's also implemented in base classes. Fixes bug #50927.
15174
15175 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15176
15177         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15178         if this method is called from a finalizer. Fixes #50913.
15179
15180 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15181
15182         * threads.c: Implement VolatileRead/VolatileWrite
15183
15184         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15185
15186 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15187
15188         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15189         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15190         2.95.3.
15191
15192         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15193         from Peter Ross (pro@missioncriticalit.com).
15194         
15195 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15196
15197         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15198
15199 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15200
15201         * assembly.c (mono_assembly_load_references): Disable check because it
15202         triggers on older corlibs which lots of people have.
15203
15204 2003-11-12  Jackson Harper  <jackson@ximian.com>
15205
15206         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15207         load corlib.dll if mscorlib.dll is not found.
15208         * assembly.h: Remove corlib name define.
15209         * class.c:
15210         * domain.c:
15211         * image.c: Change corlib name to mscorlib.
15212         
15213 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15214
15215         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15216
15217 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15218
15219         * appdomain.h: Added loader_optimization here to sync with the C#
15220         code, and add disallow_binding_redirects field.
15221
15222 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15223
15224         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15225
15226         * reflection.c (mono_image_build_metadata): Fix crash on modules
15227         with no types.
15228
15229         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15230
15231         * icall.c (ves_icall_get_method_info): Return callingConvention as
15232         well.
15233
15234         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15235         namespaces from the EXPORTEDTYPE table as well.
15236
15237         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15238         from all modules inside the assembly.
15239         
15240 2003-11-11  Martin Baulig  <martin@ximian.com>
15241
15242         * reflection.c (mono_reflection_bind_generic_parameters): Make
15243         this work for interfaces.
15244
15245 2003-11-11  Martin Baulig  <martin@ximian.com>
15246
15247         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15248
15249 2003-11-11  Martin Baulig  <martin@ximian.com>
15250
15251         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15252         "MonoInflatedMethod" and "MonoInflatedCtor".
15253
15254 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15255
15256         * reflection.c (resolution_scope_from_image): Use the assembly table
15257         from the manifest module, since other modules don't have it.
15258
15259         * debug-helpers.c (mono_type_full_name): New helper function.
15260
15261         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15262
15263         * image.c (mono_image_load_file_for_image): New public function which
15264         is a replacement for the load_file_for_image in class.c.
15265
15266         * assembly.c (mono_assembly_load_module): A wrapper for the function
15267         above which does assembly association and reference loading too.
15268
15269         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15270
15271 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15272
15273         * appdomain.c: not all of the attributes for the full assembly name
15274         are required and the order doesn't matter. Fixes bug #50787.
15275
15276 2003-11-10  Dick Porter  <dick@ximian.com>
15277
15278         * locales.c: Use platform-endian UTF16
15279
15280 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15281
15282         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15283         
15284 2003-11-10  Martin Baulig  <martin@ximian.com>
15285
15286         * metadata.c
15287         (mono_metadata_load_generic_params): Make this actually work.
15288
15289         * reflection.c (mono_reflection_bind_generic_parameters): If our
15290         parent is a generic instance, pass all the `types' to it, no
15291         matter whether it has the same number of type parameters or not.
15292
15293 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15294
15295         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15296
15297         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15298         assignment code to this function so it gets called recursively for all
15299         modules.
15300
15301         * image.c (load_modules): Remove the assembly assignment since it is
15302         now done by mono_assembly_load_references.
15303         
15304         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15305         Add 'module' argument.
15306         (mono_module_get_types): New helper function.
15307         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15308
15309 2003-11-08  Martin Baulig  <martin@ximian.com>
15310
15311         * class.c (mono_class_inflate_generic_method): Interface method
15312         don't have a header.
15313
15314         * reflection.c (mono_image_get_methodspec_token): Take an
15315         additional `MonoGenericInst *' argument instead of reading it from
15316         the header; this is necessary to support interfaces.
15317         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15318         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15319         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15320         argument.
15321
15322         * reflection.h (MonoReflectionInflatedMethod): Added
15323         `MonoGenericInst *ginst'.
15324
15325 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15326
15327         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15328
15329 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15330
15331         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15332
15333 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15334
15335         * reflection.c 
15336         (reflection_methodbuilder_from_method_builder):
15337         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15338         initialize a ReflectionMethodBuilder structure.
15339         (mono_image_get_methodbuilder_token):
15340         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15341         tokens which point to types in another module inside the same assembly.
15342
15343         * reflection.c: Use the new helper functions.
15344         
15345         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15346
15347         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15348         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15349
15350         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15351         neccesary.
15352
15353         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15354         current module. Emit the manifest only for the main module.
15355
15356         * reflection.c (mono_image_create_token): Add assertion when a 
15357         memberref needs to be created.
15358
15359         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15360
15361         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15362         larger buffer for the custom attribute blob. Fixes #50637.
15363         
15364 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15365
15366         * threadpool.c: notify listener on async processing handles after
15367         invoking the async callback. Thanks to Zoltan.
15368
15369 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15370
15371         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15372         avoid code duplication.
15373
15374         * reflection.h (MonoDynamicImage): New type which is currently unused,
15375         but will be used through the ref.emit code in place of 
15376         MonoDynamicAssembly.
15377
15378         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15379         object layout.
15380
15381         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15382         a MonoDynamicImage instead of just a MonoImage.
15383         
15384         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15385         icalls to ModuleBuilder but keep their semantics, so they will work
15386         with moduleb->assemblyb. This will change later.
15387         
15388 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15389
15390         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15391         object layout.
15392
15393         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15394         main module, since it is now done by the managed code.
15395
15396 2003-11-03  Martin Baulig  <martin@ximian.com>
15397
15398         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15399         `ginst->klass' here.
15400         (method_encode_methodspec): Don't use the `ginst->generic_method's
15401         klass if it's a generic instance, use `ginst->klass' in this case.
15402
15403 2003-11-03  Martin Baulig  <martin@ximian.com>
15404
15405         * reflection.c (mono_image_get_generic_method_param_info):
15406         Removed, use mono_image_get_generic_param_info() instead.
15407         (mono_image_get_type_info): Write the GenericParam table before
15408         the Method table.  This is neccessary because in the GenericParam
15409         table, type parameters of the class (ie. '!0' etc.) must come
15410         before the ones from its generic methods (ie. '!!0' etc).
15411
15412 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15413
15414         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15415
15416 2003-11-02  Martin Baulig  <martin@ximian.com>
15417
15418         * reflection.c (create_generic_typespec): Take a
15419         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15420         the generic parameters from it.
15421
15422 2003-11-02  Martin Baulig  <martin@ximian.com>
15423
15424         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15425         instead of a `MonoClassField *' since we just need the type.
15426         (create_generic_typespec): New static function.  Creates a
15427         TypeSpec token for a generic type declaration.
15428         (mono_image_get_generic_field_token): New static function.
15429         (mono_image_create_token): If we're a FieldBuilder in a generic
15430         type declaration, call mono_image_get_generic_field_token() to get
15431         the token.
15432
15433 2003-11-02  Martin Baulig  <martin@ximian.com>
15434
15435         * reflection.h
15436         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15437         `MonoReflectionGenericInst *declaring_type' and
15438         `MonoReflectionGenericInst *reflected_type' fields.
15439
15440         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15441         `MonoReflectionGenericInst *declaring_type' and a
15442         `MonoReflectionGenericInst *reflected_type' argument instead of a
15443         single `MonoReflectionGenericInst *type' one.  Set
15444         `res->declaring_type' and `res->reflected_type' from them.
15445         (mono_reflection_inflate_field): Likewise.      
15446
15447 2003-11-02  Martin Baulig  <martin@ximian.com>
15448
15449         * class.c (mono_class_setup_vtable): Don't store generic methods
15450         in the vtable.  
15451
15452 2003-11-02  Martin Baulig  <martin@ximian.com>
15453
15454         * reflection.h (MonoReflectionGenericInst): Added
15455         `MonoReflectionType *declaring_type'.
15456
15457         * reflection.c (mono_reflection_bind_generic_parameters): Use
15458         `if (tb->parent)' instead of `klass->parent'.
15459
15460 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15461
15462         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15463         with an empty ASSEMBLY table.
15464
15465         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15466         variable in the inner and outer loops.
15467
15468 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15469
15470         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15471         argument.
15472
15473         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15474         
15475         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15476         icalls. Instead, do everything in managed code. This is needed since
15477         it is hard to restore the original domain etc. in unmanaged code in the
15478         presence of undeniable exceptions.
15479
15480         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15481         New icalls to push and pop appdomain refs.
15482
15483 2003-10-31  Martin Baulig  <martin@ximian.com>
15484
15485         * class.c (inflate_generic_type): Renamed to
15486         mono_class_inflate_generic_type() and made it public.
15487
15488         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15489         New interncall.
15490
15491         * loader.c (mono_field_from_memberref): Also set the retklass for
15492         typespecs.
15493
15494         * fielder.c (mono_image_get_inflated_field_token): New static
15495         method; creates a metadata token for an inflated field.
15496         (mono_image_create_token, fixup_method): Added support for
15497         "MonoInflatedField".
15498         (fieldbuilder_to_mono_class_field): New static function.
15499         (mono_reflection_inflate_field): New public function.
15500
15501         * reflection.h
15502         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15503         (MonoReflectionInflatedField): New typedef.     
15504
15505 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15506
15507         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15508         for Solaris and other platforms without s6_addr16
15509
15510 2003-10-30  Martin Baulig  <martin@ximian.com>
15511
15512         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15513         argument instead of two.
15514         (mono_class_inflate_generic_signature): Likewise.
15515         (inflate_generic_header): Likewise.
15516         (mono_class_inflate_generic_method): Likewise.  In addition, if
15517         `ginst->klass' is set, it becomes the new `method->klass'.
15518
15519         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15520         field.
15521
15522         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15523         first byte. [FIXME]
15524         (method_encode_methodspec): If we have generic parameters, create
15525         a MethodSpec instead of a MethodRef.
15526         (fixup_method): Added support for "MonoInflatedMethod" and
15527         "MonoInflatedCtor".
15528         (mono_image_create_token): Added support for "MonoInflatedMethod"
15529         and "MonoInflatedCtor".
15530         (inflated_method_get_object): New static function; returns a
15531         managed "System.Reflection.MonoInflatedMethod" object.
15532         (mono_reflection_bind_generic_method_parameters): Return a
15533         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15534         (mono_reflection_inflate_method_or_ctor): Likewise.
15535         (mono_image_get_generic_method_param_info): Initialize unused
15536         fields to zero.
15537         (mono_image_get_generic_param_info): Likewise.
15538
15539         * reflection.h (MonoReflectionInflatedMethod): New public
15540         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15541         "S.R.MonoInflatedCtor" classes.
15542
15543         * loader.c (method_from_memberref): If we're a TypeSpec and it
15544         resolves to a generic instance, inflate the method.
15545
15546 2003-10-28  Dick Porter  <dick@ximian.com>
15547
15548         * object.c (mono_runtime_run_main): Convert command-line arguments
15549         into utf8, falling back to the user's locale encoding to do so.
15550
15551 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15552
15553         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15554         at this time.
15555
15556         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15557
15558         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15559         up icalls at method definition time. Partially fixes #33569.
15560
15561 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15562
15563         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15564         marshalling of arrays. Fixes #50116.
15565
15566         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15567
15568         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15569         points to a vtable in the dying appdomain.
15570
15571         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15572         listeners into unmanaged code inside the lock.
15573
15574         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15575         domains and add some comments.
15576
15577 2003-10-25  Martin Baulig  <martin@ximian.com>
15578
15579         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15580
15581         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15582
15583         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15584         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15585         currently parsing.  Create the generic class and store it in
15586         `generic_inst->klass' before parsing the type arguments.  This is
15587         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15588         for an example.
15589         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15590         to support recursive typespec entries.
15591
15592         * class.c (mono_class_setup_parent): If our parent is a generic
15593         instance, we may get called before it has its name set.
15594         (mono_class_from_generic): Splitted into
15595         mono_class_create_from_generic() and mono_class_initialize_generic().
15596
15597 2003-10-25  Martin Baulig  <martin@ximian.com>
15598
15599         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15600         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15601         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15602         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15603
15604         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15605         (create_typespec): Likewise.
15606         (mono_reflection_bind_generic_parameters): Return a
15607         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15608         (mono_reflection_inflate_method_or_ctor): New public function.
15609
15610         * reflection.h (MonoReflectionGenericInst): New typedef.        
15611
15612 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15613
15614         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15615         inside the domain lock. Fixes #49993.
15616         
15617         * object.c (mono_class_vtable): When typed allocation is used, 
15618         allocate vtables in the GC heap instead of in the mempool, since the
15619         vtables contain GC descriptors which are used by the collector even
15620         after the domain owning the mempool is unloaded.
15621
15622         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15623
15624         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15625         reflect what it does. Also invalidate mempools instead of freeing
15626         them if a define is set.
15627
15628         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15629         of the appdomain.
15630         
15631         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15632         hold the finalizable objects in this domain.
15633
15634         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15635         appdomain.
15636
15637         * appdomain.c (mono_domain_set): New function to set the current
15638         appdomain, but only if it is not being unloaded.
15639
15640         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15641         appdomain which is being unloaded.
15642         
15643         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15644         unloading of the root appdomain.
15645
15646         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15647         icall to execute a method in another appdomain. Intended as a 
15648         replacement for InternalSetDomain, which can confuse the code 
15649         generation in the JIT.
15650
15651         * appdomain.c (mono_domain_is_unloading): New function to determine
15652         whenever an appdomain is unloading.
15653
15654         * appdomain.c (mono_domain_unload): New function to correctly unload
15655         an appdomain.
15656
15657         * assembly.c (mono_assembly_load_references): Check that an assembly
15658         does not references itself.
15659
15660         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15661         domain manually, it asks the finalizer thread to do it, then waits for
15662         the result. Also added a timeout.
15663
15664         * icall.c: Register the new icalls.
15665
15666         * threads.h threads.c: Export the mono_gc_stop_world and 
15667         mono_gc_start_world functions.
15668         
15669         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15670         function to fill out the mempool with 0x2a.
15671
15672 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15673
15674         * reflection.h (MonoReflectionMethodAux): New structure to store
15675         information which is rarely used, thus is not in the MonoMethod
15676         structure.
15677
15678         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15679         store the aux info.
15680
15681         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15682         and marshalling info into the aux structure.
15683
15684         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15685         from the aux structure.
15686
15687         * loader.c (mono_method_get_param_names): Retrieve the param names from
15688         the aux structure.
15689         
15690 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15691
15692         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15693         warning.
15694
15695 2003-10-21  Dick Porter  <dick@ximian.com>
15696
15697         * socket-io.c
15698         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15699         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15700
15701 2003-10-21  Martin Baulig  <martin@ximian.com>
15702
15703         * reflection.c (mono_reflection_bind_generic_parameters):
15704         `klass->parent' is NULL for interfaces.
15705
15706 2003-10-21  Martin Baulig  <martin@ximian.com>
15707
15708         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15709
15710 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15711
15712         * exception.c (mono_exception_from_name_msg): New helper function for
15713         creating exceptions and initializing their message field.
15714
15715         * exception.c: Simplify functions using the new helper.
15716
15717         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15718         New function.
15719
15720         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15721         mono_raise_exception, since otherwise gcc doesn't generate the function
15722         epilog for raise_exception, confusing the stack unwinding in the JIT.
15723         Fixes #45043.
15724
15725         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15726         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15727         Fixes #49499.
15728
15729 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15730
15731         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15732         utf8.
15733
15734 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15735
15736         * icall.c: Removed GetUninitializedObject method because
15737           AllocateUninitializedClassInstance does the same.
15738
15739 2003-10-18  Martin Baulig  <martin@ximian.com>
15740
15741         * class.c (inflate_generic_signature): Renamed to
15742         mono_class_inflate_generic_signature() and made it public.
15743         (my_mono_class_from_generic_parameter): New static function; if we
15744         don't already have the generic parameter's MonoClass, create a
15745         very simple one which is just used internally in the runtime and
15746         not passed back to managed code.
15747
15748         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15749
15750         * metadata.h (MonoMethodSignature): Moved the
15751         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15752         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15753
15754         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15755         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15756         interncall on the MonoMethod class, not on MethodInfo.
15757         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15758         calling mono_reflection_bind_generic_method_parameters() directly.
15759
15760         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15761         return the already computed `method->signature'.
15762         (method_from_methodspec): New static function to load a method
15763         from a MethodSpec entry.
15764         (mono_get_method_from_token): Call the new method_from_methodspec()
15765         for MethodSpec tokens.  
15766         (mono_get_method_from_token): If we're a generic method, load the
15767         type parameters.
15768
15769         * reflection.c (mono_image_get_memberref_token): Allow
15770         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15771         table.
15772         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15773         (mono_image_create_token): First check whether it's a generic
15774         method (so we'd need to create a MethodSpec), then do the other
15775         two alternatives.
15776         (mono_reflection_bind_generic_method_parameters): Return a
15777         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15778         called directly from the interncall.
15779
15780 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15781
15782         * reflection.c (load_public_key): Move loading of the public key
15783         into managed code.
15784
15785         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15786
15787         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15788         fields.
15789
15790         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15791         culture, hash_alg and public_key. Fixes #49555.
15792
15793 2003-10-17  Martin Baulig  <martin@ximian.com>
15794
15795         * class.h (MonoGenericInst): Moved this declaration here and added
15796         `MonoMethod *generic_method'.
15797
15798         * icall.c
15799         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15800         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15801
15802         * metadata.c (mono_metadata_type_equal): Two types of
15803         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15804         index; ie. don't compare the address of the `MonoGenericParam'
15805         structure.
15806         (mono_metadata_load_generic_params): Removed the `MonoMethod
15807         *method' argument.
15808
15809         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15810         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15811
15812         * reflection.c (method_encode_signature): Encode the number of
15813         generic parameters.
15814         (encode_generic_method_sig): New static function.
15815         (method_encode_methodspec): New static function; creates an entry
15816         in the MethodSpec table for a generic method.
15817         (mono_image_get_methodspec_token): New static function.
15818         (mono_image_create_token): Call mono_image_get_methodspec_token()
15819         for generic methods.
15820         (mono_reflection_bind_generic_method_parameters): New public
15821         function.  Instantiates a generic method.
15822
15823 2003-10-16  Martin Baulig  <martin@ximian.com>
15824
15825         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15826         *gen_params' here from MonoMethodHeader.
15827
15828         * metadata.c (mono_metadata_parse_method_signature): If we have
15829         generic parameters, initialize `method->gen_params' and then set
15830         the correct `type->data.generic_param' in all the parameters.
15831
15832 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15833
15834         * threads.c (mono_threads_get_default_stacksize): New function to 
15835         return the default stacksize.
15836
15837         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15838         termination of the finalizer thread, since the previous method had
15839         race conditions. Fixes #49628.
15840
15841         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15842         as for the other managed threads.
15843
15844 2003-10-16  Martin Baulig  <martin@ximian.com>
15845
15846         * class.c (inflate_generic_signature): Copy `generic_param_count'
15847         and `gen_params'.
15848
15849         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15850         New interncall.
15851
15852         * metadata.c (mono_metadata_parse_method_signature): Actually set
15853         the `method->generic_param_count' here.
15854         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15855
15856 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15857
15858         * object.h: Add a new field to TypedRef to simplify the implementation
15859         of the REFANY opcodes in the JIT.
15860
15861         * icall.c: Make use of the new field.
15862
15863         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15864         dynamically.
15865
15866 2003-10-15  Martin Baulig  <martin@ximian.com>
15867
15868         * class.c (mono_class_from_gen_param): Renamed to
15869         mono_class_from_generic_parameter() and moved most of the
15870         functionality from mono_reflection_define_generic_parameter()
15871         here; ie. we create a "real" class here.
15872         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15873         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15874         previously been called.
15875
15876         * class.h (MonoGenericParam): Moved the declaration of this struct
15877         here from metadata.h and added `MonoMethod *method'.
15878
15879         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15880         interncall.
15881
15882         * loader.c (mono_get_method_from_token): If we have any generic
15883         parameters, call mono_metadata_load_generic_params() to read them
15884         from the MONO_TABLE_GENERICPAR.
15885
15886         * metadata.c (mono_metadata_load_generic_params): Added
15887         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15888
15889         * metadata.h (MonoMethodSignature): Replaced
15890         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15891         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15892
15893         * reflection.c (mono_reflection_define_generic_parameter): Moved
15894         most of the functionality into the new
15895         mono_class_from_generic_parameter(); set the `method' field if
15896         we're a method parameter.       
15897
15898 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15899
15900         * marshal.c (emit_struct_conv): if native size is 0
15901         emit no code.
15902
15903 2003-10-14  Martin Baulig  <martin@ximian.com>
15904
15905         * icall.c: The generics API has changed in the spec since it was
15906         added to System.Type; these modifications make it match the spec
15907         again.
15908         (ves_icall_Type_GetGenericParameters): Renamed to
15909         `ves_icall_Type_GetGenericArguments'.
15910         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15911         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15912         `ves_icall_MonoType_get_HasGenericArguments'.
15913         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15914         `ves_icall_MonoType_get_IsGenericParameter'.
15915         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15916         this is no interncall anymore.
15917         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15918         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15919
15920 2003-10-14  Martin Baulig  <martin@ximian.com>
15921
15922         * reflection.c (mono_reflection_bind_generic_parameters): Also
15923         inflate generic methods if we're reading the class from IL.
15924
15925 2003-10-13  Martin Baulig  <martin@ximian.com>
15926
15927         * reflection.c (mono_reflection_define_generic_parameter): This
15928         method isn't called directly from the icall anymore; take a
15929         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15930         method generic parameters.
15931         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15932         (method_builder_encode_signature): Encode generic parameters.
15933         (mono_image_get_method_info): Write generic params to the
15934         MONO_TABLE_GENERICPARAM table.
15935
15936         * reflection.h (MonoReflectionMethodBuilder): Added
15937         `MonoArray *generic_params'.
15938
15939         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15940
15941         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15942         wrapper for mono_reflection_define_generic_parameter().
15943         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15944
15945 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15946
15947         * marshal.h: Add missing function to fix build.
15948
15949         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15950         the SetLastError pinvoke attribute.
15951
15952         * marshal.c (mono_marshal_set_last_error): New helper function called
15953         by the generated code.
15954         
15955         * marshal.c (mono_mb_emit_branch): New helper function.
15956
15957         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15958
15959         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15960         classes as parameters and return values of delegates. Fixes #29256. 
15961
15962 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15963
15964         * locales.c: use gint32 in non HAVE_ICU case
15965
15966 2003-10-11  Martin Baulig  <martin@ximian.com>
15967
15968         * mono-debug.c (mono_debug_add_method): Added a workaround for
15969         bug #48591.
15970
15971 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15972
15973         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15974         delegates passed to native code must use the STDCALL calling 
15975         convention. Fixes #35987.
15976
15977 2003-10-10  Martin Baulig  <martin@ximian.com>
15978
15979         * class.c (inflate_generic_type): If we're inflating for a generic
15980         type instance (and not for a generic method), return
15981         MONO_TYPE_MVAR unchanged.
15982
15983 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15984
15985         * string-icalls.c: Join ignores null strings in the source array.
15986         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15987         * threads.c: GetAvailableTheads is slightly more accurate.
15988
15989 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15990
15991         * threads.h threads.c : add mono_threads_set_default_stacksize
15992         and pass default to CreateThread calls.
15993
15994 2003-10-09  Dick Porter  <dick@ximian.com>
15995
15996         * icall.c:
15997         * locales.h:
15998         * locales.c: Internal calls for constructing CultureInfo and
15999         related objects from libicu (if its available.)
16000
16001 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16002
16003         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16004
16005 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16006
16007         * threadpool.c: added an argument to async_invoke_thread that is the
16008         item to process, pass the MonoAsyncResult to the thread start function
16009         when creating a new thread. This way we don't need to acquire any lock
16010         when we're creating a new thread. Readded a semaphore for faster
16011         response times (instead of that Sleep i added).
16012
16013 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16014
16015         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16016         get daylight change dates better on Windows, fix handling
16017         of platforms without tm_gmtoff.
16018
16019 2003-10-06  Martin Baulig  <martin@ximian.com>
16020
16021         * class.c (inflate_generic_method): Renamed to
16022         mono_class_inflate_generic_method() and made public.
16023         (mono_class_init): Don't inflate the generic methods here.
16024         (mono_class_from_generic): Added `gboolean inflate_methods'
16025         argument.  Inflate the methods here.
16026
16027         * loader.c (mono_method_get_param_names): Ignore instances of
16028         generic types for the moment.
16029
16030         * reflection.c (fixup_method): Added support for inflated methods.
16031         (mono_image_create_token): Use mono_image_get_methodref_token()
16032         for inflated methods.
16033         (mono_custom_attrs_from_param): Ignore instances of generic types
16034         for the moment.
16035         (mono_reflection_bind_generic_parameters): New public function.
16036         Moved all the functionality from
16037         ves_icall_Type_BindGenericParameters() here and added support for
16038         dynamic types.
16039         (mono_reflection_define_generic_parameter): Initialize
16040         `klass->methods' here.
16041
16042         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16043         functionality into mono_reflection_define_generic_parameter().
16044         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16045         TypeBuilder, return that TypeBuilder.
16046
16047 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16048
16049         * appdomain.c: removed mono_delegate_semaphore.
16050
16051         * threadpool.c:
16052         (mono_thread_pool_add): moved hash table creation inside and the thread 
16053         creation outside of the critical region.
16054         (mono_thread_pool_finish): removed obsolete code.
16055         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16056         continue or exit the thread depending on the queue.
16057
16058 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16059
16060         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16061         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16062         handle more bool marshalling options
16063
16064 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16065
16066         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16067         arrays of structs. Also add a more descriptive error message when
16068         a structure member is marshalled as LPArray.
16069
16070 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16071
16072         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16073         marshalling arrays of complex types. Fixes #29098. Also remove an
16074         usused and incomplete function.
16075
16076 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16077
16078         * gc.c: report heap_size - free_bytes as total memory allocated
16079         (bug#49362).
16080
16081 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16082
16083         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16084         fix timezone handling problems on Windows.
16085         
16086         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16087         asserts when the year is outside the range handled by ms the functions.
16088
16089         * class.c (setup_interface_offsets): If the class is an interface,
16090         fill out its interface_offsets slot.
16091
16092 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16093
16094         * threadpool.c: mark threadpool threads as background.
16095
16096 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16097
16098         * decimal.c - define DECINLINE to nothing if not using GCC
16099
16100 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16101
16102         * assembly.c: More refcount fixes.
16103
16104 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16105
16106         * string-icalls.c: if we're not trimming, return the same string.
16107         When not splitting, don't create a new string.
16108
16109 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * image.c:
16112         (mono_image_open): increment the ref_count inside the critical section.
16113
16114 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16115
16116         * image.c (mono_image_open): Fix reference counting bug.
16117
16118 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16119
16120         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16121         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16122         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16123         mono_lookup_pinvoke_call throws.        
16124
16125 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16126
16127         * reflection.c (mono_reflection_parse_type): Fix #49114.
16128
16129         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16130         temporary workaround for cygwin header problem.
16131
16132         * object.c (mono_object_isinst): Synchronize this with the code
16133         generated by the JIT for casts.
16134
16135 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16136
16137         * reflection.c (encode_type): Fix #38332.
16138
16139 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16140
16141         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16142         the original method from the wrapper method.
16143
16144 2003-09-25  Martin Baulig  <martin@ximian.com>
16145
16146         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16147         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16148         (ves_icall_Type_get_IsGenericInstance): New interncall.
16149
16150 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16151
16152         * object.c: fix cast warning in big endian code.
16153
16154 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16155
16156         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16157         
16158 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16159
16160         * assembly.c: don't call check_env from mono_assembly_load. It's
16161         already done once in mono_assemblies_init and may cause headaches when
16162         multiple threads are loading assemblies.
16163
16164 2003-09-19  Martin Baulig  <martin@ximian.com>
16165
16166         * reflection.c (mono_reflection_define_generic_parameter): Don't
16167         allocate `klass->methods', set `klass->flags' to
16168         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16169
16170 2003-09-18  Martin Baulig  <martin@ximian.com>
16171
16172         * class.c (mono_class_init): Don't create `class->methods' if it's
16173         already initialized.
16174
16175         * metadata.c (mono_metadata_load_generic_params): Make this
16176         actually work.
16177
16178         * reflection.c (mono_reflection_define_generic_parameter): Set
16179         parent class and interfaces from the constraints.
16180
16181         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16182         to keep this struct in sync with the declaration in TypeBuilder.cs.
16183
16184 2003-09-17  Martin Baulig  <martin@ximian.com>
16185
16186         * metadata.h (MonoType): Replaced the data's `int type_param'
16187         field with `MonoGenericParam *generic_param'.
16188         (MonoGenericParam): Added `MonoClass *klass'.
16189
16190         * class.c (mono_class_from_gen_param): Removed the
16191         `MonoImage *image' and `int type_num' arguments.
16192
16193         * metadata.c (mono_metadata_parse_generic_param): New static
16194         method; creates a MonoGenericParam which just contains the index.
16195         (do_mono_metadata_parse_type): Call
16196         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16197         MONO_TYPE_MVAR.
16198
16199         * reflection.c (mono_image_typedef_or_ref): Generic type
16200         parameters may be in the same assembly, but never use a typedef
16201         for them.
16202         (mono_reflection_define_generic_parameter): We're now creating a
16203         "real" class for the type parameter; it's now safe to call
16204         mono_class_from_mono_type() on the class'es type, it'll do the
16205         right thing.
16206
16207 2003-09-16  Martin Baulig  <martin@ximian.com>
16208
16209         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16210         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16211         the `symfile' data structure must be fully initialized before it
16212         gets added to the table.
16213
16214 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16215
16216         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16217
16218         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16219         class init trampolines.
16220
16221 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16222
16223         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16224         to the built-in profiler to turn off time and allocation profiling
16225         respectively.
16226
16227 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16228
16229         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16230         g_direct_equal.
16231
16232         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16233         in human readable form.
16234
16235 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16236
16237         * reflection.c icall.c: Fixed warnings.
16238
16239         * image.c (load_class_names): Use a temporary hash table to hold the
16240         namespaces in order to avoid doing many string comparisons.
16241
16242         * image.h: Fix typo.
16243
16244         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16245         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16246         since the NULL case is short-circuited inside g_hash_table_lookup, 
16247         leading to better performance.  
16248
16249         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16250         obtain the first custom attribute for a given index. Depends on the
16251         CustomAttribute table being sorted by the parent field.
16252
16253         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16254         for better performance.
16255
16256 2003-09-07  Martin Baulig  <martin@ximian.com>
16257
16258         * class.c (mono_class_init): If we're a generic instance, inflate
16259         all our methods instead of loading them from the image.
16260         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16261
16262 2003-09-07  Martin Baulig  <martin@ximian.com>
16263
16264         * mono-debug-debugger.c: Added support for constructors.
16265
16266 2003-09-06  Martin Baulig  <martin@ximian.com>
16267
16268         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16269         New interncall.
16270
16271         * reflection.c (mono_reflection_setup_generic_class): Call
16272         ensure_runtime_vtable() to create the vtable.
16273
16274 2003-09-05  Martin Baulig  <martin@ximian.com>
16275
16276         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16277         MONO_TYPE_MVAR.
16278
16279 2003-09-04  Martin Baulig  <martin@ximian.com>
16280
16281         * reflection.c (mono_reflection_define_generic_parameter): Generic
16282         parameters start with zero.
16283
16284 2003-09-04  Martin Baulig  <martin@ximian.com>
16285
16286         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16287
16288         * reflection.h (MonoReflectionGenericParam): New typedef.
16289         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16290         the generic parameters from the managed TypeBuilder.
16291
16292         * reflection.c (mono_reflection_define_generic_parameter): New function.
16293         (mono_reflection_create_runtime_class): Encode generic parameters.
16294         (mono_reflection_setup_generic_class): New function; this is
16295         called after adding adding all generic params to the TypeBuilder.
16296         (encode_type): Added MONO_TYPE_VAR.
16297
16298 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16299
16300         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16301         here from the JIT.
16302
16303         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16304         load hook.
16305
16306 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16307
16308         * reflection.h reflection.c class.h class.c: Delete duplicate 
16309         definition of mono_type_get_name () from reflection.c and export the
16310         one in class.c.
16311
16312         * class.c: Class loading fixes from Bernie Solomon 
16313         (bernard@ugsolutions.com).
16314
16315         * reflection.c: Endianness fixes from Bernie Solomon 
16316         (bernard@ugsolutions.com).
16317         
16318 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16319
16320         * assembly.h assembly.c: Define a file format version for AOT
16321         libraries.
16322         
16323         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16324
16325         * appdomain.h (MonoJitInfo): New field to determine whenever the
16326         code is domain neutral.
16327         
16328 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16329
16330         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16331
16332 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16333
16334         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16335         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16336         Avoid caching the result since strings must be domain specific. Fixes
16337         #48050.
16338
16339 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16340
16341         * marshal.c (mono_marshal_init): Make this callable multiple times
16342         since it is hard to find a correct place to call it.
16343
16344         * object.c (mono_runtime_class_init): Execute static constructors in
16345         the correct appdomain.
16346
16347         * image.c (build_guid_table): Handle the case when multiple images have
16348         the same GUID.
16349
16350 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16351
16352         * icall.c: added a couple of icalls for System.Web.
16353
16354 2003-08-28  Martin Baulig  <martin@ximian.com>
16355
16356         * icall.c (ves_icall_Type_BindGenericParameters): Use
16357         `klass->generic_inst' instead of `&klass->byval_arg' in the
16358         mono_type_get_object() call.  The returned type must be
16359         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16360
16361 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16362
16363         * NOTES: New file.
16364
16365         * object.c (mono_class_proxy_vtable): Make it thread safe.
16366
16367         * pedump.c: Fix warning.
16368
16369         * object.c appdomain.h: Get rid of metadata_section. 
16370         It is no longer needed and it was causing deadlocks with domain->lock.
16371
16372         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16373
16374 2003-08-26  Martin Baulig  <martin@ximian.com>
16375
16376         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16377
16378 2003-08-26  Martin Baulig  <martin@ximian.com>
16379
16380         * pedump.c (main): Call mono_metadata_init(),
16381         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16382         and mono_loader_init().
16383
16384 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16385
16386         * loader.h: Add missing include to fix build.
16387
16388         * image.h: mono_image_load_references is no more.
16389
16390         * assembly.c: Reworked assembly loading to make it really thread safe.
16391         After these changes, the assembly returned by mono_assembly_open is
16392         fully initialized, i.e. all its references assemblies are loaded.
16393
16394         * assembly.c (mono_image_load_references): Renamed to 
16395         mono_assembly_load_references, and made private, since clients no
16396         longer need to call it.
16397
16398         * class.c: Removed calls to mono_assembly_load_references, since it was
16399         a source of deadlocks.
16400
16401         * loader.h loader.c class.h class.c: Protect data structures using a 
16402         new lock, the loader lock.
16403
16404         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16405         GPtrArrays only when needed.
16406
16407         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16408         into empty structures by mcs. Fixes pinvoke7.cs.
16409         
16410         * domain.c (mono_init): Call a new initialization function.
16411
16412         * appdomain.c (mono_runtime_init): Call the new initializer function
16413         of the marshal module.
16414
16415         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16416         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16417
16418         * marshal.h marshal.c: Added locks around the wrapper caches to make
16419         this module thread safe.
16420
16421         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16422         this argument. Fixes pinvoke1.exe.
16423
16424 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16425
16426         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16427         enumeration of values. Removed fields to store remote call output values in
16428         MonoAsyncResult. Not needed any more.
16429         * object.c: Initialize call_type and async_result fields in mono_message_init.
16430         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16431         dispatching the message.
16432         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16433         async call to finish. To do it use a message with EndInvoke call type.
16434
16435 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16436
16437         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16438         determines whenever a method has marshalling info.
16439
16440 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16441
16442         * assembly.c: fix the build on windows.
16443
16444 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16445
16446         * object.cs: Fixed bug #47785.
16447
16448 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16449
16450         * string-icalls.c (StringReplace): If their are no occurances of
16451         the old string found return a reference to the supplied
16452         string. This saves some memory and matches MS behavoir.
16453         
16454 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16455
16456         * socket-io.c: fixed compilation for systems that define AF_INET6
16457         and don't define SOL_IP/SOL_IPV6.
16458
16459 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16460
16461         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16462         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16463
16464         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16465
16466         * domain.c: Make this module thread safe.
16467
16468         * domain.c (mono_init): Call new initialization function.
16469
16470         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16471         reference types too. Fixes #38812.
16472
16473         * image.c (mono_image_init): Fixed warnings.
16474
16475         * class.c (mono_class_from_typeref): Handle assembly load failure
16476         correctly.
16477
16478         * appdomain.c (add_assemblies_to_domain): Handle the case when
16479         the references of an assembly are not yet loaded.
16480
16481         * metadata.c image.c assembly.c: Moved initialization of global
16482         variables to a separate function called at startup since lazy 
16483         initialization of these variables is not thread safe.
16484         
16485         * image.c assembly.c: Made this module thread safe by adding locks in 
16486         the appropriate places.
16487
16488         * domain.c (mono_init): Call the new initialization functions of the
16489         three modules.
16490
16491 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16492
16493         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16494           make a direct call. It is proxy's work to make the call asynchronous.
16495           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16496           the return values.
16497         * object.cs: mono_method_call_message_new(): read AsyncResult and
16498           state object from parameters list, if this info is requested.
16499         * object.h: Added fields to store remote call output values in
16500           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16501
16502 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16503
16504         * object.h: add needed fields to MonoThread.
16505         * threads.c, threads.h: allow registering a function to cleanup data
16506         allocated per thread by the JIT.
16507
16508 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16509
16510         * loader.h: portability fix by Bernie Solomon
16511         * <bernard@ugsolutions.com>.
16512
16513 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16514
16515         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16516         return a MonoArray. This simplifies the code and also ensures that
16517         the cache allways contains an object reference as a value.
16518
16519         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16520         function.
16521
16522 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16523
16524         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16525         fixes a problem with byte ordering when getting the address family for
16526         a socket.
16527
16528 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16529
16530         * .cvsignore: Added monosn.
16531
16532         * reflection.h reflection.c loader.c: Added support for parameter
16533         marshalling to dynamically created types. Fixes #47295.
16534
16535 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16536
16537         * rand.c: remove useless warnings.
16538
16539 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16540
16541         * class.c: implemented ldtoken for methods and fieldrefs.
16542
16543 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16544
16545         * threadpool.c: when mono_async_invoke was called, no one took care of
16546         monitoring the queue. So if the method invoked took some time and we
16547         got new async invoke requests after 500 ms (the thread created waited
16548         that long in WaitForSingleObject), the new async invoke was not called
16549         until the previous one finished.
16550
16551         This is fixed now. Thanks to Totte for helping with it.
16552
16553 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16554
16555         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16556
16557 2003-08-11  Martin Baulig  <martin@ximian.com>
16558
16559         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16560
16561 2003-08-06  Martin Baulig  <martin@ximian.com>
16562
16563         * mono-debug-debugger.c: Added support for static fields,
16564         properties and methods.
16565
16566 2003-08-06  Martin Baulig  <martin@ximian.com>
16567
16568         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16569         make this work for applications with multiple application domains.
16570
16571 2003-08-04  Martin Baulig  <martin@ximian.com>
16572
16573         * mono-debug-debugger.c: Completely reworked the type support; the
16574         most important thing is that we're now just using one single
16575         `MonoType' instance per type.
16576
16577 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16578
16579         * mono-endian.h, mono-endian.c, icall.c: Added icall
16580         ves_icall_System_Double_AssertEndianity to assert double word endianity
16581         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16582
16583 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16584
16585         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16586         support, icalls and fixes.
16587
16588 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16589
16590         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16591         classes that are a punctuation character in .NET is not the same a
16592         g_unichar_ispunct.
16593
16594 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16595
16596         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16597
16598 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16599
16600         * icall.c: Add new MemCopy internalcall.
16601         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16602         Simplified code; It is not necessary to handle all the cases here,
16603         as the C# code takes care of it.  Only handle the case of the name
16604         resource embedded into the assembly.
16605
16606         Changed signature to return the data pointer and the size of the
16607         data. 
16608
16609 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16610
16611         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16612         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16613
16614 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16615
16616         * socket-io.c: ignore EINTR error in select.
16617
16618 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16619
16620         * class.h, class.c: removed unused subclasses field in MonoClass.
16621
16622 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16623
16624         * icall.c: improve fix of get_base_definition(). If the parent class
16625           doesn't have the mehod, look at the parent of the parent.
16626         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16627           to check if a parameter is an in or out parameter
16628           (PARAM_ATTRIBUTE_IN is not set by default).
16629           mono_method_return_message_restore(): Use mono_class_value_size to
16630           get the size of a value type. mono_type_stack_size (parameterType)
16631           does not return the correct value if parameterType is byRef.
16632           mono_load_remote_field(), mono_load_remote_field_new(),
16633           mono_store_remote_field(), mono_store_remote_field_new():
16634           raise exception if the remote call returns an exception.
16635
16636 2003-07-28  Martin Baulig  <martin@ximian.com>
16637
16638         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16639         method.  This is a wrapper around mono_runtime_invoke() which
16640         boxes the instance object if neccessary.
16641
16642 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16643
16644         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16645         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16646
16647 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16648
16649         * icall.c: disable mcs bug workaround.
16650
16651 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16652
16653         * object.c (mono_runtime_class_init): Take the metadata_section
16654         mutex before obtaining the domain mutex.
16655
16656         * appdomain.h: Added definition of metadata_section mutex here. 
16657
16658         * object.c: define metadata_mutex here.
16659
16660 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16661
16662         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16663         fixed.
16664
16665 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16666
16667         * reflection.c: Fix bug #46669
16668
16669 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16670
16671         * exception.c:
16672         * exception.h:
16673         * icall.c:
16674         * object.h: fill in the type name for TypeLoadException.
16675
16676 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16677
16678         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16679         relationship between TypeBuilders while compiling corlib) and bug
16680         45993 (Array types returned from the runtime while compiling
16681         corlib were from the loaded corlib).
16682
16683 2003-07-22  Martin Baulig  <martin@ximian.com>
16684
16685         * mono-debug-debugger.c: Reworked the type support a bit more;
16686         distinguish between types and classes.
16687
16688 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16689
16690         * icall.c: add IsArrayImpl icall.
16691
16692 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16693
16694         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16695         initializing real_size only once. Also fix bug #46602.
16696
16697 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16698
16699         * object.c: Renamed mono_metadata_section to metadata_section.
16700
16701 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16702
16703         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16704           empty array if the type is an array. Fixed.
16705           ves_icall_MonoMethod_get_base_definition: if the base method
16706           is abstract, get the MethodInfo from the list of methods of
16707           the class.
16708         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16709           and it was 1-based. Fixed in mono_param_get_objects.
16710
16711 2003-07-20  Martin Baulig  <martin@ximian.com>
16712
16713         * mono-debug.h: Set version number to 31.
16714         (mono_debug_init): Added `MonoDomain *' argument.
16715
16716         * mono-debug-debugger.c: Reworked the type support; explicitly
16717         tell the debugger about builtin types; pass the `klass' address to
16718         the debugger.
16719
16720 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16721
16722         * image.c: Allow new metadata tables to be loaded without a
16723         warning. Also update the warning message to give the new constant value.
16724                 
16725 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16726
16727         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16728         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16729         array type representation changes.
16730
16731 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16732
16733         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16734         on Environment.Exit () call.
16735
16736 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16737
16738         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16739         requires a matching corlib.
16740
16741 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16742
16743         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16744           Committed again without the CRs.
16745         
16746 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16747
16748         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16749           getting it from the "this" socket instance. Did not work
16750           if the socket is a subclass of Socket.
16751           Also fixed bug #35371.
16752
16753 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16754
16755         * metadata.c: fixed size for TypedByRef.
16756         * loader.c: when searching for a method, consider the vararg amrker.
16757         * unicode.c, decimal.c: constify some arrays.
16758
16759 2003-07-15  Dick Porter  <dick@ximian.com>
16760
16761         * socket-io.c: Fixed compilation for gcc < 3.2.
16762
16763         Fixed compilation for machines that don't have AF_INET6 (thanks to
16764         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16765
16766         Fixed compile warnings.
16767         
16768         Fixed formatting and line endings.
16769
16770 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16771
16772         * socket-io.h:
16773         * socket-io.c: Added IPv6 support.
16774
16775 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16776
16777         * class.c (mono_class_is_assignable_from): New function to implement
16778         the is_assignable_from logic. Used by mono_object_isinst, 
16779         Type::IsAssignableFrom () and the interpreter.
16780
16781         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16782         Object, even interfaces.
16783         
16784         * object.c (mono_object_isinst): Implement in terms of 
16785         is_assignable_from.
16786
16787         * icall.c (ves_icall_type_is_assignable_from): New icall.
16788
16789 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16790
16791         * domain.c (foreach_domain): fix compiler warning.
16792
16793 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16794
16795         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16796         not available on all plattforms
16797
16798 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16799
16800         * image.h image.c: Store the metadata version string in MonoImage.
16801         * icall.c: New icall to retrieve the image version.
16802         * reflection.c (create_dynamic_image): Fill in the image version field
16803         * reflection.c (build_compressed_metadata): Use the image version
16804         from the image structure.
16805
16806 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16807
16808         * appdomain.c: modified comment.
16809         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16810         That will be its last iteration when mono_gc_cleanup is called from
16811         mono_runtime_cleanup and before the domain is unloaded.
16812
16813         Fixes bug #45962.
16814
16815 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16816
16817         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16818         attributes.
16819
16820 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16821
16822         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16823         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16824         Bernie Solomon <bernard@ugsolutions.com>.
16825
16826 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16827
16828         * object.c, object.h: provide mono_object_new_fast() for faster
16829         allocation in some special cases.
16830
16831 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16832
16833         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16834         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16835
16836 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16837
16838         * threadpool.c: fix leaks.
16839
16840 2003-07-01  Dick Porter  <dick@ximian.com>
16841
16842         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16843         using MonoGHashTables.  Fixes threadpool bug posted to list.
16844
16845 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16846
16847         * image.h, image.c: added support to load an assembly from a byte array.
16848         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16849         assembly bundle support.
16850
16851 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16852
16853         * threadpool.c (mono_thread_pool_add): keep a reference to the
16854         AsyncResult to prevent GC
16855
16856 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16857
16858         * class.c: leak fix.
16859
16860 2003-06-25  Dick Porter  <dick@ximian.com>
16861
16862         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16863         for the async object, the WaitHandle object will close the handle.
16864         Fixes bug 45321.
16865
16866 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16867
16868         * class.c: in mono_array_class_get (), lookup from the hash with the
16869         same type we insert: this works around a bug in
16870         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16871         lluis. The real fix will have to wait for after the release.
16872
16873 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16874
16875         * icall.c: fix memory leak when getting type members.
16876
16877 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16878
16879         * reflection.c: added more pubtoken special cases.
16880
16881 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16882
16883         * class.c: handle field offset correctly when class size
16884         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16885
16886 2003-06-20  Martin Baulig  <martin@ximian.com>
16887
16888         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16889         *image' field.
16890
16891 2003-06-20  Martin Baulig  <martin@ximian.com>
16892
16893         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16894
16895 2003-06-20  Martin Baulig  <martin@ximian.com>
16896
16897         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16898         just distinguish between variables in registers and variables at
16899         an offset relative to a register.
16900
16901 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16902
16903         * icall.c: #ifdef out latest changes until mcs is fixed.
16904
16905 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16906
16907         * icall.c: return members in metadata order.
16908
16909 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16910
16911         * icall.c: avoid infinite loop in GetTimeZoneData.
16912
16913 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16914
16915         * icall.c: added Marshal.Prelink/All icalls.
16916
16917 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16918
16919         * object.c, object.h: fix warnings and do some overflow checking
16920         when creating arrays.
16921
16922 2003-06-17  Dick Porter  <dick@ximian.com>
16923
16924         * file-io.h:
16925         * file-io.c: File attributes need to be tweaked slightly when
16926         passed from the managed to the w32 world.
16927
16928 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16929         * profiler.h profiler-private.h profiler.c: Rework last patch
16930         based on suggestion by Paolo.
16931         
16932 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16933
16934         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16935         instruction level coverage data collection.
16936         * profiler.h profiler.c (: Added new callback function which can be
16937         used by the profiler to limit which functions should have coverage
16938         instrumentation.
16939         * profiler.c (mono_profiler_load): Call g_module_build_path to
16940         generate the file name of the profiler library.
16941
16942 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16943
16944         * profiler.c, profiler.h, profiler-private.h: added basic block 
16945         coverage profiling API.
16946
16947 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16948
16949         * reflection.c (mono_reflection_create_runtime_class): Add support
16950         for events in dynamically generated code.
16951
16952         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16953         not allocated.
16954
16955 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16956
16957         * icall.c: when getting timezone info, return reasonable values if we
16958         can't get the actual data.
16959
16960 2003-06-14  Dick Porter  <dick@ximian.com>
16961
16962         * threads.c (start_wrapper): Remove the reference to the thread
16963         object in the TLS data, so the thread object can be finalized.
16964         This won't be reached if the thread threw an uncaught exception,
16965         so those thread handles will stay referenced :-( (This is due to
16966         missing support for scanning thread-specific data in the Boehm GC
16967         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16968
16969 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16970
16971         * reflection.c: ensure streams and tables are first allocated with
16972         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16973
16974 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16975
16976         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16977
16978 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16979
16980         * reflection.c (mono_reflection_create_runtime_class): Add support for
16981         properties to dynamically created classes.
16982         * reflection.c: Fix a few places where non-MonoObjects were inserted
16983         into the tokens hashtable.
16984
16985 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16986
16987         * object.c: some support to handle out of memory exceptions.
16988
16989 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16990
16991         * marshal.c (mono_marshal_get_native_wrapper): support reference
16992         return types
16993
16994 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16995
16996         * object.h, object.c: more portability stuff from Bernie Solomon.
16997         Unexport mono_object_allocate(). Added mono_object_unbox ().
16998         Set exitcode when an unhandled exception is thrown.
16999
17000 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17001
17002         * marshal.c (mono_marshal_get_native_wrapper): use custom
17003         marshaler for return types.
17004
17005 2003-06-10  Dick Porter  <dick@ximian.com>
17006
17007         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17008         ip_mreq is available
17009
17010 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17011
17012         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17013         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17014         by Bernie Solomon <bernard@ugsolutions.com>.
17015
17016 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17017
17018         * gc.c (mono_gc_init): Avoid error message on shutdown when
17019         GC_DONT_GC=1 is used.
17020
17021         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17022         New icall to return the GUID of a module.
17023
17024 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17025
17026         * class.c: ensure instance size always includes the parent's size
17027         even whem class size is set explicitly (fixes bug#44294).
17028
17029 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17030
17031         * profiler.h, profiler.c: made the simple profiler thread-safe,
17032         get more accurate timing info. Allow the loading of an
17033         externally-developed profiler module.
17034
17035 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17036
17037         * marshal.c (mono_marshal_get_native_wrapper): improved
17038         class/byref arguments.
17039         (mono_marshal_get_native_wrapper): better string marshaling support.
17040
17041 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17042
17043         * class.c: ensure .pack and .size are handled correctly and
17044         simplified layout of static fields.
17045
17046 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17047
17048         * appdomain.c
17049         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17050
17051         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17052         current directory (fix bug 44008)
17053
17054 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17055
17056         * marshal.c (mono_marshal_get_native_wrapper): started support for
17057         custom marshalers.
17058         (mono_delegate_to_ftnptr): consider marshalling specifications
17059
17060 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17061
17062         * reflection.c, reflection.h: emit custom marshal info.
17063
17064 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17065
17066         * object.c: free the GError.
17067         * icall.c: added CloseEvent_internal.
17068         * threads.[ch]:
17069         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17070         call.
17071
17072 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17073
17074         * loader.c (mono_method_get_signature): Add support for dynamic
17075         assemblies.
17076
17077 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17078
17079         * reflection.c: fixed bug #43905.
17080
17081 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17082
17083         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17084         handling TypedReference and ArgIterator.
17085         * loader.c, loader.h: added function to get signature at call site.
17086
17087 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17088
17089         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17090         data readonly. Buglets and warning fixes. Some MethodSpec support.
17091
17092 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17093
17094         * class.h, class.c, object.c: remove relative numbering support.
17095
17096 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17097
17098         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17099         free the string, until we get a chance to fix Gtk#
17100
17101 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17102
17103         * marshal.c: revert last patch.
17104
17105 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17106
17107         * icall.c: updates for new mono_class_vtable() not calling
17108         the type constructor anymore.
17109
17110 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17111
17112         * object.h, object.c: separate vtable creation from type
17113         initialization. Make running the .cctor thread safe.
17114
17115 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17116
17117         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17118
17119 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17120
17121         * loader.c (mono_get_method): consider calling convention
17122
17123 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17124
17125         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17126         to return the invisible global type for a module.
17127
17128         * reflection.c (mono_image_build_metadata): Emit global fields too.
17129
17130 2003-05-20  Peter Williams  <peterw@ximian.com>
17131
17132         * loader.c (mono_lookup_internal_call): Add a few newlines.
17133
17134 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17135
17136         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17137         literal strings.
17138
17139         * appdomain.c (set_domain_search_path): Recalculate search path when
17140         AppDomainSetup.PrivateBinPath changes.
17141
17142         * object.c (mono_class_compute_gc_descriptor): It turns out some
17143         parts of the class libs (like System.Thread) holds pointers to
17144         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17145         to treat native int a pointer type here.
17146         
17147 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17148
17149         * appdomain.h, domain.c: add hashtable for jump target resolution.
17150
17151 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17152
17153         * reflection.h reflection.c icall.c: Added new icalls 
17154         GetManifestResourceInfoInternal, GetModulesInternal and support
17155         infrastructure.
17156
17157 2003-05-16  Dick Porter  <dick@ximian.com>
17158
17159         * icall.c:
17160         * file-io.h:
17161         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17162
17163 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17164
17165         * object.c: mono_store_remote_field: little fix to previous patch.
17166
17167 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17168
17169         * class.c: add constructors to array classes.
17170         * icall.c: special case array construction for InternalInvoke (),
17171
17172 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17173
17174         * class.h class.c reflection.c object.c: Added support for field
17175         defaults in dynamically generated classes.
17176
17177 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17178
17179         * reflection.c: properly encode charset for ddlimport.
17180
17181 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17182
17183         * threads.c: allow compiling without GC.
17184
17185 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17186
17187         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17188         handling of thread static data.
17189
17190 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17191
17192         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17193
17194 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17195
17196         * class.c (mono_array_class_get): always set the serializable flags
17197         (mono_array_class_get): always set the SEALED attribute for array types
17198
17199 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17200
17201         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17202         attributes (fix for bug 42021).
17203
17204 2003-05-12  Dick Porter  <dick@ximian.com>
17205
17206         * gc.c: Don't run finalizers when the finalizer thread is
17207         finishing up, because the default domain has already been
17208         destroyed.
17209
17210 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17211
17212         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17213         value is null, we should throw an exception.   This is slightly
17214         different than the other conventions used for the constructor.
17215
17216 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17217
17218         * socket-io.c: fixed windows build.
17219
17220 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17221
17222         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17223
17224 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17225
17226         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17227         compilers.
17228
17229 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17230
17231         * class.c (mono_class_layout_fields): Add experimental GC aware
17232         auto layout facility. Requires class library changes to work correctly.
17233
17234         (mono_class_setup_vtable): Avoid overriding explicit interface
17235         method implementations. Fixes iface3.exe test.
17236
17237         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17238         object reference.
17239         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17240         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17241
17242         * metadata.h: Add new type classification macro which determines
17243         whenever the type holds an object reference.
17244
17245 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17246
17247         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17248
17249 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17250
17251         * gc.c (finalizer_thread): Work around a GC bug.
17252
17253 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17254
17255         * marshal.c (emit_struct_conv): allow unions
17256
17257         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17258
17259 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17260
17261         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17262
17263 2003-05-06  Martin Baulig  <martin@ximian.com>
17264
17265         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17266
17267 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17268
17269         * socket-io.c:
17270         (Select_internal): allow NULLs, don't create arrays if not needed.
17271         Coupled with Socket.cs changes.
17272
17273         * threadpool.c:
17274         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17275         register a finalizer for it that will close the semaphore handle. This
17276         fixes the leak and make Lupus' test run with > 4080 loops.
17277
17278 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17279
17280         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17281         Jerome Laban (bug #42287)
17282
17283 2003-05-02  Martin Baulig  <martin@ximian.com>
17284
17285         * debug-mono-symfile.h
17286         (MonoSymbolFile): Moved declaration into mono-debug.h.
17287         (MonoDebugMethodJitInfo): Likewise.
17288         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17289         argument.
17290         (_mono_debug_address_from_il_offset): Take a
17291         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17292
17293         * mono-debug.h
17294         (MonoDebugDomainData): New struct.
17295         (mono_debug_get_domain_data): New function.
17296         (mono_debug_add_method): Take an additional `MonoDomain *'
17297         argument.
17298         (mono_debug_source_location_from_address): Likewise.
17299         (mono_debug_il_offset_from_address): Likewise.
17300         (mono_debug_address_from_il_offset): Likewise.
17301
17302 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17303
17304         * reflection.c: one more check for null type in custom attrs.
17305
17306 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17307
17308         * reflection.c: avoid warning (comparison is always false due to limited
17309         range of data type).
17310
17311 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17312
17313         * icall.c: throw an exception in Type.GetField if the argument 'name'
17314         is NULL.
17315
17316 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17317
17318         * reflection.c: fixed handling of enums in named arguments to custom
17319         attributes (bug #42123).
17320
17321 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17322
17323         * reflection.c: use the right array element type and handle
17324         a null for a Type argument, too.
17325
17326 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17327
17328         * reflection.c: handle arrays as arguments to custom attributes.
17329
17330 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17331
17332         * reflection.c: handle a string value in a custom attr
17333         ctor that takes an object.
17334
17335 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17336
17337         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17338         (fix bug #42063)
17339
17340 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17341
17342         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17343
17344 2003-04-27  Martin Baulig  <martin@ximian.com>
17345
17346         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17347         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17348         MONO_DEBUGGER_EVENT_BREAKPOINT.
17349         (mono_breakpoint_trampoline_code): Removed.
17350         (mono_debugger_event_handler): The last argument is now a
17351         `guint32'.
17352         (mono_debugger_insert_breakpoint_full): Removed the
17353         `use_trampoline' argument.
17354         (mono_debugger_method_has_breakpoint): Likewise.
17355         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17356         mono_debugger_breakpoint_callback(); take the method and
17357         breakpoint number as arguments.
17358
17359 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17360
17361         * metadata.c: fix off by one when loading parameters attributes.
17362
17363 2003-04-24  Martin Baulig  <martin@ximian.com>
17364
17365         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17366
17367 2003-04-24  Martin Baulig  <martin@ximian.com>
17368
17369         * mono-debug-debugger.c: Moved all code which interacts with the
17370         Mono Debugger here.
17371
17372         * debug-mono-symfile.c: This code now just deals with the symbol
17373         file itself, the debugger code is now in mono-debug-debugger.c.
17374
17375 2003-04-23  Martin Baulig  <martin@ximian.com>
17376
17377         * mono-debug.c (mono_debug_source_location_from_il_offset):
17378         New method; like mono_debug_source_location_from_address(), but
17379         takes an IL offset instead of a machine address.
17380
17381 2003-04-23  Martin Baulig  <martin@ximian.com>
17382
17383         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17384         `line' field; this is now computed by the debugger.
17385
17386 2003-04-23  Martin Baulig  <martin@ximian.com>
17387
17388         * mono-debug.[ch]: New files.  This is the new debugging interface.
17389
17390         * mono-debug-debugger.[ch]: New files.  Moved all code which
17391         interacts with the Mono Debugger here.
17392
17393 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17394
17395         * domain.c (mono_init): initialize mono_defaults.monitor_class
17396
17397 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17398
17399         * reflection.c (method_encode_code): Add a spicy exception to help
17400         future compiler authors.
17401
17402 2003-04-21  Martin Baulig  <martin@ximian.com>
17403
17404         * icall.c
17405         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17406         Make this work with relative pathnames; g_filename_to_uri() needs
17407         an absolute filename.
17408
17409 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17410
17411         * icall.c: Track name changes in Object and ValueType.
17412
17413 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17414
17415         * metadata.c (mono_type_stack_size): size should be a multiple of
17416         sizeof (gpointer)
17417
17418 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17419
17420         * gc.c:
17421         (internal_domain_finalize): moved into mono_domain_finalize. No need
17422         to create another thread because the finalizers will be run in the
17423         finalizer thread.
17424         
17425         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17426         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17427         to be run (MS does this too).
17428
17429 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17430
17431         * object.c (mono_class_compute_gc_descriptor): Update comment.
17432
17433         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17434
17435         * image.h: Add synchronized wrapper cache.
17436
17437         * image.c (do_mono_image_open): Initialize cache.
17438
17439         * reflection.c (create_dynamic_mono_image): Initialize cache.
17440
17441 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17442
17443         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17444         ves_icall_System_Buffer_ByteLengthInternal.
17445
17446 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17447
17448         * reflection.c: setup klass->nested_in earlier. Allow
17449         a dash in the assembly name.
17450
17451 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17452
17453         * metadata.c (mono_type_to_unmanaged): dont access
17454         type->data.klass for MONO_TYPE_OBJECT
17455         (mono_type_to_unmanaged): consider System.Delegate class
17456
17457 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17458
17459         * class.c: just setup supertypes in the proper place instead of
17460         initializing the full element class for arrays.
17461
17462 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17463
17464         * class.c: ensure the element class of arrays is initialized.
17465         Setup the supertype info for array classes, too.
17466
17467 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17468
17469         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17470
17471 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17472
17473         * Makefile.am: re-added -m option when running cygpath. This way,
17474         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17475         separator.
17476         * mono-config.c: same codepath for locating mono config file for WIN32
17477         and the rest.
17478         * assembly.c: if mono_assembly_setrootdir is called, don't override
17479         the value set.
17480
17481 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17482
17483         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17484         MONO_ASSEMBLIES variable.
17485
17486 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17487
17488         * icall.c: added Assembly::GetNamespaces() icall.
17489
17490 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17491
17492         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17493
17494 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17495
17496         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17497         * object.c: fixed bug in the construction of vtable for proxies
17498
17499 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17500
17501         * object.c (mono_array_new): Mark mono_array_new as an icall.
17502
17503 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17504
17505         * class.c: fixed test for public method when overriding interfaces.
17506         Closes bug #40970.
17507
17508 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17509
17510         * appdomain.h, domain.c: added mono_domain_foreach() to
17511         be able to access the currently loaded appdomains.
17512         * object.c: make string interning work across sppdomains.
17513         Mark some functions for use as icalls.
17514
17515 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17516
17517         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17518
17519         * reflection.h reflection.c: Allocate long living data using 
17520         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17521
17522         * reflection.c: Double the allocation size in streams instead of
17523         increasing it, to prevent unneccesary copying on large assemblies.
17524         
17525         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17526         creation if the assembly does not have the Run flag set.
17527
17528 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17529
17530         * class.h: avoid the C++ keywords in header files (Jerome Laban
17531         spotted and fixed this).
17532
17533 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17534
17535         * object.c:
17536         (mono_unhandled_exception): fill in the arguments for the
17537         UnhandledException event. Only trigger that event for the default
17538         domain (as MS does).
17539
17540 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17541
17542         * object.c: Improve typed allocation stuff based on suggestions from
17543         Paolo. Also turn it on if the GC library supports it.
17544
17545 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17546
17547         * object.c object.h class.h: Added experimental typed allocation
17548         facility using the interfaces in gc_gcj.h.
17549
17550         * os/gc_wrapper.h: Added new include files.
17551         
17552 2003-04-03  Martin Baulig  <martin@ximian.com>
17553
17554         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17555         which is not yet enabled by default.
17556
17557         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17558         functions.
17559         (mono_gc_lock, mono_gc_unlock): New static functions.
17560
17561         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17562         functions; stop/start the world for the garbage collector.  This
17563         is using the windows API; we need to complete the SuspendThread()/
17564         ResumeThread() implementation in the io-layer to make this work on Unix.
17565         (mono_gc_push_all_stacks): New public function; tells the garbage
17566         collector about the stack pointers from all managed threads.
17567
17568 2003-04-03  Martin Baulig  <martin@ximian.com>
17569
17570         * object.h (MonoThread): Added `gpointer stack_ptr'.
17571
17572         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17573
17574 2003-04-03  Martin Baulig  <martin@ximian.com>
17575
17576         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17577
17578 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17579
17580         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17581         field.last.
17582
17583 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17584
17585         * loader.c (mono_lookup_internal_call): Report the corlib that is
17586         out of sync.
17587
17588 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17589
17590         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17591         System.DBNull (it's class not valuetype).
17592
17593 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17594
17595         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17596         if the array method was already assigned a token (fixes bug#40646).
17597
17598 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17599
17600         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17601         if no assembly is given.
17602
17603 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17604
17605         * metadata.h: Added the new tables.
17606
17607         * row-indexes.h: Added definitions for new tables.
17608
17609         * metadata.c: Add schemas for new tables, and add support for
17610         computing the sizes of them.
17611
17612         * class.c: Update for handling the new type cases.
17613
17614 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17615
17616         * metadata.h (MONO_TYPE_IS_VOID): new macro
17617
17618 2003-03-31  Martin Baulig  <martin@ximian.com>
17619
17620         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17621
17622         * threads.c (mono_thread_new_init): Call `thread_created' in the
17623         mono_thread_callbacks.
17624
17625 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17626
17627         * loader.h: added marshalbyrefobject_class to mono_defaults
17628         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17629         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17630           generation of output parameters.
17631           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17632         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17633           contextbound and the target object belongs to the context of the caller.
17634         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17635         * object.c: Implemented support for interfaces and abstract classes
17636           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17637           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17638
17639 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17640
17641         * class.h class.c (mono_class_is_subclass_of): New function.
17642         
17643         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17644         routines for most common case (calls from ArrayList::ToArray).
17645
17646         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17647         routine so programs which call Environment::Exit() can be profiled.
17648
17649         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17650         Added MONO_ARCH_SAVE_REGS.
17651
17652         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17653
17654 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17655
17656         * blob.h: Add a couple of new MonoType types definitions.
17657
17658         * tabledefs.h: Add a couple of new call convs.
17659
17660 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17661
17662         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17663         the layout of the class.
17664
17665         * reflection.c (alloc_table): double the size on overflow to avoid
17666         unnecessary copying.
17667
17668         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17669         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17670         null so it can be garbage collected.
17671         
17672 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17673
17674         * reflection.c (mono_reflection_get_type): Return the resolved type
17675         only if it is in the assembly we searched.
17676
17677         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17678
17679         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17680         method.
17681
17682 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17683
17684         * appdomain.c:
17685         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17686         the right one is 'file:///blah', but MS allows it.
17687         * assembly.c:
17688         (mono_assembly_open): allow 'file://blah'
17689
17690         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17691
17692 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17693
17694         * socket-io.c: fixes bug #40310.
17695
17696 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17697
17698         * reflection.c (mono_reflection_parse_type): handle deeply nested
17699         types correctly.
17700
17701         * reflection.c (mono_image_create_token): Use unique token values
17702         since they will be put into a hash table.
17703
17704         * class.c (mono_class_setup_vtable): If a method occurs in more than
17705         one place in the vtable, and it gets overriden, then change the
17706         other occurances too.
17707
17708         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17709         object as return type.
17710
17711 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17712
17713         * icall.c: Deleted "ToString" implementation for double and float
17714         because they are full implemented in managed code.
17715
17716 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17717
17718         * reflection.c, reflection.h: implemented and exported functions
17719         to retrieve info about custom attributes.
17720
17721 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17722
17723         * appdomain.c: moved Uri handling to assembly.c
17724         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17725         work when using a file Uri in *nix and windows.
17726
17727         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17728         GetReferencedAssemblies.
17729
17730 2003-03-18  Dick Porter  <dick@ximian.com>
17731
17732         * icall.c: Rename a couple of internal calls
17733
17734         * threads.c: Set the thread state to Stopped when a thread exits.
17735         Fixes bug 39377.
17736
17737 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17738
17739         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17740         New icall.
17741
17742         * object.c (mono_class_vtable): fix warning.
17743
17744 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17745
17746         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17747
17748         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17749         memory.
17750         (method_encode_clauses): Create exception info structures in the right
17751         order.
17752         (mono_reflection_setup_internal_class): Initialize supertypes field.
17753
17754         * class.c object.c: Handle interfaces which implement other interfaces 
17755         correctly.
17756
17757         * class.h class.c: Move the supertypes array initialization code into 
17758         a separate function so it can be used for dynamic types too. Also call
17759         it earlier, in mono_class_init(), since it can be used before the
17760         type is initialized.
17761
17762 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17763
17764         * Makefile.am:
17765         * assembly.c:
17766         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17767
17768         * appdomain.c:
17769         * appdomain.h:
17770         * marshal.c:
17771         * object.c: remove warnings.
17772
17773 2003-03-13  Martin Baulig  <martin@ximian.com>
17774
17775         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17776         (MonoDebugLexicalBlockEntry): New types.
17777
17778         * debug-mono-symfile.c
17779         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17780
17781 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17782
17783         * process.c: ret can be any non-zero value accroding to MS doc.
17784
17785 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17786
17787         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17788         fixing a warning for a miss-used prototype, would have cause
17789         random memory corruption.
17790
17791 2003-03-07  Martin Baulig  <martin@ximian.com>
17792
17793         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17794         getting really annoying ....
17795
17796 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17797
17798         * reflection.c (fixup_method): added support for array methods.
17799
17800 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17801
17802         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17803         (pointed out by Michael Adams).
17804
17805 2003-03-04  Dick Porter  <dick@ximian.com>
17806
17807         * icall.c: Temporarily reverted the Double and Single ToString()
17808         change, because it broke nunit.
17809
17810 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17811
17812         * object.h, threads.h: make include files compatible with C++
17813         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17814
17815 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17816
17817         * icall.c: Erased ToString helper functions for Double and Single.
17818         Now, that implementations ar all in managed code (Double and Single
17819         Formatters).
17820
17821 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17822
17823         * appdomain.c: Added method for initializing the default context of
17824         a domain. Added internal call for getting the default context.
17825         * appdomain.h: Added context variable in MonoDomain struct.
17826         * domain.c: mono_domain_set also sets the default context of the domain
17827         * icall.c: Mapped internal method InternalGetDefaultContext.
17828         * object.c: mono_object_get_virtual_method returns always a remoting
17829         wrapper if the object is a transparent proxy.
17830         mono_runtime_invoke_array: when creating an object by calling the
17831         constructor, if the created object is a proxy, then the constructor should
17832         be called using the a remoting wrapper.
17833
17834 2003-03-03  Dick Porter  <dick@ximian.com>
17835
17836         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17837         variable so it compiles on solaris.  Problem spotted by
17838         Christopher Taylor <ct@cs.clemson.edu>
17839
17840 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17841
17842         * appdomain.c:
17843         (get_info_from_assembly_name): don't leak value.
17844
17845         * icall.c:
17846         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17847         result.
17848
17849 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17850
17851         * assembly.c: export mono_image_load_references ().
17852         * class.c: handle function pointers. mono_class_from_name() now
17853         supports nested type names directly.
17854
17855 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17856
17857         * reflection.h reflection.c: Encode already created dynamic methods 
17858         and fields correctly as a DEF instead of a REF.
17859
17860         * reflection.c: Get rid of the force_ref argument to 
17861         mono_image_typedef_or_ref since it was wrong in the first place.
17862
17863         * string-icalls.c: add error checking to string constructors according
17864         to the MSDN docs.
17865
17866         * reflection.c: Emit types in the order their TypeBuilders were 
17867         created. Previously, a new table index was assigned to each type before
17868         the tables were emitted. This was wrong because the signature blob
17869         might already refer to a type by its original table index.
17870
17871 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17872
17873         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17874         change.
17875         
17876 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17877
17878         * Makefile.am: make assemblies dir have \ instead of / on windows.
17879
17880 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17881
17882         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17883         iterate over the NESTEDCLASS table using a linear search since the
17884         table is not guaranteed to be sorted by the secondary key.
17885
17886         * class.c (mono_class_create_from_typedef): fixed up call to
17887         mono_metadata_nesting_typedef.
17888         
17889 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17890
17891         * marshal.c (mono_string_to_byvalstr): clear the memory as
17892         suggested by Jerome Laban <jlaban@wanadoo.fr>
17893
17894 2003-02-26  Dick Porter  <dick@ximian.com>
17895
17896         * process.c: Cope with padding in .rsrc blocks
17897
17898 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17899
17900         * metadata.h: reverted the filter_len change, it breaks reflection
17901         
17902 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17903
17904         * metadata.h: added a new field to store the filter_len
17905         
17906
17907 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17908
17909         * reflection.c: handle custom attributes for types and members
17910         created with Reflection.Emit (bug#38422).
17911
17912 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17913
17914         * reflection.c: define RTSpecialName automatically for constructors for
17915         compatibility with MS.NET.
17916
17917         * reflection.c (mono_reflection_create_runtime_class): initialize
17918         nested_in field of dynamically created classes.
17919
17920 2003-02-22  Martin Baulig  <martin@ximian.com>
17921
17922         * debug-mono-symfile.h: Incremented version number.
17923
17924 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17925
17926         * object.h icall.c process.c: fix warnings.
17927
17928 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17929
17930         * appdomain.h appdomain.c:
17931         (mono_domain_try_type_resolve): split the 
17932         name_or_tb argument into a name and a tb argument.
17933         (mono_domain_has_type_resolve): new function to check whenever the
17934         application has registered a TypeResolve event handler.
17935         
17936         * icall.c reflection.h reflection.c: move the type resolve logic into
17937         mono_reflection_get_type () so it will be invoked when 
17938         Assembly::GetType () is called.
17939
17940         * reflection.c:
17941         (mono_reflection_get_type): renamed to get_type_internal.
17942         (mono_reflection_get_type): fixed type name generation so it works 
17943         for nested types too.
17944         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17945         costly type name generation if there is no resolve event handler.
17946
17947 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17948
17949         * class.c, image.c: load exported types from file references.
17950
17951 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17952
17953         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17954           used to cache the managed methods used to create proxies and make 
17955           remote invocation of methods.
17956         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17957           to be remotely created.
17958         * object.c: Modified the method mono_class_vtable(). It now initializes 
17959           the remote flag of the vtable. Modified mono_object_new_specific(), 
17960           so now it checks the remote flag.
17961         * icall.c: Added a couple of internal methods, one for enabling instance 
17962           creation interception for a type, and one for creating objects bypassing
17963           the remote check.
17964
17965 2003-02-18  Martin Baulig  <martin@ximian.com>
17966
17967         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17968         New interncall to get a method's metadata token.
17969
17970         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17971         New interncall for the debugger.
17972
17973 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17974
17975         * class.c (mono_class_setup_vtable): allocate supertype array
17976
17977 2003-02-18  Martin Baulig  <martin@ximian.com>
17978
17979         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17980
17981 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17982
17983         * reflection.c:
17984         (assembly_name_to_aname): jump over unknown properties (i've found
17985         something like: 'type, assembly, version=xxx, custom=null, public...',
17986         so now will ignore custom=null and still get the rest of the values).
17987
17988 2003-02-17  Dick Porter  <dick@ximian.com>
17989
17990         * threads.c: Have Thread.Start() wait for a semaphore to signal
17991         that the thread has set up all its local data.  This fixes bug
17992         34323, where Abort() raced the new thread's TLS data.
17993
17994         Also removes the handle_store() call from start_wrapper, because
17995         threads are now always created suspended and there is no longer a
17996         race between the parent and child threads to store the info.
17997
17998 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17999
18000         * image.c: explain the #- heap issue in a message, hopefully
18001         avoiding FAQs on mono-list.
18002
18003 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18004
18005         * icall.c:
18006         (GetEntryAssembly): if the domain has not invoked
18007         AppDomain.ExecuteAssembly yet, return the assembly of the default
18008         AppDomain.
18009
18010 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18011
18012         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18013
18014 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18015
18016         * metadata.c, reflection.c: simple speedup to type hash
18017         and equals code.
18018
18019 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18020
18021         * image.c, image.h, class.c, assembly.c: move module loading
18022         to MonoImage. When loading metadata, consider alignemnet from
18023         the start of metadata, not from the metadata address in memory.
18024
18025 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18026
18027         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18028         AssemblyBuilder objects. Factored out custom attribute creation into
18029         a separate function.
18030         (create_custom_attr): new function to create custom attributes.
18031
18032 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18033
18034         * Makefile.am: Got tired of typing the full pathname to pedump.
18035         Until there is another option, am installing this.
18036
18037 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18038
18039         * class.c (class_compute_field_layout): always set field->parent 
18040         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18041
18042 2003-02-11  Dick Porter  <dick@ximian.com>
18043
18044         * threads-types.h:
18045         * monitor.c: Rewrote Monitor, making lock much faster and
18046         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18047         creates them as needed.
18048
18049         * exception.c: Added SynchronizationLockException
18050
18051         * threads.c: Deleted old Monitor implementation.  The new one is
18052         in a new file.
18053
18054 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18055
18056         * class.c: handled TypedReference type code. Set the correct size for
18057         class data. Setup interface_offsets for interface classes, too.
18058
18059 2003-02-09  Martin Baulig  <martin@ximian.com>
18060
18061         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18062
18063 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18064
18065         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18066         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18067         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18068         * verify.c: check for code that runs after the end of the method.
18069
18070 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18071
18072         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18073         "System.Math::Round2".
18074         * sysmath.h: Added Floor, Round and Round2 definitions.
18075         * sysmath.c: Modified certain functions that were not 100% compliant
18076         with MS.NET (math precision) and added the implementation of Floor,
18077         Round and Round2.
18078
18079 2003-02-07  Martin Baulig  <martin@ximian.com>
18080
18081         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18082
18083 2003-02-07  Martin Baulig  <martin@ximian.com>
18084
18085         * debug-mono-symfile.c: Reflected latest symwriter changes.
18086         (mono_debug_create_mono_symbol_file): Removed.
18087         (mono_debug_open_mono_symbol_file): Take an argument which
18088         specifies whether to create a dynamic symbol file.
18089
18090 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18091
18092         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18093
18094 2003-02-05  Martin Baulig  <martin@ximian.com>
18095
18096         * reflection.c (mono_image_build_metadata): Make this public,
18097         protect it against being called multiple times, don't create
18098         resources and don't build the compressed metadata here.
18099         (mono_image_create_pefile): Do this here.
18100
18101         * icall.c
18102         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18103
18104 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18105
18106         * socket-io.c: fixed bug #36322.
18107
18108 2003-02-06  Piers Haken <piersh@friskit.com>
18109
18110         * appdomain.[ch]:
18111         * class.h:
18112         * debug-mono-symfile.c:
18113         * icall.c:
18114         * loader.c:
18115         * mono-config.c:
18116         * monosn.c:
18117         * reflection.c:
18118         * socket-io.c: warning cleanups
18119
18120 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18121
18122         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18123         function. works like remoting invoke, but does a check for the Proxy first.
18124
18125 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18126
18127         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18128
18129 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18130
18131         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18132         array of pointers.
18133         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18134         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18135
18136         * object.c (mono_store_remote_field_new): used by the new jit
18137         instead of mono_store_remote_field
18138         (mono_load_remote_field_new): used by the new jit
18139         instead of mono_load_remote_field
18140
18141 2003-02-05  Patrik Torstensson
18142
18143         * appdomain.c: changed unload to take the domain id instead
18144         of domain
18145         
18146         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18147
18148
18149 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18150
18151         * appdomain.c: don't look for assemblies in ApplicationBase if
18152         PrivateBinPathProbe is set.
18153
18154 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18155
18156         * object.c: make the first argument in main_args contain the absolute
18157         path to the assembly. Fixes bug #37511.
18158
18159 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18160
18161         * icall.c: get correct UTC offset for countries not using daylight
18162         time saving. Fixes bug #30030.
18163
18164 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18165
18166         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18167         and 1 are the family).
18168
18169 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18170
18171         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18172
18173         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18174
18175 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18176
18177         * reflection.c: added support for SignatureHelper tokens, which is
18178         needed by the Calli opcode.
18179
18180         * reflection.h: track changes to SignatureHelper class.
18181
18182         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18183
18184 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18185
18186         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18187
18188 2003-02-03  Patrik Torstensson
18189         * appdomain.[c|h], domain.c : 
18190          - Added support for getting a domain via domain id
18191          - Support for setting and getting domain from System.AppDomain 
18192            (used in cross appdomain channel)
18193          - Added support for get/set for a MonoAppContext on a thread 
18194            (Context class in System.Runtime.Remoting.Contexts),
18195          - Removed hack in Get/SetData and ExecuteAssembly.
18196         
18197         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18198         the managed world to get control when a proxy is created.
18199
18200         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18201         
18202 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18203
18204         * icall.c
18205         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18206         Populate the codebase field as well.
18207
18208 2003-02-02  Martin Baulig  <martin@ximian.com>
18209
18210         * debug-mono-symfile.c
18211         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18212         (mono_debug_symfile_add_method): Allow interncalls.
18213
18214 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18215
18216         * icall.c: throw parse exception if strtod fails or the string is empty.
18217
18218 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18219
18220         * marshal.c: handle object type separately from defined
18221         class types.
18222
18223 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18224
18225         * marshal.c: handle NATIVE_LPSTR for strings when it's
18226         explicitly specified.
18227
18228 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18229
18230         * reflection.c, reflection.h, icall.c: setup the reflection
18231         handle cache for ModuleBuilders and AssemblyBuilders.
18232
18233 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18234
18235         * reflection.c (reflection_methodbuilder_to_mono_method): set
18236         pinvoke flag
18237
18238 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18239
18240         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18241
18242 2003-01-29  Dick Porter  <dick@ximian.com>
18243
18244         * threads.c: No need for the fake_thread kludge now that Thread
18245         doesn't run a class constructor
18246         
18247 2003-01-29  Dick Porter  <dick@ximian.com>
18248
18249         * threads.c: Use g_direct_hash instead of the rather bogus
18250         g_int_hash
18251
18252 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18253
18254         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18255         (fix pinvoke12.exe)
18256         (mono_marshal_get_struct_to_ptr): generate valid IL code
18257         (mono_marshal_get_ptr_to_struct): generate valid IL code
18258         (*): correctly set sig->pinvoke, we need to memdup the signature
18259         to do that
18260
18261 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18262
18263         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18264         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18265
18266 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18267
18268         * profiler.c: provide more callers information.
18269
18270 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18271
18272         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18273
18274         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18275
18276         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18277
18278 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18279
18280         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18281         exception instead of going into an infinite loop on dates which it 
18282         can't yet handle.
18283
18284         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18285         out-of-range exception if needed.
18286
18287         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18288         an implementation for an interface method and to override an inherited
18289         method at the same time. 
18290         Imagine a scenario when a virtual method is used to override a
18291         virtual abstract method in a parent class, and this same method 
18292         provides an implementation for an method inherited from an interface. 
18293         In this case, the interface resolution code will set im->slot, which 
18294         means that the virtual method override pass will skip this method 
18295         which means a pointer to the abstract method inherited from the parent
18296         will remain in the vtable of this non-abstract class.
18297
18298         * class.c: (mono_class_setup_vtable): continue search for a real 
18299         method if only an abstract method is found.     
18300
18301 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18302
18303         * reflection.c: add size to encoding for ByValStr and ByValArray
18304         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18305
18306 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18307
18308         * class.c (mono_class_setup_vtable): pass the override info as an
18309         argument.
18310
18311         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18312         correctly.
18313         
18314         * reflection.c (ensure_runtime_vtable); add support for method 
18315         overrides.
18316         
18317 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18318
18319         * reflection.c (resolution_scope_from_image): Hack to work to work with
18320         dynamic assemblies.
18321
18322         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18323         added a 'force_ref' argument to force this function to allways return 
18324         a TypeRef. This is needed by mono_image_get_memberref_token ().
18325         
18326 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18327
18328         * reflection.c (mono_image_get_type_info): interfaces really don't have
18329         a parent.
18330
18331         * reflection.c (mono_image_basic_init): fill out missing fields of
18332         image structure.
18333
18334         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18335         dynamic assemblies. This is required so dynamic assemblies show up in
18336         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18337         Type::GetType() etc. This is consistent with MS behaviour.
18338
18339         * image.c image.h reflection.c: add newly created classes to the name 
18340         cache so mono_class_get () will find them.      
18341
18342 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18343
18344         First part of changes to get IKVM.NET running under mono.
18345         
18346         * appdomain.h, appdomain.c: added new function 
18347         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18348         This function will call AppDomain::DoTypeResolve to do the actual work.
18349
18350         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18351         moved existing code dealing with dynamic tokens to a new function 
18352         called mono_reflection_lookup_dynamic_token (). This function will 
18353         raise TypeResolve events when appropriate. Since reflection.c is not 
18354         part of libmetadata, a new hook function called 
18355         mono_lookup_dynamic_token() is added to class.c which will call this.
18356
18357         * assembly.h assembly.c: make the invoke_load_hook function public,
18358         so it can be called for dynamic assemblies.
18359
18360         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18361
18362         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18363         type isn't found.
18364
18365         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18366         MonoGHashTable, since it contains pointers to objects which the GC 
18367         needs to track.
18368
18369         * assembly.c (search_loaded): remove unused variable.
18370         
18371 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18372
18373         * object.c: fixed issue exposed by gcc-generated IL programs
18374         that use RVA data for pointers.
18375
18376 2003-01-25  Martin Baulig  <martin@ximian.com>
18377
18378         * threads.c (start_wrapper): Moved the initialization of
18379         `start_func' above the mono_new_thread_init() call to which we
18380         pass it as argument.
18381
18382 2003-01-24  Martin Baulig  <martin@ximian.com>
18383
18384         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18385         the MonoThread pointer.
18386
18387 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18388
18389         * icall.c: Rename `PowImpl' to Pow.
18390
18391 2003-01-23  Dick Porter  <dick@ximian.com>
18392
18393         * threads.c (start_wrapper): Create a Thread object if needed, so
18394         the Main() thread can do the class initialisation in a subthread
18395         that has been set up to allow managed code execution.
18396
18397         Pass the thread ID instead of the MonoThread pointer to the thread
18398         start and attach callbacks.  This change is required, because the
18399         jit thread start callback must be called _before_ the Thread
18400         object can be created.
18401         
18402         (mono_thread_init): Removed much object creation code that is no
18403         longer needed.  No managed code is called from here now.
18404
18405         * object.c (mono_runtime_exec_managed_code): Create a subthread
18406         for Main, and call back to the runtime to use it.
18407         Set the exit code when Main exits.
18408
18409         * gc.c: Make sure domain finalisation happens in a subthread.
18410         Re-enable threaded GC, fixing bug 31333 (again).
18411
18412         * environment.c: System.Environment internall calls (so far just
18413         ExitCode is here, the others are still in icall.c)
18414
18415         * appdomain.c (mono_runtime_cleanup): All threads running managed
18416         code should have finished before mono_runtime_cleanup() is
18417         reached, so no need to clean up threads.
18418
18419 2003-01-22  Martin Baulig  <martin@ximian.com>
18420
18421         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18422         `gpointer func' arguments.      
18423         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18424         but added `MonoThread *thread' argument.
18425         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18426
18427         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18428         and pass it to the mono_thread_start_cb callback.
18429         (mono_install_thread_callbacks): New public function to install a
18430         set of callbacks which are set by the debugger.
18431         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18432
18433 2003-01-22  Martin Baulig  <martin@ximian.com>
18434
18435         * Makefile.am: Install debug-mono-symfile.h.
18436
18437 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18438
18439         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18440
18441 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18442
18443         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18444         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18445         (mono_array_class_get): correctly set access levels of arrays
18446
18447 2003-01-20      Patrik Torstensson
18448         * image.h (MonoAssemblyName): changed major, minor, build, revision
18449         from signed to unsigned.
18450
18451 2003-01-20  sean kasun <skasun@azstarnet.com>
18452
18453         * reflection.c (load_cattr_value): Now this handles
18454         MONO_TYPE_SZARRAY.  Fixes bug #35629
18455
18456 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18457
18458         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18459         integer value
18460
18461 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18462
18463         * decimal.c: fixed bug #26056.
18464
18465 2003-01-17  Martin Baulig  <martin@ximian.com>
18466
18467         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18468
18469 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18470
18471         * exception.[ch]:
18472         (mono_get_exception_type_initialization): new function.
18473
18474         * object.c: throw a TypeInitializationException when an exception is
18475         thrown invoking the class constructor.
18476
18477 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18478
18479         * reflection.c: fixed attribute reading.
18480
18481 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18482
18483         * icall.c:
18484         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18485         provided, look for the type in the calling assembly and then in
18486         mscorlib; if the assembly name is provided, only try that one.
18487
18488 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18489
18490         * object.c: register the vtable before there is a chance it's
18491         queried again recursively.
18492
18493 2003-01-13  Duncan Mak  <duncan@ximian.com>
18494
18495         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18496         gc-internal.h. 
18497         
18498 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18499
18500         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18501
18502 2003-01-11  Martin Baulig  <martin@ximian.com>
18503
18504         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18505         this to 20 for the release.
18506
18507 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18508
18509         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18510
18511         * loader.c (mono_method_get_marshal_info): bug fix
18512
18513         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18514         structures with explicit layout
18515
18516 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18517
18518         * profiler.c: made the output more readable (and sorted). 
18519         Added caller information for the allocation profiler.
18520
18521 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18522
18523         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18524
18525 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18526
18527         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18528         to get value types.
18529         
18530 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18531
18532         * object.c, profiler.h, profiler.c, profiler-private.h:
18533         Added object allocation profiler.
18534
18535 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18536
18537         * reflection.h, reflection.c: handle global methods.
18538         Compress blob entries.
18539
18540 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18541
18542         * marshal.c: fix compilation.
18543
18544 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18545
18546         * loader.c (mono_method_get_marshal_info): impl.
18547
18548         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18549
18550 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18551
18552         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18553         for reference types.
18554
18555 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18556
18557         * loader.c: fixed off by one error in loaded parameter names.
18558
18559 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18560
18561         * marshal.c (mono_marshal_get_icall_wrapper): like
18562         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18563         instead of a MonoMethod.
18564
18565 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18566
18567         * decimal.c: fixed bug #36537.
18568
18569 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18570
18571         * marshal.c: throw a missing method exception if a
18572         P/Invoke method is not found.
18573
18574 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18575
18576         * icall.c: allow a null this for constructors.
18577
18578 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18579
18580         * icall.c: raise the proper exceptions if the arguments to the
18581         internal Invoke are incorrect.
18582
18583 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18584
18585         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18586
18587 2003-01-03  Martin Baulig  <martin@ximian.com>
18588
18589         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18590
18591 2002-12-31  Martin Baulig  <martin@ximian.com>
18592
18593         * debug-mono-symfile.c: Completely rewrote the type section.
18594         Instead of using individual malloc()ed fields, we use one big
18595         continuous memory area and offsets into this area.
18596         See the comments in the source code for details.
18597
18598 2002-12-30  Martin Baulig  <martin@ximian.com>
18599
18600         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18601
18602 2002-12-30  Martin Baulig  <martin@ximian.com>
18603
18604         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18605         line number table in this data blob instead of using an external
18606         pointer.
18607
18608 2002-12-28  Martin Baulig  <martin@ximian.com>
18609
18610         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18611
18612 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18613
18614         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18615         as a boxed return type.
18616
18617 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18618
18619         * appdomain.c
18620         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18621         g_build_filename to properly get separators on the filename created.
18622
18623         * object.h: Small change, introduce MonoMarshalByRefObject to
18624         track the layout of that structure in the C# universe as we make
18625         changes there.
18626
18627 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18628
18629         * object.c: removed assert to allow static fields on interfaces.
18630         * loader.c: a TypeSpec may be used for any type, not just arrays.
18631
18632 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18633
18634         * class.c, class.h: added mono_class_array_element_size ().
18635         Ignore static methods in interfaces.
18636
18637 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18638
18639         * threads.c: fixed the build under cygwin.
18640
18641 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18642
18643         * reflection.c: handle nullref constants. Allocate keys for
18644         reflection handles with the GC.
18645
18646 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18647
18648         * threads.c, threads.h: added mono_thread_get_abort_signal()
18649         to get a suitable signal for thread abort.
18650
18651 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18652
18653         * metadata.c: fix handling of ExportedType table.
18654
18655 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18656
18657         * icall.c: added WriteWindowsDebugString internal call.
18658
18659 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18660
18661         * reflection.h: added fields to match C# implementation.
18662
18663 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18664
18665         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18666
18667 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18668
18669         * gc.h, gc-internal.h: Rename header for GC internal calls to
18670         gc-internal.h from gc.h as to not clash with Boehm GC having its
18671         header installed as <gc.h> in outside include paths.
18672         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18673         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18674
18675 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18676
18677         * icall.c: assign minor, build and revision in FillName.
18678
18679 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18680
18681         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18682         Added support for running code generated by Reflection.Emit.
18683
18684 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18685
18686         * appdomain.c: check for NULL argument in LoadFrom.
18687
18688 2002-12-10  Dick Porter  <dick@ximian.com>
18689
18690         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18691
18692 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18693
18694         * appdomain.c: fix buglet when building exe file name.  Handle full
18695         assembly name (needed after latest changes to AssemblyName).
18696         * image.c:
18697         (mono_image_close): free some hashtables.
18698
18699 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18700
18701         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18702         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18703         on some systems (redhat 7.3) 
18704
18705 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18706
18707         * threads.c: delete the critical section of a sync block,
18708         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18709
18710 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18711
18712         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18713
18714 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18715
18716         * appdomain.[ch]: handle the assembly preload event to try loading the
18717         assemblies using the paths we have in the current domain.
18718
18719         * assembly.[ch]: created an assembly preload hook that is called to try
18720         loading the assembly by other means that the ones provided here.
18721
18722         * domain.c: initialize the domain search path.
18723
18724         From now on, assemblies (TODO: except corlib and System) are loaded
18725         according to these rules when using mono_assembly_load ():
18726
18727                 1. It tries to load the assembly from the ApplicationBase
18728                 of the current domain appending .dll and .exe (TODO: have to
18729                 try loading from name/name.dll and name/name.exe).
18730
18731                 2. It tries the search path specified in PrivateBinPath for the
18732                 current domain (if any).
18733
18734                 3. Previous behavior.
18735
18736 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18737
18738         * icall.c: implemented GetInterfaceMap() related icall.
18739         * domain.c, loader.h: load MethodInfo in mono_defaults.
18740
18741 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18742
18743         * gc.c: disable the finalizer thread for now, untill all the issues
18744         with it are resolved.
18745
18746 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18747
18748         * string-icalls.c: handle embedded nulls in string ctor when the
18749         length is specified.
18750
18751 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18752
18753         * class.c: look for explicit interface implementation in parent
18754         classes, too.
18755
18756 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18757
18758         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18759
18760 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18761
18762         * gc.c: protect handles with a critical section.
18763
18764 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18765
18766         * icall.c:
18767         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18768         parameters. If no assembly specified, try getting the type from all
18769         the assemblies in the current domain, else, load the assembly and get
18770         the type from it.
18771
18772 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18773
18774         * marshal.c: applied patch from Aleksey Demakov that fixes
18775         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18776
18777 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18778
18779         * icall.c: fixed get_location.
18780
18781 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18782
18783         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18784         declarations to make it work with older gcc. 
18785
18786         * loader.c (mono_get_method): set signature->pinvoke for native calls
18787
18788 2002-11-20  Dick Porter  <dick@ximian.com>
18789
18790         * threads.c (mono_thread_init): Set the main thread's handle
18791
18792 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18793
18794         * gc.c: allow compilation without GC support. Changed to match the
18795         mono coding style.
18796
18797 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18798
18799         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18800
18801 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18802
18803         * reflection.c: set a public key token on the core assemblies.
18804
18805 2002-11-18  Dick Porter  <dick@ximian.com>
18806
18807         * threads.c: Split out some thread initialisation so that other
18808         files can set the start callback function.
18809
18810         * gc.c: Run finalisers in a separate thread, to avoid stack
18811         overflow.  Fixes bug 31333.
18812
18813         * appdomain.c: Set up GC finalisation thread.
18814
18815         * reflection.c: 
18816         * object.c: 
18817         * domain.c: Use gc.h macros for GC_malloc
18818         
18819 2002-11-15  Dick Porter  <dick@ximian.com>
18820
18821         * threadpool.c: 
18822         * threads.c:
18823         * appdomain.c: Removed mono_runtime_init_with_attach(),
18824         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18825         merging the extra parameter with the existing function.  Removed
18826         unneeded code in mono_thread_attach().
18827
18828 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18829
18830         * image.c (mono_image_loaded_by_guid): a method to get loaded
18831         images by guid. 
18832         (load_metadata_ptrs): we store the guid as string.
18833
18834 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18835
18836         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18837
18838         * metadata.c (mono_guid_to_string): imported method form Zoltan
18839         Varga (slightly modified)
18840
18841         * assembly.c (mono_assembly_open): load precompiled code
18842
18843         * loader.h (MonoMethod): we store the method token for use in the
18844         aot compiler. 
18845
18846 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18847
18848         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18849         the hook function called when an assembly is loaded.
18850         
18851         * domain.c: Modified file.
18852         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18853
18854         Fixes bug #33196.
18855
18856 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18857
18858         * reflection.c: Map PEFileKind to the value expected by the WinNT
18859         image loader. 
18860
18861 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18862
18863         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18864         Read until the buffer is filled completely.
18865
18866 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18867
18868         * icall.c: implemented MonoType.InternalGetEvent ().
18869
18870 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18871
18872         * appdomain.c: implemented InitAppDomainSetup. Delayed
18873         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18874         the entry_assembly.
18875
18876         * assembly.c: base_dir is now an absolute path ending with
18877         G_DIR_SEPARATOR.
18878
18879         * icall.c: modified get_location according to the above changes.
18880
18881         * object.c: init AppDomain.SetupInformation for the default domain after
18882         we have the entry assembly.
18883
18884         * domain.c: when unloading a domain, setup = NULL.
18885
18886 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18887
18888         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18889
18890 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18891
18892         * object.h, object.c: introduced mono_object_get_virtual_method ()
18893         to lookup the method invoked on an object when a callvirt is done on
18894         a method.
18895         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18896
18897 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18898
18899         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18900         current domain when loaded an assembly and failed to load it.
18901
18902         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18903
18904 2002-10-31  Dick Porter  <dick@ximian.com>
18905
18906         * icall.c: 
18907         * file-io.h: 
18908         * file-io.c: Return the error status in a parameter, as the
18909         GetLastError() value has long since been blown away if we try and
18910         look it up in a subsequent internal call invocation.  Delete the
18911         GetLastError() internal call, because it's useless.
18912
18913 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18914
18915         * class.[ch]: added cast_class to fix bug 29517
18916
18917 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18918
18919         * marshal.c: create valid IL code in the filter clause:
18920         the new JIT is less forgiving:-)
18921
18922 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18923
18924         * icall.c: removed get_property internal call.
18925
18926 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18927
18928         * appdomain.h domain.c: Added an ID to appdomains.
18929         
18930         * threads.c threads.h icall.c: Implement icall
18931         Thread:GetDomainID(), and remove unused icall 
18932         CurrentThreadDomain_internal.
18933
18934 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18935
18936         * icall.c: Don't recurse through the base types in GetConstructor.
18937         Fixes bug #32063. 
18938
18939 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18940
18941         * mempool.h, mempool.c: added mono_mempool_empty() and
18942         mono_mempool_stats().
18943
18944 2002-10-23  Dick Porter  <dick@ximian.com>
18945
18946         * file-io.c: 
18947         * file-io.h: 
18948         * icall.c: Added MonoIO.GetFileType internal call
18949
18950 2002-10-17  Dick Porter  <dick@ximian.com>
18951
18952         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18953         delegate semaphore before waiting for all threads to finish,
18954         because new threads can also call async delegates.  Fixes bug
18955         32004.
18956
18957         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18958         of 3 seconds, in case another async job is queued.  (This part is
18959         needed because the bug fix reintroduced the 3s exit lag.)  This
18960         makes the mono_runtime_shutdown flag superfluous.
18961
18962 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18963
18964         * reflection.c: include ehader size in method section headers.
18965         Really check for suplicated modules entries.
18966
18967 2002-10-17  Martin Baulig  <martin@gnome.org>
18968
18969         * debug-mono-symfile.c: Added back support for locals.
18970
18971 2002-10-14  Martin Baulig  <martin@gnome.org>
18972
18973         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18974         MONO_TYPE_VOID.
18975
18976 2002-10-14  Martin Baulig  <martin@gnome.org>
18977
18978         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18979         mono_class_get() instead of looking in the class cache. 
18980
18981 2002-10-13  Martin Baulig  <martin@gnome.org>
18982
18983         * debug-mono-symfile.c: Set version number to 28, include the
18984         signature in method names.
18985
18986 2002-10-13  Martin Baulig  <martin@gnome.org>
18987
18988         * debug-mono-symfile.h: Set version number to 27.
18989
18990 2002-10-11  Martin Baulig  <martin@gnome.org>
18991
18992         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18993
18994 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18995
18996         * metadata.c, metadata.h: added helper function to allocate signatures.
18997
18998 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18999
19000         * icall.c: added internal call to get the location of machine.config.
19001
19002 2002-10-08  Martin Baulig  <martin@gnome.org>
19003
19004         * debug-mono-symfile.c: Ignore classes with a pending init for the
19005         moment.
19006
19007 2002-10-03  Dick Porter  <dick@ximian.com>
19008
19009         * threads.c: Freebsd pthread_t is a pointer
19010
19011 2002-10-03  Dick Porter  <dick@ximian.com>
19012
19013         * socket-io.c: Implemented GetHostName_internal
19014
19015 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19016
19017         * mono-config.c:
19018         (mono_config_parse_file): don't leak the text.
19019
19020 2002-10-02  Martin Baulig  <martin@gnome.org>
19021
19022         * debug-mono-symfile.c: Added support for methods.
19023
19024 2002-10-01  Martin Baulig  <martin@gnome.org>
19025
19026         * debug-mono-symfile.c: Don't emit methods and line numbers for
19027         the dynamic symbol file, just write the type table.  We can easily
19028         have an external helper program which creates a symbol file for an
19029         IL file.        
19030
19031 2002-10-01  Dick Porter  <dick@ximian.com>
19032
19033         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19034         Only add the handle to the cleanup array when we're about to
19035         launch the thread.  Bug 31425 deadlocked when the test was run on
19036         mono under w32.
19037
19038 2002-10-01  Martin Baulig  <martin@gnome.org>
19039
19040         * debug-mono-symfile.c: Added support for properties.
19041
19042 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19043
19044         * reflection.c: unaligned store fix from Mark Crichton
19045         <crichton@gimp.org>.
19046
19047 2002-09-27  Martin Baulig  <martin@gnome.org>
19048
19049         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19050         New interncall.
19051
19052 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19053
19054         * assembly.h, assembly.c: use a sane API to hook into the assembly
19055         loading process instead of a useless special-purpouse hack
19056         (ngen needs a hook, too, for example).
19057
19058 2002-09-27  Dick Porter  <dick@ximian.com>
19059
19060         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19061         io-layer can set up some process handle info.  Not needed on w32,
19062         but doesn't hurt either.
19063
19064         * process.c: Pass the program name in the second parameter to
19065         CreateProcess, so the path is searched.  Include the working
19066         directory. Implemented process name, process enumeration, and some
19067         process detail internal calls.
19068         
19069         * icall.c: Added internal calls for process lookup, and some
19070         process details
19071
19072 2002-09-26  Martin Baulig  <martin@gnome.org>
19073
19074         * assembly.c (mono_install_open_assembly_hook): New global
19075         function to install a function to be invoked each time a new
19076         assembly is loaded.
19077         (mono_assembly_open): Run this callback function if set.
19078
19079         * debug-mono-symfile.c: Put back line numbers for the dynamic
19080         symbol file and also record the .il file as source file.  This
19081         allows us to install the temporary symbol file as `file.dbg' just
19082         like a compiler-generated one.
19083
19084 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19085
19086         * Corrected typo in gc.c (BOHEM vs BOEHM).
19087
19088 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19089
19090         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19091         GetProperties. Also avoid calling g_slist_length in GetProperties and
19092         GetMethods.
19093
19094 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19095
19096         * reflection.c: avoid unaligned stores (bug spotted by
19097         Mark Crichton  <crichton@gimp.org>).
19098
19099 2002-09-25  Martin Baulig  <martin@gnome.org>
19100
19101         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19102         instead of guint64 for addresses and added prologue/epilogue info.
19103
19104 2002-09-25  Martin Baulig  <martin@gnome.org>
19105
19106         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19107         store line number info.  For the dynamic symbol file, we only need
19108         to provide the JIT generated dynamic line number info for the dynamic
19109         symbol file.
19110
19111 2002-09-25  Martin Baulig  <martin@gnome.org>
19112
19113         * debug-mono-symfile.h: Incremented version number.
19114
19115 2002-09-24  Martin Baulig  <martin@gnome.org>
19116
19117         * class.c (mono_debugger_class_init_func): New global function
19118         pointer variable.
19119         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19120         call it.
19121
19122         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19123         function.  This is called via the mono_debugger_class_init_func
19124         hook to add all types to the dynamic type table.
19125         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19126         from its metadata token.
19127
19128         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19129         New interncall for the debugger.
19130
19131 2002-09-24  Nick Drochak <ndrochak@gol.com>
19132
19133         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19134         before using it in case it is null.
19135         
19136 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19137
19138         * metadata.c: allow custom modifiers in local var signatures
19139         (bug spotted by Zoltan Varga).
19140
19141 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19142
19143         * class.c: deal with the <Module> class that may have a NULL vtable.
19144         Eliminate warnings.
19145
19146 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19147
19148         * image.c, image.h: more strong name helpers.
19149         * monosn.c: more work: convert pem keys to cryptoapi format.
19150
19151 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19152
19153         * string-icalls.c: speedup IndexOf.
19154
19155 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19156
19157         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19158
19159 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19160
19161         * icall.c: cleanup: use mono_object_domain ().
19162
19163 2002-09-23  Martin Baulig  <martin@gnome.org>
19164
19165         * debug-mono-symfile.c: Improved type support.
19166
19167 2002-09-22  Martin Baulig  <martin@gnome.org>
19168
19169         * debug-mono-symfile.c: Added support for reference types and strings.
19170
19171 2002-09-22  Martin Baulig  <martin@gnome.org>
19172
19173         * debug-mono-symfile.c: Started to work on the type table.
19174
19175 2002-09-21  Martin Baulig  <martin@gnome.org>
19176
19177         * debug-mono-symfile.c: Largely reworked the symbol table format.
19178         The symbol table is now incrementally updated each time a new
19179         method is added.  We're now also using our own magic and version
19180         so that you don't need to recompile all your classes if the
19181         dynamic table changes.
19182         (mono_debug_update_mono_symbol_file): Removed.
19183         (mono_debug_symfile_add_method): New function to add a method.
19184
19185 2002-09-21  Martin Baulig  <martin@gnome.org>
19186
19187         * icall.c
19188         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19189         New interncall.
19190
19191         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19192         New interncall to get a method from its metadata token.
19193
19194 2002-09-21  Martin Baulig  <martin@gnome.org>
19195
19196         * debug-mono-symfile.c: Create type table.
19197
19198 2002-09-20  Martin Baulig  <martin@gnome.org>
19199
19200         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19201
19202 2002-09-20  Martin Baulig  <martin@gnome.org>
19203
19204         * debug-mono-symfile.c: Provide information about params and locals.
19205
19206 2002-09-20  Martin Baulig  <martin@gnome.org>
19207
19208         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19209         New interncall.
19210
19211         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19212         interncall to get a method from its metadata token.
19213
19214 2002-09-20  Martin Baulig  <martin@gnome.org>
19215
19216         * debug-mono-symfile.c: Added a few checks for method->header
19217         being non-NULL.  This should never happen, but for the moment
19218         let's use a g_warning() rather than a g_assert().
19219
19220 2002-09-19  Mark Crichton  <crichton@gimp.org>
19221
19222         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19223         even if support for it isn't present.  Added an #ifdef to fix this.
19224
19225         * socket-io.c: Added checks back for Solaris support.
19226
19227 2002-09-19  Martin Baulig  <martin@gnome.org>
19228
19229         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19230         changes in the symbol file format.
19231
19232 2002-09-18  Martin Baulig  <martin@gnome.org>
19233
19234         * debug-mono-symfile.c: Set version number to 21.
19235
19236 2002-09-18  Dick Porter  <dick@ximian.com>
19237
19238         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19239         on netbsd.  Fixes bug 30051.
19240
19241 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19242
19243         * reflection.c:
19244         (set_version_from_string): little fix.
19245
19246 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19247
19248         * monosn.c, Makefile.am: added strong name utility.
19249         * reflection.h, reflection.c: implemented delayed signing,
19250         locale, version and hash id assembly attributes.
19251
19252 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19253
19254         * loader.c, metadata.c: load param attributes in signatures.
19255
19256 2002-09-16  Martin Baulig  <martin@gnome.org>
19257
19258         * debug-mono-symfile.c: Added string table with all method names.
19259
19260 2002-09-14  Martin Baulig  <martin@gnome.org>
19261
19262         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19263         fast method lookup.
19264
19265 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19266
19267         * reflection.c: record the public key token of referenced assemblies.
19268
19269 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19270
19271         * image.c, image.h: added functions to get the strong name and the
19272         public key of an assembly.
19273         * pedump.c: use them.
19274
19275 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19276
19277         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19278
19279 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19280
19281         * marshal.c (mono_marshal_get_managed_wrapper): Added
19282         MONO_TYPE_BOOLEAN 
19283
19284 2002-09-11  Martin Baulig  <martin@gnome.org>
19285
19286         * gc.c: Call GC_unregister_disappearing_link() on all links when
19287         finalizing them, this is necessary to aviod a crash in boehm's
19288         finalize handler.
19289
19290 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19291
19292         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19293         nick@chemlab.org.
19294
19295 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19296
19297         * icall.c: implemented MonoType::Module.
19298         * reflection.c, reflection.h: mono_module_get_object () from
19299         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19300
19301 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19302
19303         * icall.c: ignore overridden methods in GetMethods ().
19304         Fix for FieldInfo::SetValue().
19305         * object.c: handle float/double in runtime invoke.
19306
19307 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19308
19309         * object.c: allow a constructor to be called again on an object.
19310
19311 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19312
19313         * class.h, class.c: move field layout code to it's own function and
19314         export it. Get an interface id earlier. Move fields in MonoClass
19315         so they are more cache friendly and align the bitfields.
19316         * loader.c: temporary handle get_param_names() for a runtime method.
19317         * reflection.c, reflection.h: more code to handle runtime creation of
19318         types.
19319
19320 2002-09-09  Martin Baulig  <martin@gnome.org>
19321
19322         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19323         signature with the pinvoke field being set for the actual call.
19324
19325 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19326
19327         * icall.c: removed some unused icalls. Start of map of glib charsets
19328         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19329
19330 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19331
19332         * debug-helpers.c: break infinite loop (found and fixed by
19333         Holger Arnold <harnold@gmx.de>).
19334
19335 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19336
19337         * icall.c: target may be null in create_delegate.
19338
19339 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19340
19341         * marshal.c: handle a boolean return type.
19342
19343 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19344
19345         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19346
19347 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19348
19349         * gc.c: fix weakreferences.
19350
19351 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19352
19353         * icall.c: added icall to get default codepage.
19354
19355 2002-09-03  Dick Porter  <dick@ximian.com>
19356
19357         * threads.h: 
19358         * threads.c: Use MonoThread instead of MonoObject where
19359         apropriate.
19360
19361         Store running thread objects in a hash table, so that we have all
19362         the info to hand when waiting for them to finish
19363         (means we don't need OpenThread() any more, so mingw builds should
19364         be fully functional again.)
19365
19366         * verify.c:
19367         * object.h: Added thread ID to MonoThread
19368
19369 2002-09-03  Martin Baulig  <martin@gnome.org>
19370
19371         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19372
19373 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19374
19375         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19376
19377 2002-09-03  Martin Baulig  <martin@gnome.org>
19378
19379         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19380         argument to store the end address of the disassembled instruction.
19381
19382         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19383         here from debug-symfile.h.
19384         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19385         JIT into this struct.
19386         (MonoSymbolFile): Added `char *image_file' field.
19387         (MonoDebugGetMethodFunc): Removed.
19388         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19389         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19390         (mono_debug_find_method): New method.
19391
19392         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19393         create a full symbol file.
19394         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19395         and static symbol files.
19396         (mono_debug_find_method): The symbol file keeps an internal method hash,
19397         call this to get a MonoDebugMethodInfo from a MonoMethod.
19398
19399         * debug-symfile.[ch]: Removed.
19400
19401 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19402
19403         * image.c (do_mono_image_open): Remove linker version check.
19404
19405 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19406
19407         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19408         wrappers for instance methods.
19409         
19410 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19411
19412         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19413
19414 2002-08-28  Dick Porter  <dick@ximian.com>
19415
19416         * Makefile.am: Export HOST_CC for w32 builds
19417
19418 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19419
19420         * file-io.c process.c: MonoString are null terminated, no
19421         need for mono_string_to_utf16() anymore.
19422
19423 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19424
19425         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19426
19427 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19428
19429         * icall.c, reflection.h: speedup System.MonoType.
19430
19431 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19432
19433         * reflection.c: allow null as the value of a string argument in
19434         custom attributes constructors.
19435
19436 2002-08-27  Martin Baulig  <martin@gnome.org>
19437
19438         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19439         `trampoline_address' field.
19440
19441 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19442
19443         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19444         check (fixes bug #29486) 
19445
19446 2002-08-27  Martin Baulig  <martin@gnome.org>
19447
19448         * debug-mono-symfile.c: Changed the file format in a way that allows us
19449         open it read-only and to use a specially malloced area for all the
19450         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19451         debugging IL code and there is no MCS generated symbol file for it.
19452
19453 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19454
19455         * object.c: added a define for a good string and array
19456         creation speedup (not enabled by default because we need to deal with
19457         the synch stuff).
19458
19459 2002-08-26  Martin Baulig  <martin@gnome.org>
19460
19461         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19462         function to create a dynamic symbol file.  This is used by the
19463         debugger to create a symbol file for IL code on-the-fly.
19464
19465 2002-08-26  Martin Baulig  <martin@gnome.org>
19466
19467         * loader.c (mono_lookup_pinvoke_call): Include the error message
19468         from g_module_error() in the error message.
19469
19470 2002-08-24  Martin Baulig  <martin@gnome.org>
19471
19472         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19473         function to update the symbol file.  The symbol file is mmap()ed
19474         writable, but private.  This allows us to install the symbol file
19475         together with the assembly.
19476
19477 2002-08-24  Martin Baulig  <martin@gnome.org>
19478
19479         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19480         but they can read the new symbol file format which mcs is now creating.
19481
19482         * debug-symfile.c (mono_debug_find_source_location): Moved to
19483         debug-mono-symfile.c; this is now operating on the new symbol file.
19484
19485 2002-08-23  Martin Baulig  <martin@gnome.org>
19486
19487         * debug-helpers.c (mono_method_desc_from_method): New function to get
19488         a MonoMethodDesc from a MonoMethod.
19489
19490 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19491
19492         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19493         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19494
19495 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19496
19497         * string-icalls.[ch]: make helper methods static.
19498
19499 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19500
19501         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19502         types to it and to SetValueInternal.
19503
19504         * object.c: Moved handle_enum label to its proper place. This was the
19505         f... bug! ;-)
19506
19507         This time i compiled mcs and gtk-sharp and they both work.
19508
19509 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19510
19511         * icall.c: reverted partially my previous patch until 
19512         object.c:set_value handles enums correcly.
19513
19514 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19515
19516         * icall.c:
19517         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19518         (ves_icall_System_Environment_get_MachineName): removed warning when
19519         compiling under cygwin.
19520
19521 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19522
19523         * object.c: fixed field_get_value() for reference types.
19524
19525 2002-08-22  Dick Porter  <dick@ximian.com>
19526
19527         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19528         Don't free a buffer while it's still needed.  Patch from Jonathan
19529         Liger <Jonathan.liger@wanadoo.fr>
19530
19531 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19532
19533         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19534         internal call.
19535
19536 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19537
19538         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19539         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19540
19541         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19542         we call unmanaged code which throws exceptions.
19543
19544 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19545
19546         * appdomain.h: added per-domain entry_assembly.
19547         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19548         arguments.
19549         * icall.c: Assembly::GetEntryAssembly icall.
19550         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19551         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19552
19553 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19554
19555         * appdomain.h, gc.c: added mono_domain_finalize ().
19556
19557 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19558
19559         * object.c:
19560         (mono_print_unhandled_exception): changed g_warning by g_printerr
19561         because g_log has a 1024 characters limit (yeah, i got a big stack
19562         trace). Don't print exception name, that should be in ToString 
19563         returned string.
19564
19565 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19566
19567         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19568         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19569
19570 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19571
19572         * object.c:
19573         (mono_print_unhandled_exception): after previous commit, i realized
19574         that MS calls ToString on the exception. I changed this function to
19575         do that. This way we get stack_trace for free.
19576
19577 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19578
19579         * object.c:
19580         (mono_print_unhandled_exception): invoke Message property instead of
19581         getting 'message' field from Exception. Don't allocate memory for
19582         'trace' and 'message' if not needed.
19583
19584 2002-08-18  Dick Porter  <dick@ximian.com>
19585
19586         * unicode.c: Fix asserts to match Encoder.cs checks
19587
19588 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19589
19590         * marshal.c: fix unaligned store issue and a few wrong
19591         opcode argument types.
19592
19593 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19594
19595         * icall.c: added GetUninitializedObjectInternal internal call.
19596
19597 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19598
19599         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19600         to the right domain.
19601
19602 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19603
19604         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19605
19606         * class.c (class_compute_field_layout): set blittable to false for Strings
19607
19608         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19609
19610 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19611
19612         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19613         first chunk of code to create types at runtime. Code to
19614         handle ReflectedType/DeclaringType. Make reflection handles
19615         domain specific.
19616
19617 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19618
19619         * class.c: set correct name in arrays.
19620
19621 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19622
19623         * appdomain.c (mono_domain_transfer_object): make it work with
19624         valuetypes. bug fixes.
19625
19626 2002-08-12  Dick Porter  <dick@ximian.com>
19627
19628         * object.h: Rename some parameters to avoid c++ keywords (Patch
19629         from Joseph Wenninger <kde@jowenn.at>)
19630
19631 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19632
19633         * icall.c: added icall to implement Assembly.GetFile*.
19634
19635 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19636
19637         * reflection.h, reflection.c: code to embed managed resources.
19638
19639 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19640
19641         * class.c: move all the type size stuff into
19642         class_compute_field_layout().
19643
19644 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19645
19646         * class.c: ensure enums have always the correct instance size.
19647         * unicode.c: remove wrong assert.
19648
19649 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19650
19651         * assembly.c: fix mem corruption issue.
19652         * image.h, image.c: added mono_image_get_resource () to access
19653         managed resources.
19654         * icall.c: implemented Assembly.EntryPoint property and some
19655         Managed Resources related internalcalls.
19656
19657
19658 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19659
19660         * image.c, image.h: impemented mono_image_get_entry_point ().
19661         * appdomain.c: use mono_image_get_entry_point.
19662
19663 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19664
19665         * reflection.c: support the object type argument when loading
19666         custom attributes.
19667
19668 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19669
19670         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19671         String as return type.
19672
19673 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19674
19675         * reflection.c: fix encoding of named args for custom attrs to match
19676         the ms implementation. Read them back when instantiating custom
19677         attributes.
19678
19679 2002-08-02  Radek Doulik  <rodo@ximian.com>
19680
19681         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19682         by Dietmar as quick fix
19683         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19684         16 as stack size, used on more places as quick fix before Dietmar
19685         will fix it properly
19686
19687 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19688
19689         * object.h, object.c: added accessors for fields and properties.
19690
19691 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19692
19693         * class.c, class.h: made mono_class_get_field_from_name ()
19694         loop on parent types.
19695         Added mono_class_get_property_from_name ().
19696
19697 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19698
19699         * class.c, class.h: move the code to setup the type vtable in its own
19700         function so that it can be reused also for types created at runtime.
19701         Eliminate the "class" identifier from the header file.
19702         * reflection.c: setup the vtable for enums so that we can create
19703         objects for use in SetConstant ().
19704
19705 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19706
19707         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19708         instead of the delegate itself as this pointer (bug #28383)
19709
19710 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19711
19712         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19713         conversions.
19714
19715 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19716
19717         * loader.c: don't set the pinvoke bit on icalls.
19718
19719 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19720
19721         * debug-helpers.c (mono_method_full_name): only print a number to
19722         indicate wrapper type (so that the output is more readable in traces).
19723
19724 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19725
19726         * class.c (mono_class_init): include method override patch from Paolo
19727
19728 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19729
19730         * icall.c: fixed GetTypeCode().
19731
19732 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19733
19734         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19735         use real delegate invoke function to make it work with multicast
19736         delegates (fix bug# 28291).
19737
19738 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19739
19740         * object.c: load constant strings.
19741
19742 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19743
19744         * reflection.c: no magic numbers.
19745         * tabledefs.h: security action enum.
19746
19747 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19748
19749         * assembly.c: fix possible memory corruption.
19750
19751 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19752
19753         * reflection.h, reflection.c: added support for linking resources.
19754         * verify.c: check we have an updated corlib.
19755
19756 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19757
19758         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19759         string arrays.
19760         (mono_marshal_string_array): null terminate unmanaged string arrays.
19761         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19762
19763 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19764
19765         * icall.c: Type.GetType () can now return also types from the
19766         calling assembly.
19767
19768 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19769
19770         * loader.h, loader.c: stack walking support.
19771         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19772         GetCallingAssembly.
19773
19774 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19775
19776         * marshal.c: added optimisations for blittable types 
19777
19778         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19779         (mono_class_setup_mono_type): set blittable attribute for single
19780         and double.
19781
19782         * marshal.c (mono_string_utf8_to_builder): impl.
19783         (mono_string_builder_to_utf8): impl.
19784         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19785
19786 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19787
19788         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19789         (mono_marshal_get_managed_wrapper): impl. byref types
19790
19791 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19792
19793         * icall.c:
19794         (search_method): don't display debug message. 
19795
19796 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19797
19798         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19799
19800 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19801
19802         * appdomain.c: set the missing filename when throwing exception.
19803
19804 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19805
19806         * metadata.c (mono_type_size): code cleanup
19807         (mono_type_stack_size): removed some test code
19808
19809 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19810
19811         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19812         mono_get_exception_file_not_found now.
19813
19814         * exception.c (mono_exception_from_name_two_strings): New version
19815         that will call a constructor with two string arguments. 
19816         (mono_get_exception_file_not_found): New helper routine, used to
19817         report file-not-found errors.
19818
19819 2002-07-20  Dick Porter  <dick@ximian.com>
19820
19821         * process.h:
19822         * process.c: Pass file handles to CreateProcess
19823         
19824         * icall.c:
19825         * file-io.h:
19826         * file-io.c: Implemented CreatePipe
19827
19828 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19829
19830         * metadata.c (mono_get_param_info): set alignment for value types
19831
19832 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19833
19834         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19835         Constify mono_domain_assembly_open().
19836         * loader.c: handle null namespace in icalls.
19837
19838 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19839
19840         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19841         (emit_str_to_ptr_conv): marshal object as structs
19842
19843         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19844
19845         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19846
19847 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19848
19849         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19850         (mono_marshal_get_native_wrapper): we an now return value types
19851
19852 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19853
19854         * verify.c: more checks implemented.
19855
19856 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19857
19858         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19859         (fix bug #27695)
19860         (mono_marshal_get_native_wrapper): allow byref arguments
19861         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19862         impl. PtrToStringXXX methods
19863         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19864         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19865         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19866         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19867         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19868
19869 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19870
19871         * reflection.c: fix buglet in parsing an assembly name.
19872
19873 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19874
19875         * marshal.c (emit_ptr_to_str_conv): first impl.
19876
19877 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19878
19879         * object.c, class.h: cache the vtable in the class as suggested by
19880         vargaz@freemail.hu (Zoltan Varga).
19881
19882 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19883
19884         * class.h, loader.c: added mono_field_from_token().
19885         * verify.c: first cut of type checking code.
19886
19887 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19888
19889         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19890
19891 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19892
19893         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19894         (fix bug #27782)
19895         (mono_marshal_get_remoting_invoke): impl.
19896         (mono_delegate_begin_invoke): impl.
19897         (mono_mb_emit_save_args): impl.
19898         (mono_delegate_end_invoke): impl.
19899         (mono_marshal_get_delegate_begin_invoke):
19900         (mono_marshal_get_delegate_end_invoke):
19901         (mono_marshal_get_delegate_invoke): generate a special name for
19902         those methods (including the signature) and associate them whith
19903         the delegate class. 
19904
19905 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19906
19907         * reflection.[ch]: 
19908         (mono_reflection_type_from_name): now it has a MonoImage parameter
19909         which is used as the default image to search the type in. If the image
19910         is NULL or getting the type from it fails, it defaults to corlib.
19911
19912         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19913         new parameter.
19914
19915 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19916
19917         * reflection.c: update the parameter table index.
19918
19919 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19920
19921         * domain.c: don't include the mark byte in the string hash.
19922
19923 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19924
19925         * icall.cs: icall for Type.GetTypeCode ().
19926         * verify: a couple of fixes and disabled local initialization checks.
19927
19928 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19929
19930         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19931
19932         * debug-helpers.c (mono_method_full_name): print the type of the
19933         runtime wrapper
19934
19935         * metadata.c (mono_signature_hash): a hash function for signatures
19936         (mono_signature_hash): better hash algorithm
19937
19938         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19939
19940         * debug-helpers.c (mono_method_full_name): this can now generate
19941         method names with signatures
19942
19943         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19944         method dont have this pointers.
19945
19946 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19947
19948         * reflection.c: fixup typebuilder tokens.
19949         * image.c: fix buglet.
19950         * marshal.h: remove whitespace.
19951         * metadata.h, metadata.c: reinstate code that was removed.
19952         * verify.c: handle catch directives and fix another couple of bugs.
19953
19954 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19955
19956         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19957         (mono_marshal_get_native_wrapper): make it comp. with the old code
19958         (mono_marshal_get_native_wrapper): support boolean
19959         (mono_marshal_get_managed_wrapper): support more types
19960
19961 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19962
19963         * class.c (class_compute_field_layout): compute class->blittable attribute.
19964
19965 2002-07-09  Dick Porter  <dick@ximian.com>
19966
19967         * threads.c: Make the thread cleaning up cope with threads that
19968         call ExitThread()
19969
19970 2002-07-08  Radek Doulik  <rodo@ximian.com>
19971
19972         * reflection.c (method_encode_code): use non-translated values to
19973         compute finally_start, this fixes exception handling on ppc, yay!
19974
19975         * decimal.h (struct signscale): fix endianess
19976
19977 2002-07-07  Radek Doulik  <rodo@ximian.com>
19978
19979         * reflection.c: swap box_val and not val
19980
19981 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19982
19983         * reflection.c, reflection.h: handle full assembly info in type name.
19984         Handle Type arguments when loading custom attributes.
19985         * icall.c: updated to use new mono_reflection_type_from_name () method.
19986
19987 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19988
19989         * loader.c:
19990         (method_from_memberref): also print assembly name when method not found.
19991
19992 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19993
19994         * icall.c:
19995         (ves_icall_TypeGetProperties): fixed bug #27473. 
19996
19997 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19998
19999         * reflection.c: display image name and token when cannot find the
20000         .ctor for an attribute.
20001
20002 2002-07-05  Martin Baulig  <martin@gnome.org>
20003
20004         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20005
20006 2002-07-04  Dick Porter  <dick@ximian.com>
20007
20008         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20009         compile on mingw.  This will cause mingw builds to not wait for
20010         subthreads to terminate after the main thread does.  I've lodged a
20011         bug with the mingw developers for them to wrap OpenThread().
20012
20013 2002-07-03  Dick Porter  <dick@ximian.com>
20014
20015         * threads.c: Store thread IDs instead of handles, because
20016         GetCurrentThread() returns a pseudohandle and therefore stores
20017         useless values.  mono_thread_cleanup() continues checking the
20018         array of threads until it is empty, to cope with subthreads
20019         spawning new threads after the main thread has finished.
20020
20021         * profiler.h:
20022         * profiler.c:
20023         * profiler-private.h: Pass the thread ID to thread profiler
20024         functions, instead of a handle
20025
20026 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20027
20028         * verify.c: fixes to make it more usable.
20029         * pedump.c: added --verify code to verify IL code in an assembly.
20030
20031 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20032
20033         * reflection.c: turn errors into warnings to allow compiling corlib.
20034
20035 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20036
20037         * reflection.c: add special cases to compile corlib.
20038
20039 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20040
20041         * reflection.c: handle properties with only a set method.
20042
20043 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20044
20045         * opcodes.h: add enum with opcodes in opval order.
20046
20047 2002-07-01  Dick Porter  <dick@ximian.com>
20048         
20049         * object.h:
20050         * object.c (mono_runtime_run_main): Removed unneeded argument
20051
20052 2002-06-28  Martin Baulig  <martin@gnome.org>
20053
20054         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20055
20056 2002-06-27  Dick Porter  <dick@ximian.com>
20057
20058         * threads.c: Store the handle in both the parent thread and in the
20059         subthread, to minimise the time between starting a new thread and
20060         storing its ID.
20061
20062 2002-06-26  Dick Porter  <dick@ximian.com>
20063
20064         * appdomain.c (mono_runtime_cleanup): Close the socket library
20065         after all the threads have finished, not before
20066
20067 2002-06-26  Martin Baulig  <martin@gnome.org>
20068
20069         * debug-symfile.c (mono_debug_find_source_location): Added
20070         `guint32 *line_number' argument.  If it's not NULL, store the line number
20071         there and return the file name without the line number.
20072
20073 2002-06-25  Dick Porter  <dick@ximian.com>
20074
20075         * icall.c:
20076         * process.h:
20077         * process.c: Process forking and other support functions
20078
20079 2002-06-25  Dick Porter  <dick@ximian.com>
20080
20081         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20082         things dont happen when the image is closed.
20083         (mono_image_lookup_resource): Walk the resource section looking
20084         for a particular entry
20085
20086         * cil-coff.h: PE resource section decoding
20087
20088 2002-06-25  Dick Porter  <dick@ximian.com>
20089         
20090         * assembly.h:
20091         * assembly.c: 
20092         (mono_assembly_foreach): Accessor functions to walk the list of
20093         loaded assemblies
20094         (mono_assembly_set_main):
20095         (mono_assembly_get_main): Process methods need to know which
20096         assembly is the "main" one
20097
20098         * object.c (mono_runtime_run_main): Record the main assembly
20099
20100         * debug-helpers.c: Fix typo
20101
20102 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20103
20104         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20105         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20106
20107 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20108
20109         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20110
20111 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20112
20113         * image.c (do_mono_image_open): Initialize reference count,
20114         otherwise we leak the MonoImage.
20115
20116 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20117
20118         * reflection.c: small tweak to handle self-hosting.
20119
20120 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20121
20122         * reflection.c: fix type name parse code.
20123
20124 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20125
20126         * reflection.c: break out of the loop.
20127         * image.c: special case corlib.
20128
20129 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20130
20131         * reflection.c: add all the custom attrs at the end to ensure the
20132         ctors have been properly initialized when the attributes are defined
20133         in the current assembly.
20134
20135 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20136
20137         * reflection.c: handle correctly multiple-nested types.
20138
20139 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20140
20141         * row-indexes.h: fix typos.
20142         * reflection.c: adjust for typos and fix method_def_or_ref
20143         encoding in MethodImpl table.
20144
20145 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20146
20147         * reflection.c: fix entry point patching (thanks Serge!).
20148
20149 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20150
20151         * verify.c: add check for System.Exception
20152
20153 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20154
20155         * image.c, class.c: minifix for code just c&p'ed.
20156         * reflection.c: warning fix.
20157         * object.h, loader.h, domain.c: load also StringBuilder.
20158
20159 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20160
20161         * marshal.h, marshal.c: some support code to handle complex marshaling.
20162
20163 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20164
20165         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20166         Better signatures with vtable error dump.
20167
20168 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20169
20170         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20171
20172 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20173
20174         * icall.c (ves_icall_Type_GetField): impl.
20175
20176 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20177
20178         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20179         to retrieve a marshal description blob for a field or param.
20180
20181 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20182
20183         * reflection.h, reflection.c: change order of nested type emission
20184         to avoid table corruption. The NestedTypes table is sorted.
20185         * icall.c: change order of GetConstructor results to workaround mcs bug.
20186
20187 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20188
20189         * reflection.h, reflection.c: handle field and param marshal
20190         information.
20191
20192 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20193
20194         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20195
20196 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20197
20198         * reflection.c: fix call convention.
20199
20200 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20201
20202         * reflection.h, reflection.c: mono_image_get_memberref_token()
20203         takes a type instead of a class, now. Added
20204         mono_image_get_array_token() to create tokens for the special
20205         multi-dim array methods.
20206
20207 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20208
20209         * assembly.c: handle modules (no assembly table). Split
20210         loading references in its own function.
20211         * class.c: handle moduleref resolution scope.
20212         * image.c, image.h: cache module name in image.
20213
20214 2002-06-07  Martin Baulig  <martin@gnome.org>
20215
20216         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20217         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20218
20219 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20220
20221         * icall.c: more signature fixes that used uint instead of int.
20222
20223 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20224
20225         * reflection.c: fixed signature of field refs.
20226
20227 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20228
20229         * class.c, reflection.c: handle typerefs of nested types
20230         (both on read and when writing files).
20231
20232 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20233
20234         * icall.c: fix method signatures that tried to workaround the previous
20235         typo, d'oh!
20236
20237 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20238
20239         * debug-helpers.c: fix typo.
20240
20241 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20242
20243         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20244         rewrote the PE/COFF writing code (our programs are understood by the
20245         ms runtime, now).
20246
20247 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20248
20249         * gc.c, gc.h, icall.c: weakreference support.
20250
20251 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20252
20253         * Makefile.am, mono-config.c: use $(sysconfdir).
20254
20255 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20256
20257         * icall.c: changed default precision of Double.ToString() to 15.
20258         Fixed memory leak. Unified with Single.ToString.
20259
20260 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20261
20262         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20263
20264 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20265
20266         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20267         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20268         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20269         and myself.
20270
20271 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20272
20273         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20274
20275 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20276
20277         * reflection.c, socket-io.c: more compilation fixes.
20278
20279 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20280
20281         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20282         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20283         unicode.c: warning and compiler compatibility fixes.
20284
20285 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20286
20287         * class.h, metadata.c: fixed warnings/compilation errors.
20288
20289 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20290
20291         * Makefile.am, mono-config.c, mono-config.h: configuration file
20292         support routines.
20293         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20294         config file. Export methods to insert and lookup mappings.
20295
20296 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20297
20298         * reflection.c: handle types and boxed objects in custom attr
20299         constructors.
20300
20301 2002-05-30  Martin Baulig  <martin@gnome.org>
20302
20303         * debug-symfile.c
20304         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20305
20306 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20307
20308         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20309         to lookup the implmap row for a P/Invoke method.
20310         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20311         P/Invoke method from the runtime on an as needed basis.
20312
20313 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20314
20315         * metadata.c (mono_metadata_parse_signature): impl.
20316
20317 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20318
20319         * class.c: handle .pack directive.
20320
20321 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20322
20323         * object.c: initialize static fields with RVA data.
20324
20325 2002-05-25  Martin Baulig  <martin@gnome.org>
20326
20327         * debug-symfile.c
20328         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20329
20330 2002-05-24  Martin Baulig  <martin@gnome.org>
20331
20332         * debug-symfile.c
20333         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20334         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20335         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20336
20337 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20338
20339         * object.c: special case string ctros in invoke.
20340         * gc.c: silly whitespace changes.
20341
20342 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20343
20344         * threadpool.[ch]: impl. a threadpool that can
20345         be used by mint and mono.
20346
20347 2002-05-22  Martin Baulig  <martin@gnome.org>
20348
20349         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20350         The first argument is now a `MonoReflectionModuleBuilder *', the return
20351         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20352         `methods' field to get the method builder.  The `token' argument is the
20353         unfixed token.
20354
20355         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20356         invalid characters instead of g_assert_not_reached()ing.  This seems
20357         to be the behaviour of mscorlib.
20358
20359 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20360
20361         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20362         Hestilow to fix bug #25104
20363
20364 2002-05-21  Martin Baulig  <martin@gnome.org>
20365
20366         * debug-symfile.c (mono_debug_find_source_location): New function.
20367         Looks up an IL offset in the line number table and returns the source
20368         location as a string.
20369
20370 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20371
20372         * icall.c:
20373         (mono_double_ToStringImpl): changed %f by %g until we have something
20374         better.
20375
20376 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20377
20378         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20379         parameters first in C#.
20380
20381 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20382
20383         * icall.c, reflection.h: added icall to get info about an event.
20384
20385 2002-05-20  Radek Doulik  <rodo@ximian.com>
20386
20387         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20388         endian
20389         (mono_value_box): don't use memcpy for small sizes on
20390         architectures with unaligned access
20391
20392 2002-05-20  Martin Baulig  <martin@gnome.org>
20393
20394         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20395         if `tb->parent == NULL'.
20396         (mono_reflection_create_internal_class): New function.  This is
20397         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20398         for enum types.
20399
20400         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20401         New interncall.
20402
20403 2002-05-19  Martin Baulig  <martin@gnome.org>
20404
20405         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20406         argument to get the length, don't default to the array length.
20407
20408 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20409
20410         * assembly.c (mono_assembly_setrootdir): New function used to
20411         override the MONO_ASSEMBLIES directory.
20412
20413 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20414
20415         * icall.c: ValueType_GetHashCode() initialize local var.
20416
20417 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20418
20419         * reflection.c: sort custom attributes table.
20420
20421 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20422
20423         * reflection.c: support named args in custom attributes (write support).
20424
20425 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20426
20427         * reflection.c: fix finally position calculation.
20428
20429 2002-05-15  Radek Doulik  <rodo@ximian.com>
20430
20431         * reflection.c: fixed endianess at many places
20432
20433         * icall.c (ves_icall_InitializeArray): comment out debug msg
20434
20435 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20436
20437         * object.c (mono_unhandled_exception): new function to handle
20438         unhandled exceptions.
20439         (mono_unhandled_exception): call the UnhandledException event.
20440         (mono_runtime_delegate_invoke): impl.
20441
20442 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20443
20444         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20445         returns the RVA, not the direct pointer to the data. Handle the case
20446         when the class size is fixed.
20447
20448 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20449
20450         * reflection.c: fix some endianess issues.
20451
20452 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20453
20454         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20455
20456         * threads.c (mono_thread_init): added a callback which is invoked
20457         at thread start.
20458
20459 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20460         
20461         * icall.c: make GetHashCode return non-negative values.
20462
20463 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20464
20465         * object.c, icall.c, gc.c: revert to address-based hashcode.
20466
20467 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20468
20469         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20470
20471 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20472
20473         * icall.c, class.c: special case <Module>.
20474
20475 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20476
20477         * icall.c: fix bug in GetNow().
20478
20479 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20480
20481         * object.c (mono_runtime_class_init): make sure that we call all
20482         static class constructors.
20483
20484 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20485
20486         * reflection.c: sort methodsemantics table.
20487
20488 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20489
20490         * reflection.h, reflection.c: honour init locals setting.
20491
20492 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20493
20494         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20495
20496 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20497
20498         * reflection.c: support ContructorBuilders in attribute blob creation.
20499
20500 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20501
20502         * reflection.c: some changes to build a binary that can be run
20503         directly in windows.
20504
20505 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20506
20507         * loader.c: print a big message when an icall can't be found.
20508
20509 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20510
20511         * string-icalls.c: fix bug 24248.
20512
20513 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20514
20515         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20516         icall.c, reflection.h: separate assembly loading by pathname and by
20517         assembly name. Use the MONO_PATH env var to search for assemblies.
20518
20519 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20520
20521         * assembly.c, image.h: add some support for assemblies
20522         with multiple modules.
20523         * class.c, class.h: export mono_class_from_typeref().
20524         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20525         instead.
20526
20527 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20528
20529         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20530         documentation says (the ECMA one is correct).
20531
20532 2002-05-02  Dick Porter  <dick@ximian.com>
20533
20534         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20535         Don't name the synchronisation mutex.
20536
20537 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20538
20539         * rand.c
20540         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20541         Make the prototypes match.
20542         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20543         Same.
20544
20545         * icall.c
20546         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20547         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20548         all systems have tm.tm_zone, so use strftime() with %Z to print
20549         the timezone abreviation into a temp string.
20550
20551         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20552         rather than mono_array_addr() on a MonoString on Big Endian
20553         machines.
20554
20555 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20556
20557         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20558         fix bug 24041
20559
20560 2002-04-30  Dick Porter  <dick@ximian.com>
20561
20562         * socket-io.c: Cope with SOCKET being an integer rather than a
20563         pointer now.
20564
20565         * threads.c: Added Thread_free_internal, to deal with thread
20566         handle cleanup.  Moved calls to handle_store() and handle_remove()
20567         to start_wrapper(), so each can only be called once.  Allocate
20568         synchronisation blocks with GC_malloc(), and use GC finalisation
20569         to close the handles.
20570
20571         * icall.c: added System.Threading.Thread::Thread_free_internal
20572
20573 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20574
20575         * icall.c: support Environment.Exit, CommandLineArgs().
20576
20577 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20578
20579         * object.c, object.h: added mono_runtime_run_main () and
20580         mono_runtime_get_main_args () for use in System.Environment.
20581
20582 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20583
20584         * gc.c: fix thinko, enable actual finalization since the jit is now
20585         fixed.
20586
20587 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20588
20589         * gc.c, object.c: take into account that an object may be offset wrt the address
20590         returned by GC_malloc().
20591
20592 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20593
20594         * image.c: handle files without entries in the assembly table (modules).
20595
20596 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20597
20598         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20599         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20600         allowed to be null when it's System.Object class setup.
20601
20602 2002-04-27  Martin Baulig  <martin@gnome.org>
20603
20604         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20605         if `tb->parent == NULL' rather than crashing.
20606
20607 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20608
20609         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20610         calling acos() where asin() should have been called.
20611
20612 2002-04-26  Martin Baulig  <martin@gnome.org>
20613
20614         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20615         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20616         there's a subdirectory called `System', but we don't want to read that
20617         subdirectory as an assembly.
20618
20619 2002-04-25  Martin Baulig  <martin@gnome.org>
20620
20621         * debug-symfile.c: Reflect latest MonoString changes.
20622
20623 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20624
20625         * rand.c, rand.h: instance method icalls need to have an explicit
20626         this pointer as first argument in the C implementation.
20627
20628 2002-04-25  Nick Drochak <ndrochak@gol.com>
20629
20630         * icall.c: Fix typo in map for GetNonZeroBytes
20631
20632 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20633
20634         * string-icalls.c : String does now passes unit tests without any 
20635         errors, the following changes has been made:
20636         
20637         Implemented replace methods.
20638         Renaming of methods to (try) follow the standard.
20639         Fixed compare ordinal
20640         Made all memory allocated directly to function instead of via icall function.
20641         Small performance fix in is_in_array function
20642                         
20643  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20644
20645         c (mono_string_Internal_ctor_charp_int_int):
20646         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20647         sindex < 0, throw ArgumentOutOfRangeException instead of
20648         ArgumentNullException.
20649
20650         Added new check for length == 0, however
20651         I need to make it return String.Empty from the C code.
20652         
20653         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20654         that calculate the length for us here.
20655         
20656         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20657         mono_string_new_utf16 with mono_string_new, since value is utf8.
20658
20659 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20660
20661         * object.c: register the object for finalization if needed.
20662         Allocate one more char in the string for the terminating 0 char.
20663
20664 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20665
20666         * class.c, class.h, image.c: check if a type implemenst a destructor.
20667         Use the proper key for array class lookups.
20668         * icall.c: register the icalls in the System.GC class.
20669         * gc.c, gc.h: GC-related functions and icalls.
20670
20671 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20672
20673         * icall.c:
20674         * socket-io.c:
20675         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20676         changed a couple of free () by g_free ().
20677
20678         * decimal.c: one-liner in the comments for decimal2string ().
20679
20680 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20681
20682         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20683
20684 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20685
20686         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20687         * object.c (mono_runtime_invoke_array) : handle null in params
20688
20689 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20690
20691         * string-icalls.c: fixed bug in split (one off bug)
20692
20693 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20694
20695         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20696         * icalls.c: added String::Equals as internal method
20697
20698 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20699
20700         * threads.c: fixed bug in the double interlocked functions
20701
20702 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20703
20704         * threads.c: implemented all of the new interlocked icalls.
20705         * string-icalls.c: fix a bug in insert.
20706         * icalls.c: added the icalls for interlocked, removed old string functions.
20707         
20708 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20709
20710         * loader.c: fix off-by-one error when reading argument names.
20711
20712 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20713
20714         * profiler.c: win32 counter implementation (untested).
20715         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20716         (the latter needs testing and more complete impl. from win32 folks).
20717
20718 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20719
20720         * object.c: mono_array_new_full workaround mono_array_class_get
20721         problem.
20722
20723 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20724
20725         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20726         * object.h (mono_string_chars): Changed casting type.
20727
20728 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20729
20730         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20731                            method signatures to use gunichar2 instead of gint16.
20732
20733 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20734
20735         * object.h, object.c: domain-specific versions of mono_object_new and
20736         mono_array_new.
20737
20738 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20739
20740         * object.c: changed String layout
20741
20742         * string-icalls.c (mono_string_Internal_ctor_chara): added
20743         internal string constructors.
20744
20745 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20746
20747         * threads.c: pass 'this' to the thread start routine.
20748
20749 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20750
20751         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20752         InternalCompareStr don't call twice mono_string_cmp_char for the last
20753         character. Improved performance in mono_string_cmp_char.
20754
20755 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20756
20757         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20758         code into its own library: libmonoruntime.
20759
20760 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20761
20762         * object.h, object.c: changed array format so that szarrays do not
20763         require a bounds structure.
20764         * icall.c, appdomain.c: support for new szarray format.
20765
20766 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20767
20768         * metadata.c: compare also the retuns type when comparing signatures:
20769         we didn't do this as an optimization since really overloaded methods
20770         must differ also in the arguments, but this doesn't work with
20771         low-level IL code (or when using explicit conversion operators: see
20772         bug#23498 for an example).
20773
20774 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20775
20776         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20777
20778 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20779
20780         * icall.c: make MonoType::GetElementType its own icall.
20781
20782 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20783
20784         * icall.c: remove MonoMethod_get_Name().
20785         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20786         object.
20787
20788 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20789
20790         * string-icalls.c: optimized a few methods.
20791
20792 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20793
20794         * icall.c: added all new string internal calls
20795         * string-icalls.c: added, new string internal call implementation.
20796         * object.c: added mono_string_new_size for allocating a string a size
20797
20798 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20799
20800         * object.c (mono_object_isinst): use the same code as in the
20801         optimized x86 version.
20802
20803 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20804
20805         * profiler.c: TSC-based timer code (faster and more accurate).
20806         Not hooked up in configure, yet (set USE_X86TSC to 1).
20807
20808 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20809
20810         * profiler.c, profiler.h: track time spent compiling methods.
20811         * threads.c: track thread creation/destruction.
20812
20813 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20814
20815         * profiler.c, profiler.h, profiler-private.h: profiling interface
20816         and sample implementation. Moved here so that it can be used also by
20817         the jit.
20818
20819 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20820
20821         * reflection.c, reflection.h: keep types and other handles separate in
20822         the hash tables for referred tokens. Add guid for modules.
20823
20824 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20825
20826         * assembly.c: fix bugs found with valgrind.
20827         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20828
20829 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20830
20831         * threads: added icall support for getting current domain for
20832                    the thread.
20833  
20834 2002-04-13  Martin Baulig  <martin@gnome.org>
20835
20836         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20837         (MonoDebugVarInfo): Added `index' field for register based addresses.
20838         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20839         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20840         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20841         `MonoDebugVarInfo *this_var'.
20842
20843         * debug-symfile.c (relocate_variable): New static function to write
20844         a location description for a local variable or method parameter.
20845
20846 2002-04-12  Martin Baulig  <martin@gnome.org>
20847
20848         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20849         stack offset and begin/end scope address of a local variable.
20850         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20851         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20852         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20853
20854         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20855         Added new relocation types for start/end scope of a local variable.
20856
20857 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20858
20859         * object.h: add mono_object_domain() macro.
20860         * reflection.c: handle typespecs.
20861         * icall.c: MonoMethod::get_Name() implementation.
20862
20863 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20864
20865         * icall.c: String::GetHashCode() icall implementation.
20866
20867 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20868
20869         * icall.c: String::IndexOfAny icall.
20870         * object.c, object.h: make array->max_length more useful.
20871         Intrduced mono_object_class() and mono_string_length() macros.
20872
20873 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20874
20875         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20876         instead of g_unichar_isdigit.
20877
20878 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20879
20880         * icall.c: Implement a simple Double.ToString().
20881
20882 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20883
20884         * appdomain.h: only io-layer.h is supposed to be included.
20885         * icall.c: explicitly import environ. Fix warning.
20886
20887 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20888
20889         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20890                 return true even if it's not Daylight Savings time.
20891                 Only return false for the case where the function isn't
20892                 implemented for a plaform (read Windows).
20893
20894 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20895
20896         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20897         data with a mutex.
20898
20899 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20900
20901         * mempool.c (mono_mempool_alloc): only use g_malloc when
20902         absolutely necessary.
20903
20904 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20905
20906         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20907
20908         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20909         (mono_class_proxy_vtable): use domain mempool
20910
20911 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20912
20913         * appdomain.h, appdomain.c: split initialization that requires the
20914         execution engine support into mono_runtime_init().
20915
20916 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20917
20918         * class.c (mono_class_init): don't include vtable inside MonoClass
20919         to save some memory, gather some statistics.
20920         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20921
20922 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20923
20924         * icall.c: internalcall implementation for ValueType.Equals().
20925
20926 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20927
20928         * object.c (mono_message_init): moved 
20929         (mono_runtime_exec_main): new arch. independent impl.
20930         (mono_runtime_invoke_array): new method - like
20931         mono_runtime_invoke, but you can pass an array of objects.
20932         (mono_remoting_invoke): new arch. independent impl.
20933         (mono_message_invoke): new arch. independent impl.
20934         (mono_runtime_class_init): new arch. independent impl.
20935         (mono_runtime_object_init): new arch. independent impl.
20936
20937 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20938
20939         * metadata.c, object.c, reflection.c: documented the exported
20940         functions.
20941
20942 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20943
20944         * icall.c: simpler code to pass the assembly builder data to corlib.
20945         Implement GetNestedTypes() internalcall.
20946
20947 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20948
20949         * class.c: warn if a type can't be loaded.
20950
20951 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20952
20953         * image.h: typedef MonoImageOpenStatus
20954         * types.h: removed unused file
20955         
20956 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20957
20958         * icall.c: Enum_ToObject accepts enum value arguments.
20959
20960 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20961
20962         * class.c: move initialization of properties, events and nested
20963         classes, so that they happen for interfaces, too.
20964
20965 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20966
20967         * icall.c: cleanup some ugly casts in Array_SetValue*.
20968
20969 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20970
20971         * icall.c: the values array fro enums is of the correct type, now.
20972         Implement (correctly) getFullName instead of assQualifiedName for
20973         MonoType.
20974         * reflection.h, reflection.c: added mono_type_get_name ().
20975
20976 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20977
20978         * assembly.c, image.h: for each MonoImage, record from wich assembly
20979         it was loaded.
20980         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20981         Make Type.Assembly work.
20982
20983 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20984
20985         * debug-symfile.h: use char* instead of gpointer to avoid
20986         unnecessary casts.
20987
20988         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20989
20990         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20991         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20992
20993 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20994
20995         * icall.c (mono_message_init): impl. (code cleanup)
20996         (ves_icall_InternalExecute): impl. FieldGetter
20997
20998         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20999         defined we call all (non-static)methods through the vtable. 
21000
21001 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21002
21003         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21004         finalizer even though the memory is still referenced (and the chunk of
21005         memory is not freed).
21006
21007 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21008
21009         * assembly.c: fix brokeness.
21010
21011 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21012
21013         * class.c: kill some warnings. Check explicit interface method
21014         implementation also without considering the namespace.
21015         Load also literal strings in static class data.
21016
21017 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21018
21019         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21020         (default_assembly_name_resolver): Make the resolver take the
21021         "base" directory where the assembly was originally defined, so we
21022         can load DLLs that are in the same directory as the assembly that
21023         is being referenced.
21024
21025 2002-03-28  Dick Porter  <dick@ximian.com>
21026
21027         * file-io.h: 
21028         * file-io.c:
21029         * socket-io.c: 
21030         * unicode.h: 
21031         * unicode.c: Warning cleanups
21032
21033 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21034
21035         * object.h, reflection.h: use the correct type instead of MonoObject.
21036
21037 2002-03-28  Martin Baulig  <martin@gnome.org>
21038
21039         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21040         (mono_debug_update_symbol_file): Initialize classes if necessary.
21041
21042 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21043
21044         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21045         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21046
21047 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21048
21049         * assembly.h: fix function prototype.
21050         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21051         * mono-endian.h: use const cast.
21052
21053 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21054
21055         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21056
21057 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21058
21059         * loader.c: don't assert when a typeref can't be loaded, give
21060         a chance to the runtime to trow an exception instead.
21061         * loader.h: fix warning.
21062
21063 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21064
21065         * class.c (mono_class_proxy_vtable): added proxy support
21066
21067 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21068
21069         * icall.c: removed last of PAL calls, added System.Environment
21070         * file-io.h, file-io.c: MonoIO implementation
21071         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21072
21073 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21074
21075         * appdomain.c: do not use the byte marker in ldstr table lookup.
21076         * debug-helpers.c: allow two ':' to separate class and method name.
21077         * object.c: allocate arrays bounds with the GC, too.
21078         * verify: add a few more checks.
21079
21080 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21081
21082         * reflection.c: output also literal strings. Allocate parameter data
21083         with GC_malloc() (thanks, Martin, for catching this!).
21084
21085 2002-03-26  Martin Baulig  <martin@gnome.org>
21086
21087         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21088         include the `this' offset in the `param_offsets'.
21089
21090 2002-03-25  Martin Baulig  <martin@gnome.org>
21091
21092         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21093         mono_debug_get_class() function to get the classes. Added new
21094         relocation types for arrays and strings.
21095         (mono_debug_get_class): New static function to search in all
21096         referenced assemblies for a metadata token.
21097
21098         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21099
21100 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21101
21102         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21103         hold gc-allocated objects. Make the string heap a stream like the
21104         others. Removed duplicated code when writing stream info.
21105         Added asserts to catch possible buffer overflows. Set the sorted map
21106         for tables that need sorting. Added some documentation.
21107
21108 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21109
21110         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21111         for interned strings and vtables.
21112
21113 2002-03-24  Martin Baulig  <martin@gnome.org>
21114
21115         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21116         it in the array since it was created with g_slist_prepend().
21117
21118 2002-03-24  Martin Baulig  <martin@gnome.org>
21119
21120         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21121         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21122         (mono_debug_method_from_token): Renamed to
21123         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21124         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21125
21126         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21127         relocation types.
21128
21129         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21130
21131 2002-03-24  Martin Baulig  <martin@gnome.org>
21132
21133         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21134         (mono_debug_method_from_token): New func.
21135
21136         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21137         New interncall, calls mono_debug_local_type_from_signature().
21138         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21139         calls mono_debug_method_from_token().
21140
21141 2002-03-23  Martin Baulig  <martin@gnome.org>
21142
21143         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21144         specifies the number of bytes to be converted, not the array size.
21145         Return the number of chars, not the number of bytes.
21146         (ves_icall_iconv_get_chars): The `byteCount' argument
21147         specifies the number of bytes to be converted, not the array size.
21148
21149 2002-03-23  Martin Baulig  <martin@gnome.org>
21150
21151         * reflection.h (MonoReflectionSigHelper): New type.
21152
21153         * reflection.c (mono_reflection_sighelper_get_signature_local),
21154         (mono_reflection_sighelper_get_signature_local): New functions.
21155
21156         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21157         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21158         interncalls.
21159
21160 2002-03-23  Martin Baulig  <martin@gnome.org>
21161
21162         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21163         is_writeable is set.
21164         (mono_raw_buffer_update): New function to write the modified map
21165         back to disk.
21166
21167         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21168
21169         * debug-symfile.c (mono_debug_update_symbol_file): Call
21170         mono_raw_buffer_update() when done writing.
21171
21172 2002-03-23  Martin Baulig  <martin@gnome.org>
21173
21174         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21175
21176         * debug-symfile.c: Added support for arguments and local variables.
21177
21178 2002-03-23  Dick Porter  <dick@ximian.com>
21179
21180         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21181         protected by ifdefs, hence breaking the w32 build.
21182
21183 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21184
21185         * object.c: implement is_interned() the right way.
21186
21187 2002-03-21  Martin Baulig  <martin@gnome.org>
21188
21189         * debug-symfile.[ch]: New files to handle debugging information
21190         files. There's also support to dynamically update these symbol
21191         files to include machine dependent information.
21192
21193 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21194
21195         * threads.c (mono_thread_create): new function to create thread
21196         from C
21197
21198 2002-03-20  Martin Baulig  <martin@gnome.org>
21199
21200         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21201         method is a constructor.
21202         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21203         points to ves_icall_InternalInvoke().
21204
21205 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21206
21207         * file-io.c: Flush shouldn't throw exceptions.
21208
21209 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21210
21211         * file-io.c: FileStream flush support; FileSetLength now
21212         restores file pointer.
21213
21214 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21215
21216         * class.c: set image for pointer classes.
21217
21218 2002/03/19  Nick Drochak <ndrochak@gol.com>
21219
21220         * sysmath.c: Forgot one.
21221
21222 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21223
21224         * sysmath.c: Avoid redefining existing names.
21225
21226 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21227
21228         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21229         handled by runtime as icall rather than dllimport from libm.so
21230         * file-io.c, file-io.h: fixed handle argument type.
21231
21232 2002-03-18  Dick Porter  <dick@ximian.com>
21233
21234         * reflection.c (mono_image_get_type_info): rename interface to
21235         iface, because of "#define interface struct" on windows.
21236
21237 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21238
21239         * class.c, class.h: rename and export mono_ptr_class_get().
21240         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21241         * reflection.c, reflection.h, icall.c: better/saner type name
21242         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21243         method signatures.
21244
21245 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21246
21247         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21248
21249         * icall.c (ves_icall_InternalInvoke): impl.
21250
21251 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21252
21253         * reflection.c: output the interface map table, too.
21254
21255 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21256
21257         * class.c (class_compute_field_layout): separate computation of 
21258         static field layout
21259
21260 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21261
21262         * icall.c: added System.Buffer support.
21263         * file-io.c: moved file icalls from PAL to FileStream.
21264
21265 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21266
21267         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21268
21269 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21270
21271         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21272
21273 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21274
21275         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21276
21277 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21278
21279         * debug-helpers.{c,h}: moved here from monograph some useful functions
21280         to locate a method by name/signature in a class or image. Included
21281         also a small and flexible IL disassembler.
21282
21283 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21284
21285         * reflection.c: fixup tokens in methods with small header size, too.
21286
21287 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21288
21289         * object.c (mono_string_to_utf8): remove assert(!error), instead
21290         print a warning. 
21291
21292 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21293
21294         * icall.c: update to the new mono_Array_class_get interface.
21295
21296 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21297
21298         * appdomain.c, object.c: Boehm-GC enable.
21299         * icall.c: make get_data_chunk() support split data requests.
21300         Ensure a class is initialized in more cases. Return only the first
21301         property found in GetProperties() or the compiler gets confused. 
21302         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21303         * reflection.h, reflection.c: add fixup mechanism for field and method
21304         tokens. Initialize assembly->typeref in a single place. Output
21305         properties after events. Support custom attributes for events, too.
21306         Typo fix for paramter custom attrs.
21307
21308 2002-03-07  Martin Baulig  <martin@gnome.org>
21309
21310         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21311
21312 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21313
21314         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21315
21316 2002-03-06  Martin Baulig  <martin@gnome.org>
21317
21318         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21319         non-zero lower bounds. See testcases #F10-#F13.
21320
21321 2002-03-05  Martin Baulig  <martin@gnome.org>
21322
21323         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21324
21325         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21326         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21327         here.
21328         (ves_icall_System_Array_SetValue): Likewise.
21329         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21330         as argument and does the actual work. This function is used when copying a
21331         multi-dimensional array.
21332         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21333         now do all the widening conversions of value types.
21334         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21335
21336 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21337
21338         * class.c: remove some magic numbers and use the smbolic names,
21339         instead. Added init_events() to load event info at class init time.
21340         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21341         and mono_metadata_methods_from_event().
21342         * reflection.h, reflection.c: added support for writing out the evnets
21343         related information.
21344
21345 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21346
21347         * reflection.h, icall.c: use a different method (GetInterfaces)
21348         to gather interface info and add isbyref, isprimitive and
21349         ispointer to the ves_icall_get_type_info() return value.
21350
21351 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21352
21353         * class.h: stared adding support for events.
21354         * icall.c: split find_members implementation. Added debug icall to get
21355         the address of an object.
21356         * reflection.c: handle TypeBuilders in mono_type_get_object().
21357
21358 2002-03-01  Martin Baulig  <martin@gnome.org>
21359
21360         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21361         ArgumentOutOfRangeException(), not an ArgumentException().
21362         (ves_icall_System_Array_GetLowerBound): Likewise.
21363         (ves_icall_System_Array_GetValue): Improved argument checking.
21364         (ves_icall_System_Array_SetValue): Improved argument checking.
21365
21366 2002-03-01  Martin Baulig  <martin@gnome.org>
21367
21368         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21369         called with invalid arguments rather than just dying with g_assert().
21370         (ves_icall_System_Array_SetValue): Likewise.
21371         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21372         raise a NotImplementedException instead.
21373         (ves_icall_System_Array_GetLength): Added argument checking.
21374         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21375
21376 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21377
21378         * object.h (mono_assert): new macros mono_assert and
21379         mono_assert_not_reached
21380
21381 2002-02-28  Martin Baulig  <martin@gnome.org>
21382
21383         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21384         and "System::String::IsInterned" to "System::String::_IsInterned".
21385
21386 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21387
21388         * icall.c: remove hacks for typebuilder. Added icall to create a
21389         modified type from a tybebuilder.
21390         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21391         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21392         to create a backing MonoClass for a TypeBuilder.
21393
21394 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21395
21396         * class.c, class.h: more refactoring of class init.
21397         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21398
21399 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21400
21401         * marshal.c, marshal.h: start of marshaling interface.
21402
21403 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21404
21405         * icall.c: fix order in assembly qualified name icall.
21406
21407 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21408
21409         * class.c: do not free str, since we store it in the hash table.
21410         * reflection.h: add label field to MonoILExceptionInfo.
21411         * reflection.c: handle references to more than one assembly. Handle
21412         case when there isn't a module created in the assembly.
21413
21414 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21415
21416         * class.c: Fix typo. Start refactoring of class init code.
21417
21418 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21419
21420         * appdomain.c: exit with 1 on error.
21421         * class.c: we already have the name in MonoClassField.
21422         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21423         MonoStreamHeader instead of an offset of image->raw_metadata.
21424
21425 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21426
21427         * appdomain.c (mono_init): Be even more descriptive about the error.
21428
21429 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21430
21431         * appdomain.c: give the user an informative message when corlib can't
21432         be loaded.
21433
21434 2002-02-26  Martin Baulig  <martin@gnome.org>
21435
21436         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21437         New icall to get the time zone data.
21438
21439 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21440
21441         * reflection.c: set virtual and raw size of section correctly.
21442         * threads.c: transfer domain information to newly created threads.
21443
21444 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21445
21446         * class.c: when instancing a class in a domain, load the default
21447         vaules for static fields from the constant table. Fix System.Enum to
21448         not be an enum.
21449         * icall.c: implement Object::GetType() internalcall. Implemented
21450         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21451         Fixed checking of binding flags in find_members().
21452         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21453         * reflection.c: handle enumerations when writing to the constant
21454         table. Use a different object cache for types.
21455
21456
21457 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21458
21459         * object.c (mono_object_isinst): fix for arrays
21460
21461         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21462
21463 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21464
21465         * object.c: don't use mprotect ()  and fix intern pool hash table
21466         lookup for big endian systems.
21467
21468 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21469
21470         * icall.c: change type_is_subtype_of () signature.
21471
21472 2002-02-21  Mark Crichton  <crichton@gimp.org>
21473
21474         * rand.c, rand.h: Added random number generator for
21475         System.Security.Cryptography classes.
21476
21477         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21478
21479         * icall.c: Added System.Security.Cryptography calls.
21480
21481 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21482
21483         * class.c, icall.c, metadata.c: better support for pointer types.
21484         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21485         * reflection.c: Add support for getting custom attrs for properties
21486         and simplify some code.
21487
21488 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21489
21490         * icall.c: change getToken () and add custom attribute GetBlob()helper
21491         method.
21492         * reflection.h: add custom attrs array to the reflection builder structures.
21493         * reflection.c: encode and emit custom attributes for all the relevant
21494         reflection objects. Cache fieldref and methodref tokens. Change
21495         mono_image_create_token() interface to take a MonoDynamicAssembly.
21496         More complete custom attributes decoder. Load custom attributes for
21497         Assembly, Field, Method and Constructor objects, too. Make the
21498         returned array an Attribute[] one, not object[]. Added
21499         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21500         custom attribute constructor.
21501
21502 2002-02-20  Dick Porter  <dick@ximian.com>
21503
21504         * icall.c:
21505         * rawbuffer.c:
21506         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21507         problem code out for now).
21508
21509 2002-02-19  Radek Doulik  <rodo@ximian.com>
21510
21511         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21512
21513 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21514
21515         * icall.c: register the GetCustomAttributes method.
21516         * object.c, object.h: add mono_string_new_len ().
21517         * reflection.h, reflection.c: added mono_runtime_invoke(),
21518         mono_install_runtime_invoke(). Added
21519         mono_reflection_get_custom_attrs () to load custom attributes and
21520         create the attribute objects.
21521
21522 2002-02-19  Dick Porter  <dick@ximian.com>
21523         * threads-dummy-types.c:
21524         * threads-dummy-types.h:
21525         * threads-dummy.c:
21526         * threads-dummy.h:
21527         * threads-pthread-types.c:
21528         * threads-pthread-types.h:
21529         * threads-pthread.c:
21530         * threads-pthread.h:  Deleted obsolete files
21531
21532 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21533
21534         * class.c (mono_class_vtable): runtime init the class when we
21535         allocate static class data.
21536
21537         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21538
21539         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21540         and String - but we will need generic marshalling support in the
21541         future. 
21542         (mono_init): set the domain name in a ms compatible way
21543
21544         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21545         String[].
21546
21547 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21548
21549         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21550         for sizes
21551
21552         * appdomain.c (mono_domain_unload): impl.
21553
21554 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21555
21556         * appdomain.c, object.c: fix intern pool implementation.
21557         * class.c: fix alignment code.
21558
21559 2002-02-16  Radek Doulik  <rodo@ximian.com>
21560
21561         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21562         and s2 > s1, just copy lower bytes to be compatible with little
21563         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21564         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21565
21566         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21567         force big_endian to be 1 for big endian machines 
21568         (ves_icall_iconv_new_decoder): ditto
21569
21570 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21571
21572         * socket-io.c (convert_sockopt_level_and_name): If the system
21573         doesn't define SOL_IP or SOL_TCP, get them by hand using
21574         getprotobyname() and caching the values (because this could be a
21575         slow operation).
21576         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21577         Use the appropriate struct when the system does support it. Ie,
21578         not all systems have struct ip_mreqn so use struct ip_mreq when
21579         appropriate.
21580
21581 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21582
21583         * reflection.c: handle finally clauses.
21584
21585 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21586
21587         * socket-io.c: use g_snprintf() instead of snprintf.
21588
21589 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21590
21591         * reflection.c (mono_param_get_objects): Cast second argument to
21592         mono_method_get_param_names to a const char** to silence the
21593         compiler warning.
21594
21595         * appdomain.c (mono_domain_assembly_open): Put parens around the
21596         truth statement in the for-loop.
21597
21598         * unicode.c (iconv_convert): Got rid of a compiler warning about
21599         int i being unused when the system has a new iconv.
21600         (iconv_get_length): Same.
21601
21602         * image.c (load_class_names): Cast the second argument to
21603         g_hash_table_insert() to char* to hush compiler warnings about the
21604         arg being a const.
21605         (mono_image_open): Same here.
21606
21607         * socket-io.c: Don't conditionally include sys/filio.h or
21608         sys/sockio.h here anymore since we now get them from
21609         io-layer/io-layer.h
21610         (inet_pton): If the system doesn't support inet_aton, implement
21611         using inet_addr and also #define INADDR_NONE if it isn't defined
21612         by the system.
21613
21614 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21615
21616         * metadata.c, metadata.h: added function to get packing and size info
21617         of a typedef.
21618         * reflection.h, reflection.c: handle field RVA data. Save info about
21619         the table layout if needed. Assign typedef indexes to all the types
21620         before dumping the info about them to avoid forward reference problems.
21621
21622 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21623
21624         * socket-io.c (convert_sockopt_level_and_name): ifdef
21625         SO_ACCEPTCONN because it is not defined on my system (old debian)
21626
21627 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21628
21629         * opcode.c: use stddef.h to get NULL.
21630
21631 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21632
21633         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21634         for FIONBIO, FIONREAD and SIOCATMARK.
21635         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21636         define INADDR_NONE and besides, inet_addr() is deprecated and
21637         should not be used. Use inet_pton() instead - it also has the
21638         added bonus that it can easily handle IPv6 addresses as well.
21639         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21640
21641 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21642
21643         * decimal.c: remove _MSC_VER conditional.
21644
21645 2002-02-13  Dick Porter  <dick@ximian.com>
21646
21647         * socket-io.c: 
21648         * icall.c: Internal calls for Blocking, Select, Shutdown,
21649         GetSocketOption and SetSocketOption
21650
21651 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21652
21653         * assembly.cs: better resolver: use it instead of some kludgy
21654         code.
21655
21656 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21657
21658         * reflection.c: the best way to speed-up the compiler is to avoid
21659         infinite loops.
21660
21661 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21662
21663         * class.c (mono_class_vtable): changed the object layout
21664         (obj->vtable->class). 
21665         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21666
21667 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21668
21669         * assembly.c: look for assemblies in the assembly dir, too.
21670
21671 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21672
21673         * class.c: fix thinko in mono_class_from_type().
21674
21675 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21676
21677         * exception.h, exception.c: added TypeLoadException.
21678         * object.h, object.c: added mono_array_clone ().
21679         * icall.c: handle throwOnError in AssemblyGetType().
21680         Added Array.Clone().
21681         * opcode.h, opcode.c: use a single value for the opcode val.
21682         Compile fix for non-gcc compilers.
21683
21684 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21685
21686         * opcodes.c, opcodes.h: export interesting info about opcodes.
21687
21688 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21689
21690         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21691         icalls. 
21692
21693         * class.c (class_compute_field_layout): set element_class for enums
21694         (mono_class_create_from_typedef): set element_class for normal classes
21695
21696         * icall.c (ves_icall_System_Enum_get_value): impl.
21697
21698         * class.c (mono_class_create_from_typedef): do not set valuetype
21699         flag for System.ValueType and System.Enum
21700
21701 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21702
21703         * unicode.c (iconv_convert): fix big endian problem.
21704
21705 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21706
21707         * class.c: add asserts if we are ever going to scribble over memory.
21708         * socket-io.c: not all systems have AF_IRDA defined.
21709
21710 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21711
21712         * class.c (class_compute_field_layout): do not consider static
21713         fields to compute alignment
21714
21715 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21716
21717         * appdomain.c (mono_appdomain_get): impl.
21718         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21719
21720 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21721
21722         * icall.c: ignore "file://" prefix when loading an assembly.
21723
21724 2002-01-23  Dick Porter  <dick@ximian.com>
21725
21726         * socket-io.c:
21727         * icall.c:
21728         * Makefile.am: Added socket support
21729
21730 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21731
21732         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21733         code back.  This should return the assemblies that are loaded by
21734         the runtime on behalf of an application domain. 
21735
21736         The current implementation is still broken, it just returns every
21737         assembly loaded, but until we get real applications domain this
21738         will do.
21739
21740 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21741
21742         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21743         AppDomain object.
21744
21745 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21746
21747         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21748         the mono_class_from_name lookup.
21749         (ves_icall_get_parameter_info): ditto.
21750         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21751         method.
21752         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21753
21754 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21755
21756         * class.c: load also nested classes on class init.
21757         System.ValueType instance methods gets passed boxed
21758         values, unless methods in derived classed that get a pointer to the
21759         data.
21760         * icall.c: use better name parsing code in GetType().
21761         * image.c, image.h: add mono_image_loaded ().
21762         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21763         * reflection.c, reflection.h: added mono_reflection_parse_type().
21764
21765 2002-01-22  Veronica De Santis <veron78@interfree.it>
21766
21767         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21768         * threads.c : Added the implementation of internal calls for events
21769         * threads.h : Added prototypes of internal calls for events
21770         
21771 2002-01-21  Radek Doulik  <rodo@ximian.com>
21772
21773         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21774
21775 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21776
21777         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21778         (mono_class_value_size): use min_align
21779
21780 2002-01-20  Dick Porter  <dick@ximian.com>
21781
21782         * threads.h:
21783         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21784         so it compiles on w32.
21785
21786 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21787
21788         * metadata.c (mono_type_stack_size): impl.
21789
21790         * class.c (mono_class_get_field): impl. memberref token
21791
21792 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21793
21794         * icall.h : Added the internal calls mapping for CreateMutex_internal
21795                     and ReleaseMutex_internal.
21796         * threads.h : Added the prototype of mutexes internal calls.
21797         * threads.c : Added the implementations of mutexes internal calls.
21798
21799 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21800
21801         * metaparse.h: removed unused file.
21802         * reflection.c, reflection.h: added stream_data_align () function 
21803         to align data in streams and keep stream aligned. Add support for
21804         exception support in method headers.
21805
21806 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21807
21808         * unicode.c: make iconv_convert () return the number of bytess written
21809         in the output buffer.
21810
21811 2002-01-15  Dick Porter  <dick@ximian.com>
21812         * threads.c: Make the runtime's idea of infinite timeouts coincide
21813         with the class library's
21814
21815         Fix a particularly egregious bug in mono_thread_cleanup(). That
21816         code was so utterly bogus it must have been written on a Monday.
21817
21818 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21819
21820         * reflection.h: add subtypes field to TypeBuilder.
21821         * reflection.c: encode constants for literal fields.
21822         Handle subtypes. Fix user string token (and add a zero byte)
21823         at the end.
21824         
21825 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21826
21827         * class.c (mono_class_init): bug fix: assign slot numbers for
21828         abstract methods.
21829
21830 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21831
21832         * reflection.c: don't try to output a code RVA for abstract methods.
21833         Small fixes for method header format. Output parameter info to the
21834         ParamDef table. Save method overriding info to MethodImpl table.
21835         Fix property support. Allow typedef.extends to be a type in the
21836         building assembly.
21837         * verify.c: fix off-by-one error.
21838
21839 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21840
21841         * class.c: fix mono_class_from_mono_type () for szarray types.
21842         Remove unused cache check in mono_class_from_type_spec().
21843         * icall.c: *type_from_name () functions handle simple arrays and byref.
21844         * reflection.c: handle byref and szarray types. Handle methods without
21845         body (gets P/Invoke compilation working). Handle types and fields in
21846         get_token ().
21847         * reflection.h: add rank to MonoTypeInfo.
21848
21849 2002-01-10  Dick Porter  <dick@ximian.com>
21850
21851         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21852         internal calls
21853
21854 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21855
21856         * icall.c: initialize class in type_from_handle ().
21857         Loop also in parent classes for get_method ().
21858         * reflection.c: properly encode class and valuetype types.
21859         Start on encoding TypeBuilder types. Handle fieldrefs.
21860         Use correct length when registering a user string.
21861         Handle ConstructorBuilder and MonoMethod in get_token ().
21862         Make mono_type_get_object () aware of cached types.
21863         * object.c: back out change to mono_string_new ().
21864
21865 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21866         * object.c: mono_string_new should return a NULL when the string 
21867         passed in is NULL -- not try to deference it.
21868         
21869 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21870
21871         * icall.c: hack to make IsSubType work for TypeBuilders.
21872         * reflection.c: emit constructors before methods.
21873         Retrieve param names in mono_param_get_objects().
21874
21875 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21876
21877         * Makefile.am: fix list of headers and sources so automake 1.5
21878         doesn't complain. Removed \# at end of list.
21879
21880 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21881
21882         * reflection.c: get token for a method ref. Set return type of
21883         constructor to void.
21884         * loader.c: debug message.
21885         * class.c: typo fix.
21886
21887 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21888
21889         * icall.c: fix array init with rank > 1. FindMembers
21890         loops in parent class as well.
21891         * image.c: do not insert nested types in name cache.
21892         * reflection.c: warning fix.
21893         * reflection.h: add override method (for interface impl).
21894
21895 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21896
21897         * metadata.c: fix customattr decoding.
21898
21899 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21900
21901         * rawbuffer.cs: Added native Win32 implementation, avoids using
21902         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21903
21904 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21905
21906         * class.c: make the low-level routines handle the cache.
21907
21908 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21909
21910         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21911
21912 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21913
21914         * class.c: fix mono_array_element_size() for objects.
21915         * class.h, class.c: add properties to MonoClass and load them
21916         at init time.
21917         * icall.c: check with isinst() when assigning a value to an array
21918         instead of requiring the classes to match exactly.
21919         Implemented icall for System.Type::GetType().
21920         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21921         enums. Handle bindingflags when looking for methods and fields.
21922         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21923         and mono_metadata_methods_from_property().
21924         * reflection.h, reflection.c: added structures for propreties,
21925         parameters and enums. Implemented mono_property_get_object() and
21926         mono_param_get_objects().
21927
21928 2001-12-18  Dick Porter  <dick@ximian.com>
21929
21930         * file-io.c: Use mono_string_to_utf16() instead of
21931         mono_string_chars()
21932
21933         * object.c: Added mono_string_to_utf16(), which copies the non
21934         NULL-terminated MonoString into a new double-null-terminated
21935         buffer.
21936
21937 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21938
21939         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21940
21941 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21942
21943         * file-io.c: raise exceptions if handle is invalid.
21944
21945 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21946
21947         * assembly.c: yet another check for mscorlib.
21948         * class.c, class.h: load nesting info for classes.
21949         * icall.c: many new functions to support the Reflection classes.
21950         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21951         * reflection.h, reflection.c: mono_image_create_token(),
21952         mono_assembly_get_object(), mono_type_get_object(),
21953         mono_method_get_object(), mono_field_get_object(): methods to return
21954         objects that parallel the C representation of assemblies, types,
21955         methods, fields.
21956
21957 2001-12-11  Dick Porter  <dick@ximian.com>
21958
21959         * icall.c:
21960         * file-io.c: Internal calls for file IO.
21961
21962 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21963
21964         * tabledefs.h: missing FileAttributes.
21965         * verify.h, verify.c: use is_valid_string () to simplify and check for
21966         valid strings more correctly. Fix warnings and speeling.
21967         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21968         Check code: branches, maxstack, method calls.
21969
21970 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21971
21972         * object.c (mono_object_allocate): removed static, so that the jit
21973         can allocate value types.
21974
21975         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21976
21977 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21978
21979         * class.c: init enum types right away and register the
21980         token->MonoClass map in mono_class_create_from_typedef ().
21981         * verify.h, verify.c: first cut of the verifier.
21982         * pedump.c: add --verify switch to verify metadata tables.
21983         * tabledefs.h: add some missing enums.
21984
21985 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21986
21987         * class.c (mono_install_runtime_class_init): impl.
21988         (mono_class_init): renamed mono_class_metadata_init to
21989         mono_class_init, also removed the metadata_inited flag
21990
21991         * object.c (mono_object_isinst): use faster algorithm
21992
21993 2001-11-30  Radek Doulik  <rodo@ximian.com>
21994
21995         * mono-endian.h: reverted last change
21996         added function prototypes
21997
21998         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21999         add mono-endian.c back
22000
22001         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22002         for unaligned access, I've mistaked it with endianess. I am
22003         sorry.
22004         (mono_read16): fix reverted endianess
22005         (mono_read64): ditto
22006         (mono_read32): ditto
22007
22008 2001-11-30  Dick Porter  <dick@ximian.com>
22009
22010         * exception.c: Implement mono_exception_from_name()
22011
22012 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22013
22014         * metadata.h, metadata.c: remove params_size and locals_size and their
22015         calculation from the metadata code: they are only usefult to the
22016         interp.
22017
22018 2001-11-29  Radek Doulik  <rodo@ximian.com>
22019
22020         * object.c (mono_ldstr): swap bytes here, it's probably not the
22021         best place, but works for me now, I'll redo it once I know mono
22022         better, also note that I add PROT_WRITE and don't reset back, also
22023         note that it's only affects big endians, so x86 should be OK
22024
22025         * mono-endian.h (read16): use just glib macros for both endians
22026
22027         * mono-endian.c: removed as glib macros are used in in
22028         mono-endian.h so we don't need to care about endianess for read
22029         macros as glib does that for us already
22030
22031 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22032
22033         * class.h, class.h: take minimum alignment into consideration so
22034         that the fields of a class remain aligned also when in an array.
22035
22036 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22037
22038         * loader.h, loader.c: add mono_method_get_param_names().
22039         * class.c: 0-init class fields.
22040
22041 2001-11-26  Dick Porter  <dick@ximian.com>
22042
22043         * icall.c:
22044         * threads-types.h:
22045         * threads.c: New file that handles System.Threading on all platforms
22046
22047         * object.c: 
22048         * object.h: Remove the synchronisation struct from MonoObject,
22049         replace it with a pointer that gets initialised on demand
22050
22051         * Makefile.am: Replace all the system-specific threading code with
22052         a single file that uses the new wrapper library
22053
22054 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22055
22056         * class.c, class.h: add mono_install_trampoline() so that the runtime
22057         can register a function to create a trampoline: removes the ugly
22058         requirement that a runtime needed to export arch_create_jit_trampoline.
22059         * object.h, object.c: added mono_install_handler() so that the runtime
22060         can install an handler for exceptions generated in C code (with
22061         mono_raise_exception()). Added C struct for System.Delegate.
22062         * pedump.c: removed arch_create_jit_trampoline.
22063         * reflection.c: some cleanups to allow registering user strings and
22064         later getting a token for methodrefs and fieldrefs before the assembly
22065         is built.
22066         * row-indexes.h: updates and fixes from the new ECMA specs.
22067
22068 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22069
22070         * class.h, class.c: add enum_basetype field to MonoClass.
22071         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22072         to get index in the constant table reated to a field, param or
22073         property.
22074         * reflection.h, reflection.c: handle constructors. Set public-key and
22075         version number of the built assembly to 0.
22076         * row-indexes.h: update from new ECMA spec.
22077
22078 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22079
22080         * class.h, class.c: add a max_interface_id to MonoClass.
22081         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22082         since it's used to do that. Added mono_type_type_from_obj().
22083         Make GetType() return NULL instead of segfaulting if the type was not
22084         found. Handle simple arrays in assQualifiedName.
22085         * object.h: add a struct to represent an Exception.
22086         * reflection.c: output call convention in method signature.
22087         Add code to support P/Invoke methods and fixed offsets for fields.
22088
22089 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22090
22091         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22092         the value.
22093         * icall.c: use mono_array_addr instead of array->vector: fixes the
22094         reflection image writing.
22095         * reflection.c: init call convention byte to 0 in method signature.
22096         Encode the property signature. Don't output property-related methods
22097         twice. Really process the properties for a type (don't cast a field to
22098         a property, my mom always told me that).
22099         Fix 64 bit issues in pointer alignment in a different and more
22100         readable way.
22101
22102 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22103
22104         * loader.h: Removed type class from MonoDefaults, added monotype
22105
22106         * loader.c: Loaded MonoType, removed loading of Type
22107
22108         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22109         and fills in System.Type._impl with a RuntimeTypeHandle rather
22110         than the actual MonoClass *
22111
22112         (ves_icall_type_from_handle): change from type_class to
22113         monotype_class
22114
22115         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22116         implemented
22117
22118         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22119         implemented
22120
22121         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22122
22123         (ves_icall_System_Reflection_Assembly_GetType): implemented
22124
22125         (ves_icall_System_MonoType_assQualifiedName): implemented
22126
22127         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22128
22129 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22130
22131         * assembly.c (mono_assembly_open): Implement a cache for the
22132         assemblies. 
22133
22134         (mono_assembly_close): only destroy the assembly when the last
22135         reference is gone.
22136         
22137 2001-11-09  Dick Porter  <dick@ximian.com>
22138
22139         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22140
22141 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22142
22143         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22144
22145 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22146
22147         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22148         from Martin Weindel.
22149         * object.h: add mono_string_chars ().
22150
22151 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22152
22153         * reflection.c (build_compressed_metadata): Eliminates warnings
22154         and uses 64-bit clean code.
22155
22156         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22157         (mono_type_equal): Change signature to eliminate warnings.
22158
22159 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22160
22161         * icall.c, loader.c: remove the internalcall array constructors.
22162         Changes to match the new MonoArray structure.
22163         * object.h, object.c: an array object doesn't allocate an extra
22164         vector. Add mono_array_new_full () to create jagged arrays easily.
22165
22166 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22167
22168         * metadata.h, metadata.c: add mono_metadata_field_info () to
22169         retreive all the info about a field from vairous tables.
22170         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22171         * class.h, class.c: augment MonoClassField with more info.
22172         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22173         policy and load a field's RVA if needed.
22174
22175 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22176
22177         * class.c (mono_class_metadata_init): create a trampoline for all
22178         virtual functions instead of actually compiling them.
22179
22180 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22181
22182         * class.h, class.c: include name in MonoClassField.
22183         * class.c: fix fundamental type of System.Object and System.String.
22184         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22185         tokens in ldtoken.
22186         * icall.c: remove internalcalls for the Reflection stuff that is now
22187         done in C# code.
22188         * loader.c: mono_field_from_memberref () implementation.
22189         * mono-endian.c: thinko (s/struct/union/g).
22190         * object.c, object.h: make the mono_string_* prototypes actually use
22191         MonoString instead of MonoObject.
22192         * reflection.c, reflection.h: updates for changes in the reflection
22193         code in corlib: we use C structures that map to the actual C# classes.
22194         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22195         fat method header if needed and use the info from the ILGenerator for
22196         methods. Handle fields in types. Misc fixes.
22197
22198 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22199
22200         * class.c (mono_class_metadata_init): bug fix: always allocate
22201         space for static class data
22202
22203 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22204
22205         * class.c (mono_compute_relative_numbering): use relative
22206         numbering to support fast runtime type checks.
22207
22208 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22209
22210         * class.c (mono_class_create_from_typeref): added debugging output
22211         to print class name when MonoDummy is returned instead of real class
22212
22213 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22214
22215         * class.c (mono_class_metadata_init): interface offset table now
22216         contains pointers into the vtable - this is more efficient for the jit
22217
22218 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22219
22220         * class.c (mono_class_metadata_init): use a temporary vtable (the
22221         old algorithm only worked for the interpreter, but not for the jit)
22222
22223 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22224
22225         * loader.c (method_from_memberref): use mono_class_get to get the
22226         class of an array instead of using System.Array directly.
22227         (mono_get_method): also add MEMBERREF methods to the method cache
22228         which usefull for arrays.
22229
22230 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22231
22232         * pedump.c (arch_compile_method): added to compute vtable entry
22233
22234         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22235         number of interfaces.
22236         
22237         * class.h: merged MonoArrayClass into MonoClass
22238
22239         * class.c (mono_class_create_from_typedef): compute the vtable size and
22240         allocate space to include the vtable inside MonoClass
22241         (mono_class_metadata_init): initialize the vtable
22242
22243 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22244
22245         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22246         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22247         * image.c: endian fixes by Laurent Rioux.
22248         * object.h, object.c: rename MonoStringObject to MonoString and
22249         MonoArrayObject to MonoArray. Change some function names to conform to
22250         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22251         guint16* as first argument, so don't use char*.
22252         Provide macros to do the interesting things on arrays in a portable way.
22253         * threads-pthread.c: updates for the API changes and #include <sched.h>
22254         (required for sched_yield()).
22255         * icall.c: updates for the API changes above.
22256         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22257         platforms that need them.
22258
22259 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22260
22261         * class.c: set the correct type for all the fundamental
22262         type when loading the class.
22263
22264 2001-10-05  Dick Porter  <dick@ximian.com>
22265
22266         * threads-pthread.c (pthread_mutex_timedlock): Simple
22267         compatibility version for C libraries that lack this call.
22268
22269 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22270
22271         * class.c: MonoTypes stored in MonoClass are stored as
22272         fundamental MonoTypes when the class represents a
22273         fundamental type (System.Int32, ...).
22274         The TypeHandle return by ldtoken is a MonoType*.
22275         * icall.c: ves_icall_get_data_chunk () write out all the
22276         PE/COFF stuff. Implement ves_icall_define_method (),
22277         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22278         * image.c: properly skip unknown streams.
22279         * loader.h, loader.c: add type_class to mono_defaults.
22280         * metadata.c, metadata.h: export compute_size () as
22281         mono_metadata_compute_size () with a better interface.
22282         Typo and C&P fixes.
22283         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22284         * reflection.c, reflection.h: many cleanups, fixes, output method
22285         signatures and headers, typedef and typeref info, compress the metadata
22286         tables, output all the heap streams, cli header etc.
22287         * row-indexes.h: typo fixes.
22288
22289 2001-10-04  Dick Porter  <dick@ximian.com>
22290
22291         * object.h: Add a synchronisation mutex struct to MonoObject
22292
22293         * object.c (mono_new_object): Initialise the object
22294         synchronisation mutexes
22295
22296         * icall.c: System.Threading.Monitor internal calls
22297         
22298         * threads-pthread.h:
22299         * threads-pthread.c: System.Threading.Monitor internal calls
22300
22301         * threads-types.h: New file, includes the system-specific thread
22302         structures
22303         
22304         * threads-pthread-types.h:
22305         * threads-pthread-types.c: New files, handle pthread-specific
22306         synchronisation types
22307
22308         * threads-dummy-types.h: 
22309         * threads-dummy-types.c: New files of dummy support for
22310         thread-specific types
22311
22312         * metadata.c:
22313         * image.c:
22314         * pedump.c: include mono-endian.h not endian.h
22315         
22316         * Makefile.am: More threads files.
22317         Name mono-endian.h not endian.h
22318
22319 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22320
22321         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22322         stuff and implement a few more bits.
22323         * icall.c: a field needs to be dereferenced twice. Do not use the same
22324         name for two variables in the same scope.
22325         * image.c, image.h: cleanups.
22326
22327 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22328
22329         * class.c (mono_class_metadata_init): bug fix: compute the right size
22330
22331 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22332
22333         * icall.c: implemented some of the Reflection internalcalls.
22334         * image.c, image.h: start writing out the PE/COFF image.
22335         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22336         that does the reverse than decode_blob_size ().
22337         * object.c: use mono_metadata_encode_value (). Move here
22338         temporary implementation of mono_string_to_utf8 ().
22339         * rawbuffer.c: make malloc_map static.
22340
22341 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22342
22343         * metadata.c: fix type comparison for arrays.
22344         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22345         Added a couple of new classes to monodefaults.
22346         * icall.c: added a couple of Reflection-related internalcalls.
22347         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22348         Added a byval_arg MonoType to MonoClass.
22349
22350 2001-09-28  Dick Porter  <dick@ximian.com>
22351
22352         * icall.c:
22353         * threads-pthread.h: 
22354         * threads-pthread.c: Implemented internal calls for
22355         LocalDataStoreSlot operations.  Applied mutexes around all shared
22356         data.  Reworked the thread creation and Start() operations to
22357         avoid a race condition.
22358         
22359         * threads-dummy.h:
22360         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22361
22362 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22363
22364         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22365
22366 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22367
22368         * class.c, loader.c: warn and return NULL instead of erroring out.
22369         * icall.c: added System.AppDomain::getCurDomain().
22370         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22371
22372 2001-09-25  Dick Porter  <dick@ximian.com>
22373
22374         * threads-pthread.h:
22375         * threads-pthread.c: Implemented timed thread joining and added
22376         System.Threading.Thread::Join_internal internal call
22377
22378         * icall.c: Added System.Threading.Thread::Join_internal internal call
22379
22380         * threads-dummy.h:
22381         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22382
22383 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22384
22385         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22386         mono_string_intern () to implement the semantics of the ldstr opcode
22387         and the interning of System.Strings.
22388         * icall.c: provide hooks to make String::IsIntern and String::Intern
22389         internalcalls.
22390
22391 2001-09-23  Dick Porter  <dick@ximian.com>
22392
22393         * threads-dummy.c: 
22394         * threads-dummy.h: New files of dummy threading routines
22395
22396         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22397         support code based on system specifics
22398
22399         Rename PTHREAD_LIBS to THREAD_LIBS
22400         
22401 2001-09-23  Dick Porter  <dick@ximian.com>
22402
22403         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22404         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22405         internal calls.
22406         (mono_thread_init): Set up a Thread object instance to return when
22407         the main thread calls Thread.CurrentThread
22408         (mono_thread_cleanup): Wait for all subthreads to exit
22409
22410         * icall.c: New internal calls for System.Threading.Thread::Sleep
22411         (including Schedule) and CurrentThread
22412
22413         * threads.h: New file, to insulate thread-specific stuff from the
22414         rest of the code
22415
22416 2001-09-21  Dick Porter  <dick@ximian.com>
22417
22418         * threads-pthread.h: 
22419         * threads-pthread.c: New file, for handling pthreads-style
22420         threading support.  Start() now starts a new thread and executes
22421         the ThreadStart delegate instance.
22422
22423         * icall.c: Added the internalcall for
22424         System.Threading.Thread::Start_internal
22425
22426         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22427
22428 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22429
22430         * loader.c: work around the different signatures for delegates
22431         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22432
22433 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22434
22435         * class.h, class.c: add mono_class_get_field_from_name ().
22436         * *: Fix C comments and other ANSI C issues.
22437
22438 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22439
22440         * endian.h, assembly.c: fix some endianness issues.
22441
22442 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22443
22444         * loader.h, load.c: add delegate_class to mono_defaults.
22445         Handle runtime provided methods in mono_get_method ().
22446
22447 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22448
22449         * loader.c (mono_get_method): use pinvoke for internal call
22450
22451         * icall.c: use pinvoke for internal call
22452
22453         * loader.c (method_from_memberref): set the method name
22454
22455 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22456
22457         * metadata.c: help the compiler generate better code for
22458         mono_class_from_mono_type ().
22459
22460 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22461
22462         * class.c (mono_class_metadata_init): delayed computing of the
22463         class size to mono_class_metadata_init ()
22464
22465 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22466
22467         * class.c, class.h: add an interfaces member to MonoClass.
22468         * image.c, image.h: add assembly_name field to MonoImage
22469         from the assembly table.
22470         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22471
22472 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22473
22474         * class.c: Handle Array in mono_class_from_mono_type ().
22475         * metadata.c, pedump.c: some endian fixes.
22476
22477 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22478
22479         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22480         * metadata.c: fix small problem introduced with the latest commit.
22481
22482 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22483
22484         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22485         We don't need a MonoMetadata pointer anymore to compare signatures in
22486         mono_metadata_signature_equal (), update callers.
22487         Reduced memory usage an number of allocations for MonoMethodHeader and
22488         MonoMethodSignature.
22489
22490 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22491
22492         * metadata.c: added compare for szarray.
22493
22494 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22495
22496         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22497         and add a couple more types to it and mono_defaults. Give an hint on
22498         classes that need implementing in our corlib and are referenced
22499         in mscorlib.
22500
22501 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22502
22503         * class.h, class.c: keep track if a class is also an Enum.
22504         * loader.c: Implement a couple more types for use in libffi
22505         marshalling. Gives better diagnostics when failing to dlopen
22506         a library. Set method->klass for P/Invoke methods, too.
22507
22508 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22509
22510         * class.c, class.h: add a MonoType this_arg to MonoClass that
22511         represents a pointer to an object of the class' type that
22512         can be used by the interpreter and later the type cache.
22513         Add best guess alignment info for valuetype objects.
22514
22515 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22516
22517         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22518         into MonoType: one less level of indirection and allocation and
22519         simplifies quite a bit of code. Added cache for MonoTypes that are
22520         used frequently, so that we don't need to allocate them all the time.
22521
22522 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22523
22524         * class.c (mono_class_create_from_typedef): System.Enum is also a
22525         value type, although it does not derive from System.ValueType
22526         (maybe a bug in the ms compiler?)
22527
22528         * metadata.c (mono_type_size): return the right size for value types
22529
22530         * loader.c (mono_get_method): only initialize method header if not abstract
22531
22532         * class.c (mono_class_from_mono_type): use mono_default values. 
22533
22534 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22535
22536         * *: use MonoClass pointers instead of <type_tokens>
22537         
22538         * class.h: new flag: metadata_inited.
22539
22540         * class.c (mono_class_metadata_init): impl.
22541         (mono_class_instance_size): impl.
22542         (mono_class_data_size): impl.
22543
22544 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22545
22546         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22547         MonoClass now has the name and name_space fields. 
22548         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22549         mono_get_method () takes and optional MonoClass as argument.
22550         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22551         instead that takes advantage of a map from class names to typedef
22552         tokens in MonoImage.
22553
22554 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22555
22556         * metadata.c: zero is not a valid alignment boundary.
22557         Merge MONO_TYPE_VOID in default decoding code.
22558
22559 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22560
22561         * image.h: merged MonoMetadata into MonoImage
22562
22563         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22564         identify the type of elements.
22565
22566 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22567
22568         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22569         * cil-coff.h: split MonoMSDOSHeader and add size info.
22570         * image.c: add some consistency checks.
22571         * metadata.c: fix row size computation: one programmer
22572         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22573         add explanation for the locator routine.
22574         Fix decoding of size in method header.
22575         
22576 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22577
22578         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22579         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22580         function from gnome-libs.  This uses the right path separator
22581         based on the OS, and also works around a bug in some systems where
22582         a double slash is not allowed. 
22583         (default_assembly_name_resolver): Use g_concat_dir_and_file
22584         (mono_assembly_open): ditto.
22585
22586 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22587
22588         * metadata.c (mono_metadata_signature_equal): impl.
22589
22590         * *: void is now a realy MonoType (instead of using NULL)
22591         
22592         * metadata.c (do_mono_metadata_parse_type): use
22593         mono_metadata_parse_type to parse void value.
22594
22595 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22596
22597         * metadata.c, metadata.h: in the signature and method header store
22598         only the space required for holding the loca vars and incoming arguments.
22599
22600 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22601
22602         * metadata.c (do_mono_metadata_parse_type): treat void like any
22603         other type (instead of assigning NULL);
22604
22605 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22606
22607         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22608
22609 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22610
22611         * image.c (do_mono_image_open): added a cache for arrays.
22612
22613 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22614
22615         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22616         decode a single column from a row in a metadata table and changes
22617         to take advantage of it in the typedef locator (gives a nice speed up).
22618         Store offset info for function params.
22619
22620 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22621
22622         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22623
22624 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22625
22626         * assembly.c: how could mono_assembly_close () had ever worked?
22627         * metadata.c, metadata.h: provide offset info for local vars.
22628         Implement mono_type_size () to take care of alignment as well
22629         as size (it was mono_field_type_size in cli/class.c before).
22630
22631 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22632
22633         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22634
22635         * assembly.h (CORLIB_NAME): set to corlib.dll
22636
22637         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22638
22639 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22640
22641         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22642         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22643         tokentype.h: massive namespace cleanup.
22644
22645 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22646
22647         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22648
22649 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22650
22651         * metadata.c (mono_metadata_free_type): added check for type !=
22652         NULL (void) before calling mono_metadata_free_type()
22653
22654 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22655
22656         * metadata.h, row_indexes.h: added header with enumerations to use
22657         to index in the columns from tables in metadata and to decode coded
22658         tokens: we should start using this instead of embedding magic numbers
22659         all over the code.
22660
22661 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22662
22663         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22664         Move metadata_t info from cli_image_info_t to MonoImage, where
22665         it's easily accessible. Changed all the uses accordingly.
22666         Added the method and class caches to MonoImage.
22667         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22668         and mono_metadata_decode_value () signature to be more consistent
22669         with the other parse functions (and simplify code). Taken advantage
22670         of zero-length array allocation with GCC. Removed reduntant (and
22671         wrong) MonoFieldType struct and use MonoParam instead. Changed
22672         mono_metadata_parse_field_type () to use common code for parsing.
22673         Added mono_metadata_typedef_from_field () and
22674         mono_metadata_typedef_from_method () to lookup a typedef index from a
22675         field or method token.
22676         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22677
22678 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22679
22680         * metadata.c (mono_metadata_parse_field_type): Implement. 
22681         (do_mono_metadata_parse_type): Split engine from
22682         mono_metadata_parse_type, so that we can create smaller structures
22683         for things that just have one pointer to the MonoType (look at
22684         the MonoFieldType)
22685
22686 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22687
22688         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22689         as Jan Gray found out, it is incorrect. 
22690
22691 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22692
22693         * assembly.c: Implement asssembly loading.  This loads an image
22694         and loads all the referenced assemblies.  Come to think of it, we
22695         could always do lazy loading of the assemblies. 
22696
22697         * image.c (mono_image_open): Keep loaded images in a hashtable.
22698
22699         * image.h (MonoImage): Add reference count.
22700
22701 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22702
22703         * assembly.c (mono_assembly_open): Keep track of the file name in
22704         case the assembly has no ASSEMBLY table.
22705
22706         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22707         from get.c here.
22708
22709 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22710
22711         * metadata.c, metadata.h: decode local vars in method header
22712         parse function. Change callers accordingly.
22713
22714 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22715
22716         * metadata.h, cil-coff.h: protect against multiple inclusion.
22717         Added some new structures to hold information decoded from metadata:
22718         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22719         and relevant decoding/free functions.
22720         * metadata.c: implement decoding functions. Add warning for out of bounds
22721         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22722         all the info about a method signature and invocation. Remove check on
22723         uninitialized local var in parse_mh() and fix memory leak.
22724
22725 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22726
22727         * metadata.h: More macros.
22728
22729         * tokentype.h: New file.
22730
22731 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22732
22733         * assembly.c: added a consistency check and initialize
22734         some structures with g_new0().
22735         * metadata.c: fixed a couple more bugs in table size computation
22736         and add other checks for out-of bound access to metadata.
22737
22738 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22739
22740         * metatada.c: fix bugs computing table sizes. Spew a
22741         warning when index in string heap is out of bounds.
22742
22743 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22744
22745         * metadata.h: Add a couple of macros to manipulate tokens. 
22746
22747 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22748
22749         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22750         cli_section_tables).
22751
22752 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22753
22754         * metadata.c (mono_metadata_user_string): New function, provides
22755         access to the UserString heap. 
22756
22757 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22758
22759         * metadata.c: Add inline documentation.
22760
22761 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22762
22763         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22764         files. 
22765
22766 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22767
22768         * typeattr.h: New file, TypeAttribute flags. 
22769
22770 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22771
22772         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22773         mono_assembly_ensure_section): Section loading code.
22774         (load_section_tables): Load the sections.
22775
22776         * mono/metadata/metadata.c (mono_metadata_locate_token,
22777         mono_metadata_locate): Functions to locate the information
22778         definition given a token or a table and an index.
22779         (mono_metadata_compute_table_bases): New.
22780         (compute_size): New function to compute the sizes of the various
22781         tables.
22782
22783         * mono/metadata/metadata.h: Finish listing the different index
22784         types. 
22785
22786         * mono/metadata/pedump.c: Improve to dump new information.
22787
22788 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22789
22790         * mono/metadata/metadata.c: Entered all the tables matching
22791         Beta2. 
22792
22793         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22794
22795
22796