2007-09-17 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
2
3         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
4         from the image mempool.
5
6         * metadata.c (free_generic_class): Free more data from the inflated class.
7
8         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
9
10         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
11         mempool.
12         (mono_type_create_from_typespec): Ditto.
13
14         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
15         MonoImage to the caller.
16         (mono_init_internal): Save the opened image in a global variable.
17         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
18
19         * reflection.c (resolve_object): Fix a leak.
20
21         * metadata.c: Fix the freeing of data in the generics caches.
22         
23         * metadata.c (free_generic_inst): Comment this out to fix the build.
24         (free_generic_class): Ditto.
25
26         * metadata.c: Free cached generic methods, instantinations and classes when
27         they are removed from the caches.
28         (mono_metadata_free_type): Free the type itself.
29
30         * class.c: Free the result of mono_class_inflate_generic_type () in a few
31         places.
32
33 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
34
35         * boehm-gc.c: restrict managed allocs to __thread supporting
36         architectures.
37
38 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
39
40         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
41         (mono_generic_class_get_class): Fix a leak.
42
43         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
44         mono_metadata_free_type ().
45         (mono_metadata_inflate_generic_inst): Fix a leak.
46
47 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
48
49         * mono-debug.c (free_header_data): Fix a leak missed earlier.
50
51         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
52         mempool.
53
54         * mono-debug.c (mono_debug_close_image): Fix call to 
55         g_hash_table_remove ().
56
57 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
58
59         * icall-def.h: redirect all the string ctor to the managed
60         CreateString () methods.
61         * string-icalls.c, string-icalls.h: removed dead code for string
62         ctors and icalls.
63
64 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
65
66         * mono-debug.c: Fix memory leaks.
67
68 2007-09-14  Jonathan Chambers <joncham@gmail.com>
69
70         * threads-types.h: Implement mono_hazard_pointer_set and 
71         mono_hazard_pointer_clear macros using do/while(0) to fix
72         compilation with MSVC.
73         
74         Code is contributed under MIT/X11 license.
75
76 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
77
78         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
79         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
80
81 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
82
83         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
84         icalls.
85
86 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
87
88         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
89         managed-code allocated as well.
90
91 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
92
93         * class.c (mono_class_is_assignable_from): Add support for generic variance.
94
95 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
96
97         * boehm-gc.c: fixed the build after the AOT changes.
98
99 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
100
101         * wrapper-types.h: Add an ALLOC wrapper type.
102
103         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
104         reference managed allocator methods.
105
106 2007-09-12  Marek Safar  <marek.safar@gmail.com>
107
108         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
109         of Type array and not MonoType, a fix suggested by Hari.
110         
111 2007-09-12  Jonathan Chambers <joncham@gmail.com>
112
113         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
114         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
115         
116         Code is contributed under MIT/X11 license.
117
118 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
119
120         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
121
122 2007-09-12  Marek Habersack  <mhabersack@novell.com>
123
124         * image.c (do_mono_image_open): if assembly file fails to open and
125         MONO_IOMAP is in effect, try to find the path in a
126         case-insensitive way.
127
128         * appdomain.c (mono_runtime_init): do not install postload hooks -
129         tests show that MS.NET doesn't use anything of that sort to
130         trigger the AppDomain.AssemblyResolve event.
131         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
132         made non-static.
133         (mono_runtime_init): init portability helpers here.
134
135         * assembly.c (mono_assembly_load_with_partial_name): if other   
136         attempts fail, trigger the AppDomain.AssemblyResolve event handler
137         to resolve the assembly.
138
139         * domain-internals.h: added mono_try_assembly_resolve and marked
140         it as internal.
141
142 2007-09-11  Jb Evain  <jbevain@novell.com>
143
144         * object-internals.h (MonoReflectionDynamicMethod): add
145         a `MonoReflectionType *owner` field. The owner is used
146         * reflection.c:
147         (mono_reflection_create_dynamic_method): use the owner of the dynamic
148         method as the class declaring the dynamic method.
149         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
150         dynamic method to the declaring type of the methodbuilder.
151
152 2007-09-11  Mark Probst  <mark.probst@gmail.com>
153
154         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
155         rules for calling methods via reflection.
156
157 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
158
159         * reflection.c (resolve_object): Add support for MonoGenericClass. 
160         Inflate MonoType's.
161
162 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
163
164         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
165         provide a managed method that does fast allocations without needing
166         a managed->unmanaged transition. Boehm GC implementation currently
167         enabled for ptrfree objects on sane architectures.
168
169 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
170
171         * marshal.c, marshal.h: exported a couple of useful functions and
172         added mono_mb_get_label () to easily handle backward branches.
173
174 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
175
176         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
177
178 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
179
180         * loader.c (find_method): Fixed the regression introduced while
181         fixing bug #81466.
182
183 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
184
185         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
186         well.
187         
188         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
189         icall.c reflection.c: Pass a MonoGenericContext argument to 
190         mono_lookup_dynamic_token ().
191
192         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
193         #82744.
194         
195 2007-09-09  Robert Jordan  <robertj@gmx.net>
196
197         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
198         for generic methods.
199
200         * object.c (mono_object_get_virtual_method): Handle generic methods.
201         Fixes bug #78882.
202
203         Code is contributed under MIT/X11 license.
204
205 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
206
207         * image.c: fix locking in mono_image_load_file_for_image ().
208
209 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
210
211         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
212         used only as a cache: added an icall to fill it.
213
214 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
215
216         * reflection.h: exposed mono_reflection_free_type_info
217         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
218         since mono_reflection_bind_generic_parameters makes a copy of it.
219         * reflection.c (free_type_info): subinfos should be freed.
220         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
221         made non static.
222         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
223         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
224         this fixes #82695 and #81726.
225    
226
227 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
228
229         * process.h, process.c:  added support for user profile/info in
230           ProcessStartInfo. For now only Windows works.
231
232 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
233
234         * metadata.c: consider the generic arguments when comparing
235         signatures (bug #82614).
236
237 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
238
239         * cil-coff.h, image.c: updated assembly loader to cope with the
240         PE32+ 64 bit file format.
241
242 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
243
244         * assembly.c, class.c, domain.c, loader.c: remove useless
245         inclusion of cil-coff.h.
246
247 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
248
249         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
250         if interface is marked with CoClassAttribute. 
251    
252         Code is contributed under MIT/X11 license.
253
254 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
255
256         * sgen-gc.c: ensure no object from the to space is copied again or finalized
257         if it's seen twice in major collections.
258
259 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
260
261         * sgen-gc.c: big objects are not copied to the gray area, but they
262         need to be considered for scanning, too, if they are brought alive
263         by an object ready for finalizations or a survived one.
264
265 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
266
267         * sgen-gc.c: properly account the number of disappearing links when
268         they are nullified.
269
270 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
271
272         * sgen-gc.c: share the code to scan the registered roots between the
273         different types of collections.
274
275 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
276
277         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
278
279 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
280
281         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
282         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
283
284 2007-08-28  Mark Probst  <mark.probst@gmail.com>
285
286         * security-manager.c (mono_security_manager_get_methods):
287         LinkDemandSecurityException now has 2 arguments instead of 3.
288
289 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
290
291         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
292         platforms which need it.
293
294 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
295
296         * sgen-gc.c: unregister thread data structures with a pthread_key_t
297         dtor.
298
299 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
300
301         * threads.c: free the thread static data on thread exit.
302
303 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
304
305         * class.c: walk the hierarchy to find the generic definition for
306         a class (fixes runtime part of bug #82498).
307
308 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
309
310         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
311         ...
312
313         * image.c (mono_image_close): Here. Hopefully fixes #82510.
314
315 2007-08-24  Mark Probst  <mark.probst@gmail.com>
316
317         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
318
319 2007-08-24  Robert Jordan  <robertj@gmx.net>
320
321         * appdomain.c: don't perform the ':'->';' substitution on Win32.
322
323 2007-08-24  Jb Evain  <jbevain@novell.com>
324
325         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
326         for byref types.
327
328 2007-08-24  Mark Probst  <mark.probst@gmail.com>
329
330         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
331         #82286.
332
333 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
334
335         * assembly.c: Fix a warning.
336         
337 2007-08-23  Marek Habersack  <mhabersack@novell.com>
338
339         * appdomain.c: parse the <runtime> section looking for the probing
340         element with the 'privatePath' attribute, which sets additional
341         directories in which the runtime should look for assemblies.
342
343 2007-08-23  Robert Jordan  <robertj@gmx.net>
344
345         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
346         Fixes #82499.
347
348 2007-08-23  Martin Baulig  <martin@ximian.com>
349
350         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
351         _mono_debug_init_corlib() and remove it from the header file.
352
353 2007-08-23  Martin Baulig  <martin@ximian.com>
354
355         * mono-debug-debugger.c
356         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
357         don't notify the debugger about it.
358
359         * mono-debug-debugger.h
360         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
361
362 2007-08-23  Robert Jordan  <robertj@gmx.net>
363
364         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
365         Code is contributed under MIT/X11 license.
366
367 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
368
369         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
370
371 2007-08-22  Martin Baulig  <martin@ximian.com>
372
373         * mono-debug.c: Store debugging info on a per-domain basis and
374         free it on domain unload.  Add support for unloading symbol files.
375
376         * mono-debug.h
377         (MonoDebugList): New typedef.
378         (MonoSymbolTable):
379         - add `data_tables and `type_table'.
380         - replace 'symbol_files' and `num_symbol_files' with a
381           `MonoDebugList *'.
382         (mono_debug_data_table): Removed.
383         (mono_debug_list_add): New public function.
384         (mono_debug_list_remove): New public function.
385         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
386         (mono_debug_init_2_memory): Renamed into
387         mono_debug_open_image_from_memory().
388         (mono_debug_close_image): New public function.
389         (mono_debug_domain_create): Likewise.
390         (mono_debug_domain_unload): Likewise.
391         (MONO_DEBUGGER_VERSION): Bump to 60.
392
393         * mono-debug-debugger.h
394         (MonoDebuggerEvent):
395         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
396         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
397         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
398         - rename `THREAD_CREATED' and `THREAD_EXITED' into
399           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
400         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
401           meaning.
402         (mono_debugger_add_symbol_file): Removed.
403         (mono_debugger_add_type): Removed.
404         (mono_debugger_lookup_type): Removed.
405         (mono_debugger_lookup_assembly): Removed.
406
407         * domain.c
408         (mono_domain_create): Call mono_debug_domain_create().
409         (mono_init_internal): Call mono_debug_init_corlib().
410
411         * assembly.c
412         (mono_assembly_close): Call mono_debug_close_image().
413
414 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
415
416         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
417         mmap call.
418
419 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
420
421         * sgen-gc.c: ensure section->pin_queue_end is initialized
422         correctly when non pinning objects in the section have been found.
423
424 2007-08-22  Marek Habersack  <mhabersack@novell.com>
425
426         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
427         containing a list of directories separated by ':'. MSDN docs say
428         the directories should be separated with ';'. Part of a bugfix for
429         bug #81446
430
431 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
432
433         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
434         it should MonoType and not MonoClass.
435
436 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
437
438         * culture-info-table.h : regenerated.
439
440 2007-08-20  William Holmes  <billholmes54@gmail.com>
441
442         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
443          to call ReplaceFile Kernel32 on windows or in io-layer.
444         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
445         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
446          as an internal call.
447
448         Code is contributed under MIT/X11 license.
449
450 2007-08-20  Jb Evain  <jbevain@novell.com>
451
452         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
453         and MONO_EXCEPTION_FIELD_ACCESS.
454
455         * debug-helpers.[c|h]: new mono_field_full_name function.
456
457 2007-08-20  Mark Probst  <mark.probst@gmail.com>
458
459         * class.c: Removed class_security_level() and moved it to
460         security-core-clr.c.
461
462         * security-core-clr.c, security-core-clr.h: class_security_level()
463         is now public and renamed to mono_security_core_clr_class_level().
464         It also looks for security attributes in the classes a class is
465         nested in.
466
467 2007-08-20  Mark Probst  <mark.probst@gmail.com>
468
469         * security-core-clr.c, security-core-clr.h: CoreCLR security
470         utility functions.
471
472         * Makefile.am: Added security-core-clr.[ch].
473
474         * security-manager.c, security-manager.h: Functions and enum for
475         setting and getting the security mode.
476
477         * class.c: CoreCLR security checks.
478
479 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
480
481         * icall-def.h, process.c, process.h: implemented icall to get
482         user/system processor times.
483
484 2007-08-17  Mark Probst  <mark.probst@gmail.com>
485
486         * domain.c, threads.c, class-internals.h, domain-internals.h: New
487         reader-lock-free jit_info_table.
488
489 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
490
491         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
492
493         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
494
495         * object-internals.h (MonoException): Add missing _data member.
496
497 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
498
499         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
500         checking that only methods with matching qname or fqname are picked
501         from implemented interfaces.
502
503 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
504
505         * verify.c (do_newarr):added, do type verification of
506         newarr ops, push the right value on the eval stack.
507         * verify.c (mono_method_verify): use do_newarr
508
509
510 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
511
512         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
513         factored the common code into get_boxable_mono_type, which
514         is now using mono_type_get_full, this fixed byref related tests.
515
516 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
517
518         * class.c: added mono_type_get_full, this function has the same
519         behavior of mono_class_get_full but the returned MonoType has
520         all metadata of the associated token in case of a typespec token.
521         * class.c: added mono_type_retrieve_from_typespec, used by 
522         mono_type_get_full to retrieve the token type.
523         * class.c (mono_class_create_from_typespec): changed to use
524         mono_type_retrieve_from_typespec.
525         * class.c (mono_ldtoken): changed to use mono_type_get_full
526         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
527         * class-internals.h: exported mono_type_get_full for internal use.
528
529 2007-08-16  Jb Evain  <jbevain@novell.com>
530
531         * domain.c (supported_runtimes): add entry for
532         the 'moonlight' runtime version.
533
534 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
535
536         * verify.c (mono_method_verify): small typo sliped in.  
537
538 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
539
540         * verify.c (do_unbox_value): added, do type verification of
541         unboxing ops
542         * verify.c (mono_method_verify): use do_unbox_value
543
544
545 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
546
547         * verify.c (dump_stack_value): fixed typo, was printing string
548         instead of object on stack.
549         * verify.c (do_box_value): moved the byref check up as it leads
550         to invalid code and should be done earlier.
551         * verify.c: improved error messages for and ldobj
552
553 2007-08-15  William Holmes  <billholmes54@gmail.com>
554
555         * marshal.c (emit_marshal_custom): Omit the call to 
556           marshal_native_to_managed when calling native to managed 
557           and the argument is specified as an out argument.
558
559         Code is contributed under MIT/X11 license.
560
561 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
562
563         * verify.c: fixed the type checks for generics, function pointers and vectors.
564         Added type verification for ldobj and ldtoken. The verifier
565         would segfault if header or signature of a method contained references
566         to non-existant types.
567
568 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
569
570         * marshal.c (cominterop_get_ccw): Patch from
571         Bill Holmes to no walk up interface hierarchy. 
572         All parent methods should be present in the interface for COM.
573    
574         Code is contributed under MIT/X11 license.
575
576 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
577
578         * marshal.c (emit_marshal_com_interface): Patch from
579         Bill Holmes to handle COM Interfaces as return values
580         for native->managed calls.
581    
582         Code is contributed under MIT/X11 license.
583
584 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
585
586         * marshal.c (cominterop_get_idispatch_for_object): Implement
587         for runtime callable wrappers.
588    
589         Code is contributed under MIT/X11 license.
590
591 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
592
593         * pedump.c (main): changed from mono_init to mono_init_from_assembly
594         so 2.0 types are accessible
595
596
597 2007-08-13  Miguel de Icaza  <miguel@novell.com>
598
599         * domain.c (mono_init_internal): Call mono_assembly_load_friends
600         once we load mscorlib.   Due to the order in which we initialize,
601         the mono_assembly_load_full routine that loads mscorlib did not
602         load friends.   We now load it once we load the
603         mono_defaults.internals_visible_class class. 
604
605         * assembly.c: Expose the mono_load_friend_assemblies method.
606
607 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
608
609         * verify.c: improved the handling of boxing, better
610         type checking for unary ops and conversion. Fix bug
611         regarding managed pointer compatibility checking
612
613 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
614
615         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
616
617         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
618
619 2007-08-09  Raja R Harinath  <rharinath@novell.com>
620
621         * reflection.c (dup_type): Remove.
622         * class.c (dup_type): Remove.
623         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
624         instead of the dodgy 'dup_type'.
625         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
626         handle the case where 'dup_type' needed the second argument.
627
628 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
629
630         * domain.c: Fix a warning.
631
632 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
633
634         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
635         checking that methods with the same fqname are not overridden
636         with a method from an ancestor.
637
638 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
639
640         * threads.c (free_thread_static_data_helper): Avoid a crash if
641         thread->static_data is not yet set.
642
643 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
644
645         * marshal.c: Use correct image when emitting
646         native wrapper for COM calls.
647    
648         Code is contributed under MIT/X11 license.
649
650 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
651
652         * icall-def.h, security.c, security.h :
653           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
654
655 2007-08-07  Martin Baulig  <martin@ximian.com>
656
657         * mono-debug-debugger.h
658         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
659
660         * domain.c (mono_domain_free): Call
661         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
662
663 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
664
665         * verify.c (check_underflow, check_overflow): error message now returns IL offset
666         * verify.c (in_same_block): code should test if either offset is inside the clauses
667         * verify.c (mono_method_verify): push the exception into the eval stack of exception
668         and filter blocks
669
670 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
671
672         * image.c (mono_image_close): Fix a leak.
673
674         * object.c (mono_runtime_invoke_array): Avoid using alloca.
675
676         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
677
678 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
679
680         * domain.c, threads.c, threads-types.h: fix memory retention issue
681         with thread static variables not being cleared on domain unload.
682         Reuse thread static slots after domain unload.
683
684 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
685
686         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
687         nullable type.
688
689         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
690         now done in mono_runtime_invoke_array.
691
692         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
693         receiver is a nullable type.
694
695         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
696         generic parameter.
697
698 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
699
700         * marshal.c: Implement COM Objects as return type for 
701         managed->unmanaged calls. Added Release calls for COM Object
702         out/return values in managed->unmanaged calls.
703
704         Code is contributed under MIT/X11 license.
705
706 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
707
708         * threads.h, threads-type.h: move the hazard pointer declarations
709         to the private header.
710
711 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
712
713         * file-io.c, appdomain.c: memory leak fixes.
714
715 2007-08-02  Dick Porter  <dick@ximian.com>
716
717         * socket-io.c
718         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
719         SO_REUSEADDR setting into io-layer/sockets.c.
720
721 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
722
723         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
724         from Object when called on a generic parameter. Fixes #82211.
725
726 2007-08-01  Dick Porter  <dick@ximian.com>
727
728         * file-io.c (convert_share): Test FileShare values bit-by-bit.
729         Fixes bug 79250 yet again.
730
731 2007-07-30  Martin Baulig  <martin@ximian.com>
732
733         Merged the `debugger-dublin' branch.
734
735         * mono-debug.h
736         (MonoDebugDataTable): New typedef.
737         (MonoDebugMethodAddressList): New typedef.
738         (MonoDebugWrapperData): Removed.
739         (MonoDebugSymbolTable): Removed `current_data_table',
740         `current_data_table_size', `current_data_table_offset'.
741         (MonoDebugDataItemType): Moved into mono-debug.c.
742         (MonoDebugMethodJitInfo): Remove `address'.
743         (mono_debug_data_table): New global variable.
744         (mono_debug_lookup_method_addresses): New public function.
745         (mono_debug_find_method): Take a `MonoMethod *', not a
746         `MonoDebugMethodInfo *'.
747
748         * mono-debug.c: Drop support for the old symbol tables.
749
750 2007-06-28  Martin Baulig  <martin@ximian.com>
751
752         * mono-debug.c (mono_debug_debugger_version): New public variable.
753
754 2007-07-31  William Holmes  <billholmes54@gmail.com>
755
756         * metadata.c Changed mono_type_create_from_typespec to not insert
757           the type into the hash map until after
758           do_mono_metadata_parse_type has completed.
759         Fixes Bug #82194
760         Code is contributed under MIT/X11 license.
761
762 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
763
764         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
765         generic parameter. Fixes #82211.
766
767 2007-07-27  Jb Evain  <jbevain@novell.com>
768
769         * pedump.c (dump_metadata, dump_metadata_header): dump
770         versions contained in the metadata header.
771
772 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
773
774         * threads.c: register small_id_table with the GC.
775
776 2007-07-27  Mark Probst  <mark.probst@gmail.com>
777
778         * threads.c, threads.h, class-internals.h, object-internals.h:
779         Hazard pointers, to be used by lock-free parallel algorithms.
780
781 2007-07-26  Dick Porter  <dick@ximian.com>
782
783         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
784         routine on non-windows platforms, as I've not managed to think of
785         a non-kludgy way of doing this.  Finishes off bug 78739.
786
787 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
788
789         * object.c: properly setup interface_bitmap in proxy vtables.
790
791 2007-07-25  Marek Habersack  <mhabersack@novell.com>
792
793         * appdomain.c (get_shadow_assembly_location): do not use TickCount
794         to create unique shadow copy target directories, use the domain's
795         serial number instead. Each domain gets a unique target directory
796         that way.
797
798         * domain.c (mono_domain_create): added code to increment domain
799         shadow copy serial number and cache the value in the current
800         domain structure.
801
802         * domain-internals.h (struct _MonoDomain): added a new field -
803         shadow_serial to hold the serial number used in generation of
804         shadow-copy directories. This is to make sure that the directory
805         name is unique for each and every domain created. We avoid a race
806         condition with overriding assemblies already in use by other app
807         domains.
808
809 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
810
811         * class.c (mono_bounded_array_class_get): fixed memory leak when 
812         binding generic parameters.
813
814 2007-07-24  Raja R Harinath  <rharinath@novell.com>
815
816         * metadata.c (do_mono_metadata_parse_generic_class): Use
817         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
818         error.
819
820 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
821
822         * loader.c, class-internals.h, reflection.c: removed the per-method
823         generics hashtable: we use the global one through the call of
824         mono_class_inflate_generic_method ().
825
826 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
827
828         * class.c, metadata.c, class-internals.h: introduce yet another
829         generics global cache for inflated methods (fixes 98% of the perf
830         issue in bug #81806).
831
832 2007-07-23  Raja R Harinath  <rharinath@novell.com>
833
834         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
835         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
836         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
837         return a MonoGenericInst containing (a copy) of those types.
838         (mono_metadata_inflate_generic_inst): Update to changes.
839         (mono_metadata_parse_generic_inst): Likewise.
840         (mono_get_shared_generic_inst): Likewise.
841         * reflection.c (mono_class_bind_generic_parameters): Likewise.
842         (mono_reflection_bind_generic_method_parameters): Likewise.
843         * metadata-internals.h: Likewise.
844         * icall.c (free_generic_context): Kill.
845         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
846
847         * reflection.c (reflection_methodbuilder_to_mono_method): Use
848         mono_metadata_type_dup.
849         * marshal.c (mono_mb_create_method): Likewise.
850
851         * metadata.c (mono_metadata_type_dup): Rename from
852         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
853         MonoImage.  Handle a few more cases, esp. when no mempool is given.
854         * marshal.c, metadata-internals.h: Update to changes.
855
856 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
857
858         * class.c: fixed a small leak for array classes and removed warning.
859
860 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
861
862         * loader.c (mono_method_get_param_token): Make this work on generic methods.
863         Return 0x8000000 for return parameters. Fixes #82161.
864
865 2007-07-21  Marek Habersack  <grendello@gmail.com>
866
867         * appdomain.c (get_shadow_assembly_location): append the current
868         ticks value to the path. Avoids overwriting the same assemblies by
869         several threads at the same time.
870
871 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
872         and Raja R Harinath  <rharinath@novell.com>
873
874         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
875         Simplify slightly.
876         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
877         property for testing if a method is a generic method definition.
878
879 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
880
881         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
882
883 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
884
885         * verify.c: used function from private branch, reverted to the one in class.h 
886
887 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
888
889         * verify.c: a typo slipped in and the code wont compile
890
891 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
892
893         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
894         disabled box instruction as it is doing the wrong thing
895         improved stack dump messages, now it is easier to debug type related issues
896
897
898 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
899
900         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
901
902 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
903
904         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
905         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
906         grouped with class and valuetype. This change will simply 
907         the code as it should be handled just like unmanaged pointers.
908
909 2007-07-19  Mark Probst  <mark.probst@gmail.com>
910
911         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
912
913 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
914
915         * verify.c: several stack merge issues fixed, reference comparisons now
916         check the type size. strict type check now works correctly.
917         added more uses of IS_MANAGED_POINTER macro.
918         fixed issues pointed by running the test suite against .net.
919         
920
921 2007-07-19  Mark Probst  <mark.probst@gmail.com>
922
923         * class.c, loader.c, class-internals.h: Removed the
924         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
925         defines.
926
927         * icall.c: Better error checking in some internal reflection
928         methods.
929
930 2007-07-18  William Holmes  <billholmes54@gmail.com>
931
932         * filewatcher.c : removed unused variable 'filename' in 
933           ves_icall_System_IO_FSW_SupportsFSW
934
935 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
936
937         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
938         obsolete, removed.
939
940 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
941
942         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
943         
944         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
945
946 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
947
948         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
949         Implement generics support.
950         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
951
952         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
953         type_args and method_args arguments.
954         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
955         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
956         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
957
958 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
959
960         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
961           It adds a rootimage parameter to mono_reflection_get_type_internal,
962           adds new function mono_reflection_get_type_with_rootimage and use
963           the rootimage to resolve the types instead of the current image
964
965 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
966
967         * culture-info-table.h: Forgot to update after r78304.
968
969 2007-07-13  Raja R Harinath  <rharinath@novell.com>
970
971         * class.c (mono_class_is_open_constructed_type)
972         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
973
974 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
975
976         * class.c (mono_bounded_array_class_get):  method fails if used with
977         an incomplete TypeBuilder enum (no basetype field), fixed it by 
978         avoiding calculating the size for such array as it cannot be instantiated.
979         Fix bug #82015
980
981 2007-07-12  Raja R Harinath  <rharinath@novell.com>
982
983         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
984         field.
985         * metadata.c, reflection.c: Update to changes.
986
987 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
988
989         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
990         mono_class_is_valid_enum, they are used to valide a enum when loading.
991         * reflection.c: used new functions to throw TypeLoadException when and
992         invalid enum is build with TypeBuilder. Fixes #82018
993   
994 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
995
996         * object.c: forgot commit of mono_class_setup_methods () to access
997         iface->methods.
998         * object-internals.h: added a few more handy fields to
999         MonoIMTCheckItem.
1000
1001 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1002
1003         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1004         iface->methods.
1005
1006 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1007
1008         * class-internals.h, object-internals.h, object.c: IMT-based
1009         interface invocation core from Massimiliano Mantione
1010         (massi@ximian.com) with a reworked arch-specific interface,
1011         bsearch implementation and a few bugfixes and memory savings by me.
1012
1013 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1014
1015         * class.c (mono_class_create_from_typedef): mono would segfault if 
1016         an enum did not have a __value field. It now throws a TypeLoadException
1017         for such cases. Fix bug #82022
1018
1019 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1020
1021         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1022
1023 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1024
1025         * class.c (mono_class_init): If a class is already inited but has
1026         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1027
1028 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1029
1030         * class.c: Properly handle the case of an unimplemented interface
1031         method.  Fixes: 81673.
1032
1033 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1034
1035         * class-internals.h, object.c: cleanup patch from massi: use
1036         MonoVTable->interface_bitmap since the vtable interfaces offset array
1037         is going away.
1038
1039 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1040
1041         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1042         GetMDStreamVersion icall instead.
1043
1044 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1045
1046         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1047         not use mono_dl_build_path() with a full library name: makes
1048         fallbacks to libgaim and libfam work.
1049
1050 2007-07-06  William Holmes  <billholmes54@gmail.com>
1051
1052         * assembly.c: Added a continue statement in probe_for_partial_name when
1053          parse_assembly_directory_name fails.  Fixes : 82002
1054
1055 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1056
1057         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1058         and added a verification  for TYPEDBYREF.
1059         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1060         make native int interchangeable with int32 and some small cleanup and formating.
1061         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1062         handle byref of byref.
1063         * verify.c (push_local): handle byref of byref.
1064         * verify.c (do_binop): invalid mix of values is unverifiable
1065         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1066         added visibility checks
1067         * verify.c (field related method): added visibility checks
1068         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1069
1070 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1071
1072         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1073         string.
1074
1075 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1076
1077         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1078
1079         * marshal.c (emit_marshal_string): When returning a string from managed code,
1080         allways make a copy even for unicode strings. Fixes #81990.
1081
1082 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1083
1084         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1085         of byref generic inst types (bug #81997).
1086
1087 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1088
1089         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1090         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1091
1092 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1093
1094         * marshal.c (emit_marshal_string): Add support for unicode strings in
1095         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1096
1097 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1098
1099         * verify.c: field load/store are now verified, missing only access checks now
1100
1101 2007-06-28  Martin Baulig  <martin@ximian.com>
1102
1103         * mono-debug.c (mono_debug_debugger_version): New public variable.
1104
1105 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1106
1107         * locales.c: When constructing DateTimeFormat or NumberFormat for
1108         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1109         MonoCultureInfo contructed from the current locale is always
1110         read-only and has UseUserOverride set to true. All MonoCultureInfo
1111         instances returned for GetCultures have both IsReadOnly and
1112         UseUserOverride set to true. Fixes part of bug #81930.
1113
1114 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1115
1116        * icall-def.h: Update System.__ComObject icalls
1117        * marshal.c: Avoid managed transition (and object creation)
1118        when looking up COM interface in RCW.
1119        * marshal.h: Ditto.
1120        
1121        Code is contributed under MIT/X11 license.
1122
1123 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1124
1125         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1126         to avoid crashes during assembly unloading.
1127
1128 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1129
1130         Fix MethodInfo.IsGenericMethodDefinition
1131         * reflection.c (mono_reflection_bind_generic_method_parameters):
1132         Rearrange code to ensure we always uses a generic method definition.
1133         * class.c (mono_class_inflate_generic_method_full): Set
1134         'generic_container' field only for generic method definitions.
1135         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1136         Use presense of 'generic_container' field as indication of being a
1137         generic method definition.
1138
1139 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1140
1141         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1142
1143         * object-internals.h: Reflect changes in the layout of the managed Delegate
1144         class.
1145         
1146         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1147         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1148         runtime memory used by the dynamic method. Fixes #77146.
1149
1150 2007-06-21  Dick Porter  <dick@ximian.com>
1151
1152         * file-io.h: 
1153         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1154         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1155         81767.
1156
1157 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1158
1159         * reflection.c (method_encode_methodspec): Add a tripwire.
1160         * class.c (inflate_generic_type): The fully open generic type is
1161         not the same as the generic type definition.
1162
1163 2007-06-21  Martin Baulig  <martin@ximian.com>
1164
1165         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1166
1167         * mono-debug-debugger.h
1168         (MonoDebuggerBreakpointInfo): Removed.
1169         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1170         (mono_debugger_remove_breakpoint): Likewise.
1171         (mono_debugger_breakpoint_callback): Likewise.
1172         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1173
1174 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1175
1176         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1177         generic type is not the same as the generic type definition.
1178         * class.c (mono_generic_class_get_class): Likewise.
1179
1180 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1181
1182         * icall.c: The second argument to 
1183         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1184         is a MonoType not a MonoClass.
1185
1186 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1187
1188         * verify.c: support for function pointers in the verifier
1189
1190 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1191
1192         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1193
1194 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1195
1196         * assembly.c: removed Mono.Data.SqliteClient from the list of
1197         forward-compatible assemblies as it breaks the ABI (bug #81899).
1198
1199 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1200
1201         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1202         lookup/update with the loader lock.
1203         * reflection.c (mono_class_bind_generic_parameters): No need to
1204         protect mono_metadata_lookup_* with the loader lock.
1205         * class.c (inflate_generic_type): Likewise.
1206         
1207         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1208         on a generic instantiated type.
1209
1210 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1211
1212         *verify.c: produce meanfull error messages on verification error
1213         *verify.c: fixed some cases of verification errors reported as validation errors
1214         *pedump.c: fixed the error name array, now it shows validation errors properly
1215         *verify.h: fixed the contant that should be used for verification errors
1216
1217 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1218
1219         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1220         for bug #77596, 81858 and 80743 (generics data structures on domain
1221         unload).
1222
1223 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1224
1225         Avoid allocating 'MonoGenericContext' on the heap.
1226         * class-internals (_MonoMethodInflated::context): Make field
1227         inline, not a pointer.
1228         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1229         stack.  Use the context embedded within the inflated method as the
1230         hash key, rather than 'new_context'.
1231         * class.c (inflate_generic_context): Simplify.  Return a struct
1232         rather than allocating on the heap.
1233         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1234         doesn't salt away a copy of the context -- simplifying the
1235         lifetime rules of a 'MonoGenericContext *'.
1236         (mono_method_get_context): Return pointer to embedded context.
1237         (setup_generic_array_ifaces): Allocate temporary context on stack.
1238         * reflection.c (inflate_mono_method): Likewise.
1239         (mono_reflection_bind_generic_method_parameters): Likewise.
1240         Use the context embedded within the inflated method as the hash key.
1241
1242         Avoid a source of allocation of 'MonoGenericContext'.
1243         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1244         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1245         * class.c: Update to changes.
1246         (mono_generic_class_get_context): Simplify drastically.  Now just
1247         returns a pointer to the field.
1248         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1249         argument as a const pointer.
1250         (mono_metadata_generic_context_equal): Likewise.
1251         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1252         Update to changes.
1253
1254 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1255
1256         * verify.c improved the handling of brtrue/brfalse, factored out common code
1257
1258 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1259
1260         Kill MonoGenericMethod.
1261         * class-internals.h (MonoGenericContext::method_inst): Rename from
1262         'gmethod' and convert to a MonoGenericInst.
1263         (MonoGenericMethod): Remove.
1264         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1265         * loader.c (method_from_methodspec): Update to changes.  Use a
1266         MonoGenericContext as the key to the hashtable.
1267         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1268         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1269         (mono_metadata_generic_context_hash): Likewise from
1270         'mono_metadata_generic_method_hash'.  Change hash function.
1271         (mono_metadata_load_generic_params): Update to changes.
1272         (mono_get_shared_generic_method): Remove.
1273         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1274         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1275         (inflate_generic_context): Likewise.
1276         (mono_class_inflate_generic_method_full): Likewise.
1277         (setup_generic_array_ifaces): Likewise.
1278         (mono_class_create_from_typespec): Likewise.
1279         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1280         (method_encode_methodspec): Update callsite.
1281         (reflection_methodbuilder_to_mono_method): Update to changes.
1282         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1283         MonoGenericContext as the key to the hashtable.
1284         (inflate_mono_method): Update to changes.
1285
1286         * class-internals.h (MonoGenericMethod::container): Remove.
1287         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1288
1289 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1290
1291         * profiler-private.h, profiler.c, profiler.h: added API to profile
1292         exception events.
1293
1294 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1295
1296         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1297
1298 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1299
1300         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1301         Fixed overflow and underflow not aborting the verification process.
1302
1303 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1304
1305         * class-internals.h (MonoStats): Added stats entries for dynamic
1306         code allocations.
1307
1308 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1309
1310         * loader.c (mono_free_method): Free header->locals and header->clauses.
1311
1312         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1313         dynamic case.
1314
1315         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1316
1317         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1318
1319 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1320
1321         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1322         the tables.
1323
1324 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1325
1326         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1327
1328 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1329
1330         MonoGenericMethod on a diet
1331         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1332         here ...
1333         (_MonoGenericMethod::reflection_info): ... from here.
1334         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1335         Update to changes.
1336         * reflection.c (inflate_mono_method): Likewise.
1337         (mono_reflection_bind_generic_method_parameters): Likewise.
1338
1339 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1340
1341         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1342         *verify.c: factored long ldarg forms to share code with short forms
1343
1344 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1345
1346         *verify.c: fixed code formating factored some duplicate code
1347         into a new function
1348
1349         *verify.h: fixed binary incompatibility introduced earlier
1350
1351         *pedump.c: fixed formating
1352
1353 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1354
1355         Fix assertion when disassembling Mono.C5.dll
1356         * loader.c (method_from_methodspec): Avoid inflating a method
1357         twice with the same context.  If the methodref is inflated, use
1358         the declaring method instead.
1359
1360         * class.c (mono_class_from_generic_parameter): Fix case similar to
1361         bug #81830 handled below, but for method containers.
1362
1363 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1364
1365         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1366         get_shared_generic_class.  Directly inflate the instance.
1367         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1368         (inflate_generic_class): Delete.
1369         (get_shared_generic_class): Delete.  Move setting of
1370         'cached_class' and 'cached_context' ...
1371         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1372
1373         * metadata.c (mono_metadata_lookup_generic_class): Change
1374         signature to take the components of a MonoGenericClass rather than
1375         an allocated MonoGenericClass.  Change semantics to be intern-like.
1376         * reflection.c (mono_class_bind_generic_parameters): Update to
1377         changes.  Make locking region tighter.
1378         * class.c (inflate_generic_class): Update to changes.
1379         (get_shared_generic_class): Likewise.
1380         * metadata-internals.h: Likewise.
1381
1382         * reflection.c (mono_class_bind_generic_parameters): Take and
1383         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1384         (mono_reflection_bind_generic_parameters): Use
1385         'mono_class_bind_generic_parameters' rather than duplicate the code.
1386         * class.c (mono_bounded_array_class_get): Update to changes.
1387         * object-internals.h: Likewise.
1388
1389         * reflection.c (mono_class_bind_generic_parameters): Only support
1390         parameterizing generic type definitions.  Remove support for other
1391         open types.
1392
1393 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1394
1395         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1396
1397         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1398         in the dynamic case.
1399
1400 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1401
1402         * threads.c: When cleaning up thread, reset the Background bit.
1403         Fixes bug #81720.
1404
1405 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1406
1407        * metadata.c: Move variable declarations to top of scope.
1408        * verify.c: Move variable declarations to top of scope.
1409
1410        Code is contributed under MIT/X11 license.
1411
1412 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1413
1414         * reflection.c (mono_class_bind_generic_parameters): Replace
1415         open-coded loop with mono_metadata_inflate_generic_inst.
1416
1417         * class.c (get_shared_generic_class): Don't call
1418         mono_get_shared_generic_inst.  Use the container's own
1419         'class_inst'.
1420
1421         * metadata.c (mono_metadata_load_generic_params): Move
1422         initialization of 'context' field here from ...
1423         * class.c (mono_class_create_from_typedef): ... here, and ...
1424         * loader.c (mono_get_method_from_token): ... here.
1425
1426         * class.c (get_shared_generic_class): Rename from
1427         mono_get_shared_generic_class and make static.
1428         (mono_get_shared_generic_inst): Move to metadata.c.
1429         * loader.c (mono_get_shared_generic_method): Likewise.
1430         * class-internals.h, metadata-internals.h: Update to changes.
1431
1432         Fix #81830
1433         * class.c (mono_class_from_generic_parameter): Don't assume a
1434         generic container owner exists.  Generic containers from monodis
1435         don't have any.
1436
1437 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1438
1439         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1440         * verify.h: new typedefs to returns the non-verifiable status
1441         * verify.c: initial implementation of generics, stack merging and object compatibility check
1442
1443 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1444
1445         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1446         a MonoInternalHashTable again (fixed bug in internal hash table
1447         code).
1448
1449 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1450
1451         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1452         MonoInternalHashTable again (fixed bug in internal hash table
1453         code).
1454
1455 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1456
1457         * class.c, image.c, class-internals.h, domain.c,
1458         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1459         changes.  Have to figure out what makes them break the SWF
1460         regression.
1461
1462 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1463
1464         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1465         a MonoInternalHashTable now.
1466
1467 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1468
1469         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1470         MonoInternalHashTable now.
1471
1472 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1473
1474         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1475         invoke_impl code.
1476
1477         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1478
1479         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1480         dependent trampoline.
1481
1482         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1483
1484         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1485
1486 2007-05-29  Robert Jordan  <robertj@gmx.net>
1487
1488         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1489
1490 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1491
1492         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1493
1494 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1495
1496        * marshal.c: Fix interface lookup loops for
1497        cominterop_get_com_slot_for_method and 
1498        cominterop_get_method_interface. Only need to lookup
1499        if type is a class, else use interface type method is on.
1500
1501        Code is contributed under MIT/X11 license.
1502
1503 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1504
1505         * reflection.c: HasSecurity can be present even if no specially 
1506         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1507         SecurityAttribute). Fix CAS regression tests on buildbot.
1508
1509 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1510
1511        * appdomain.c: Add configure checks for header files.
1512        * image.c: Add configure checks for header files.
1513        * file-io.c: Add configure checks for header files.
1514        * debug-mono-symfile.c: Add configure checks for header files.
1515        * threadpool.c: Add configure checks for header files.
1516        * console-io.c: Add configure checks for header files.
1517        * profiler.c: Add configure checks for header files.
1518        * rawbuffer.c: Add configure checks for header files.
1519        * icall.c: Add configure checks for header files.
1520        * rand.c: Add configure checks for header files.
1521        * socket-io.c: Add configure checks for header files.
1522
1523        Code is contributed under MIT/X11 license.
1524
1525 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1526
1527         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1528         assertion as it breaks the build.
1529         
1530         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1531
1532         * reflection.c (lookup_custom_attr): Make a copy here too.
1533
1534         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1535         dynamic images.
1536
1537         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1538         images.
1539
1540         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1541         info.
1542
1543 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1544
1545         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1546         (load_cattr_value): Ditto.
1547
1548 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1549
1550         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1551
1552 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1553
1554         * threads.c: In "start_wrapper", set apartment_state to MTA if
1555         apartment_state is Unknown and we're running on 2.0 profile or
1556         higher.
1557         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1558         to main method, then set apartment_state to Unknown on 1.0 profile,
1559         and MTA on 2.0 profile.
1560
1561 2007-05-16  Jb Evain  <jb@nurv.fr>
1562
1563         * class-internals.h (MonoDefaults): Add an attribute_class and
1564           customattribute_data_class.
1565         * domain.c (mono_init_internal): Populate them.
1566         * reflection.c: Use them to remove duplicates. Make a vew
1567         MonoClass variables `static'.
1568
1569 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1570
1571         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1572         step in implementing IMT, so that all isinst checks now can go
1573         through the bitmap.
1574         This was needed because vtables for TransparentProxy need to look
1575         like the vtable of the "target" class, so they need to point to
1576         its interface bitmap directly.
1577
1578         * object.c: inside "mono_class_create_runtime_vtable" and
1579         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1580
1581 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1582
1583         * object-internals.h
1584           culture-info.h : added territory field in MonoCulture and
1585           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1586         * locales.c : fill territory field above too.
1587         * culture-info-table.h : regenerated.
1588
1589 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1590
1591         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1592         Fixes #81599.
1593
1594 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1595
1596         * object.c: Always initialize apartment, even if 
1597         there is no custom attributes on entry point.
1598         
1599         Code is contributed under MIT/X11 license.
1600
1601 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1602
1603         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1604         * metadata.c: If no encoding is set, check for unicode
1605         on class.
1606         
1607         Code is contributed under MIT/X11 license.
1608
1609 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1610
1611         * threads.c: Handle if mono_thread_current returns NULL 
1612         
1613         Code is contributed under MIT/X11 license.
1614
1615 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1616
1617         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1618         in start_wrapper. Added mono_thread_init_apartment_state and
1619         mono_thread_cleanup_apartment_state.
1620         * object.c: Initialize thread apartment state on main thread
1621         by checking for STAThreadAttribute on entry point.
1622         * object-internals.h: Add apartment_state field to MonoThread.
1623         * threads-types.h: Add unmanaged definition of 
1624         System.Threading.ApartmentState, MonoThreadApartmentState.
1625         
1626         Code is contributed under MIT/X11 license.
1627         
1628 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1629
1630         * class.c: Fix windows build.
1631         * class-internals.h: Fix windows build.
1632         
1633         Code is contributed under MIT/X11 license.
1634
1635 2007-05-08  Robert Jordan  <robertj@gmx.net>
1636
1637         * process.c (CreateProcess_internal):
1638         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1639         .CreateNoWindow was specified. Fixes #81496.
1640
1641 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1642
1643         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1644         step in implementing IMT, replaced it with two compact arrays
1645         (interfaces_packed and interface_offsets_packed) and a bitmap that
1646         is used for isinst checks (interface_bitmap).
1647
1648         * class.c: (compare_interface_ids): compare function to pass to
1649         bsearch when looking for an interface with a given id.
1650         (mono_class_interface_offset): reimplemented using bsearch on
1651         interfaces_packed, getting the offset from interface_offsets_packed.
1652         (print_implemented_interfaces): utility debugging function.
1653         (setup_interface_offsets): reworked to initialize interfaces_packed,
1654         interface_offsets_packed and interface_bitmap.
1655
1656         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1657         with uses of interfaces_packed and interface_offsets_packed.
1658
1659 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1660
1661         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1662         mono_class_interface_offset prototype to wrap all accesses to
1663         "MonoClass.interface_offsets".
1664
1665         * class.c: Implemented mono_class_interface_offset, and wrapped all
1666         accesses to "MonoClass.interface_offsets".
1667
1668         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1669         "MonoClass.interface_offsets".
1670
1671 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1672
1673         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1674         GetMethodFromHandle overloads (bug #78637).
1675
1676 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1677
1678         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1679         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1680
1681 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1682
1683         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1684         #81498.
1685
1686         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1687         gracefully.
1688         (mono_custom_attrs_from_index): Ditto.
1689
1690         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1691         Fixes #81501.
1692
1693 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1694
1695         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1696         is now allocated from a mempool.
1697
1698 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1699
1700         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1701         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1702
1703 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1704
1705         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1706         mono_loader_clear_error () too late. Fixes #81463.
1707
1708 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1709
1710         * culture-info-table.h : regenerated.
1711
1712 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1713
1714         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1715         is missing.
1716
1717 2007-04-25  Dick Porter  <dick@ximian.com>
1718
1719         * Makefile.am: Put the mingw enforced-optimisation back into the
1720         PLATFORM_WIN32 section.
1721
1722 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1723
1724         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1725         patch.
1726
1727         * image.c (mono_image_load_module): New API function to load a module reference.
1728
1729         * image.c (load_modules): Load modules lazily. Fixes #80812.
1730
1731         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1732         
1733         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1734
1735         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1736         to mono_image_load_module_dynamic.
1737
1738 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1739
1740         * marshal.c: Fix calling convention for CCW on non-windows
1741         platforms. STDCALL on windows, CDECL everywhere else to work 
1742         with XPCOM and MainWin COM.
1743         
1744         Code is contributed under MIT/X11 license.
1745
1746 2007-04-23  Martin Baulig  <martin@ximian.com>
1747
1748         Fix #80969.
1749
1750         * loader.c
1751         (method_from_memberref): Added `gboolean *used_context' argument.
1752         (mono_get_method_from_token): Likewise.
1753         (mono_get_method_full): Don't insert the method in the cache when
1754         `used_context' is true.
1755
1756 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1757
1758         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1759
1760         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1761         create new MonoTypes for returned types.
1762         * class.c (mono_generic_class_get_class): Export mono-internal.
1763         * class-internals.h: Update to changes.
1764
1765 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1766
1767         * threadpool.c, threadpool.h, icall-def.h: patch from
1768         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1769
1770 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1771
1772         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1773         
1774         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1775
1776         * threads.c (mono_thread_get_stack_bounds): New helper function.
1777
1778         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1779         Correctly compute stack bounds when attaching. Fixes #81394.
1780
1781 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1782
1783         * reflection.c: fix handling of doubles in custom attributes
1784         for the arm-fpa format (bug #81368).
1785
1786 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1787
1788         * reflection.c (assembly_add_win32_resources): Mildly relax an
1789         bounds check to let the end pointer point just past the end of the
1790         allocated buffer.  (may fix #81384)
1791
1792 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1793
1794         * culture-info-table.h : regenerated.
1795
1796 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1797
1798         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1799         the thread is aborted early.
1800
1801 2007-04-05  Dick Porter  <dick@ximian.com>
1802
1803         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1804         FindFirstFile()/FindNextFile() to find entries.  This lets the
1805         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1806         81038.
1807
1808         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1809         the parameters of
1810         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1811
1812 2007-04-04  Martin Baulig  <martin@ximian.com>
1813
1814         * debug-helpers.c
1815         (mono_method_desc_full_match): Add support for nested classes.
1816
1817 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1818
1819         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1820
1821 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1822
1823         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1824         waiting for too many threads.
1825
1826 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1827
1828         * environment.c: Fix return value check on uname so we can get the 
1829         executing version on Solaris operating systems.
1830
1831 2007-03-28  Jb Evain  <jbevain@gmail.com>
1832
1833         * class.c (mono_type_get_name_recurse): Complete the
1834         fix for the creation of assembly qualified names for
1835         pointer types. Fixes #81208.
1836
1837 2007-03-27  Dick Porter  <dick@ximian.com>
1838
1839         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1840         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1841         changed.
1842
1843         * threads.c
1844         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1845         the value of ReleaseMutex().
1846
1847 2007-03-27  Dick Porter  <dick@ximian.com>
1848
1849         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1850         in little-endian order, not network endian, so must be converted
1851         to host endian here.  Fixes bug 80593.
1852
1853 2007-03-22  Jb Evain  <jbevain@gmail.com>
1854
1855         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1856         qualified names for pointer types. Fixes #81208.
1857
1858 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1859
1860         * marshal.c: Add support for PreserveSigAttribute. 
1861         
1862         Code is contributed under MIT/X11 license.
1863
1864 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1865
1866         * process.c: Fix endianness issues. Fixes #81126.
1867
1868         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1869         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1870
1871         * image.c (mono_image_lookup_resource): Make this work on big-endian
1872         machines.Change API contract so the caller needs to free the return value.
1873         
1874         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1875         API change.
1876         
1877 2007-03-14  Martin Baulig  <martin@ximian.com>
1878
1879         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1880         mono_type_get_desc() as well.
1881
1882 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1883
1884         * icall.c:  Fix environ access in VS.  
1885         
1886 2007-03-13  Alp Toker  <alp@atoker.com>
1887
1888         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1889         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1890         #63841.
1891
1892 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1893
1894         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1895         circular references among dynamic methods. Fixes #81091.
1896
1897         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1898
1899 2007-03-09  Martin Baulig  <martin@ximian.com>
1900
1901         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1902
1903 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1904
1905         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1906         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1907         
1908         Code is contributed under MIT/X11 license.
1909         
1910 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1911
1912         * loader.c: Reapply patch for bug #79424.
1913
1914 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1915
1916         * metadata.c (mono_type_to_unmanaged): Only convert object to
1917         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1918
1919 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1920
1921         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1922         (and incorrectly set) is_reference field from MonoGenericInst.
1923
1924 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1925
1926         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1927         a little earlier.
1928
1929         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1930
1931         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1932
1933 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1934
1935         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1936         FileOptions.1 value to mean "temporary", map that to
1937         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1938
1939         Fixes 80688
1940
1941 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1942
1943         * appdomain.c: implement MS .Net style shadow copying. Copies of
1944         the assemblies are made in a subdirectory of the dynamic base
1945         directory, the assembly names are preserved.
1946         Copy .mdb and .config files along with the assemblies being shadowed.
1947
1948 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1949
1950         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1951         (emit_marshal_handleref): Ditto.
1952
1953         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1954         on Visual C++. Fixes #80671.
1955
1956 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1957
1958         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1959         for clone operations.
1960
1961 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1962
1963         * marshal.c: Fix warnings.
1964
1965 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1966
1967         * loader.c: allow case-insensitive matching of the dll name
1968         in dllmap handling when prefixed with "i:".
1969
1970 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1971
1972         * threads.c: Fix #ifdef for dummy_apc function for VS.
1973
1974 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1975
1976         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1977
1978 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1979         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1980         giving precedence to the methods with a fully qualified name
1981         (InterfaceName.MethodName) when building the interface sections
1982         of the vtable.
1983
1984 2007-02-16  Dick Porter  <dick@ximian.com>
1985
1986         * threadpool.c (append_job): Fix fast-path array handling, so it's
1987         less likely the array will grow exponentially when the load is
1988         heavy.
1989
1990 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1991
1992         * metadata-internals.h, loader.c: fix dllmap lookup order
1993         for non-function maps, too, and prepare for fallback code.
1994
1995 2007-02-12  Robert Jordan  <robertj@gmx.net>
1996
1997         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1998         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1999         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2000         GlobalFree. Fixes a part of bug #77075.
2001
2002 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2003
2004         * loader.c: implemented typedef parent in field memberref.
2005
2006 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2007
2008         * marshal.c: Fix warnings and remember to call Release on
2009         IUnknown of RCW.
2010         
2011         Code is contributed under MIT/X11 license.
2012
2013 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2014
2015         * class-internals.h: Add MonoHandleRef definition, and
2016         handleref_class to mono_defaults. 
2017
2018         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2019         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2020
2021         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2022         (do nothing on this stage)
2023         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2024         (emit_marshal_handleref): New method, used for argument handling
2025         of HandleRefs. 
2026
2027 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2028
2029         * class.c (mono_class_setup_parent): Lazily init com types.
2030         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2031         init com types.
2032         * object.c (mono_remote_class_vtable): Lazily init com types.
2033         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2034         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2035         * domain-internals.h: Expose mono_init_com_types.
2036         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2037         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2038         Add support for COM Callable Wrapper marshalling.
2039         * marshal.h: Add icall definitions.
2040         * gc.c: Handle freeing of CCWs in finalizer code.
2041         
2042         Code is contributed under MIT/X11 license.
2043
2044 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2045
2046         * reflection.c: changed all the signature encoding code to use
2047         a variable-sized buffer.
2048
2049 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2050
2051         * marshal.c: locking fixes: never take the loader lock
2052         or other runtime locks when holding the marshal lock
2053         (fixes bug#80664).
2054
2055 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2056
2057         * marshal.c: make the delegate function pointer mapping
2058         work for the moving GC.
2059
2060 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2061
2062         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2063         for bug #80618.
2064
2065 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2066
2067         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2068         gmodule.
2069
2070 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2071
2072         * threadpool.c: made the code moving-GC safe.
2073
2074 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2075
2076         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2077         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2078         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2079         warning cleanup.
2080         * reflection.c: warning cleanup, some threading and moving GC fixes.
2081
2082 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2083
2084         * class.c, loader.c: create the needed Set/Get/Address array methods
2085         as well as the .ctors in mono_class_init (), fixes bug #80567.
2086
2087 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2088
2089         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2090         we doesn't decrease its alignment. Should fix the sparc build.
2091
2092 2007-01-24  Dick Porter  <dick@ximian.com>
2093
2094         * socket-io.c
2095         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2096         Create the returned object if we need to ignore an unsupported
2097         socket option.  Fixes a segfault reported by Atsushi.
2098
2099 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2100
2101         * class.c, object.c: restrict GC-tracked fields to
2102         UIntPtr fields used inside corlib, so we provide better
2103         type info to the GC and also allow broken packing as in
2104         bug #80580.
2105
2106 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2107
2108         * sgen-gc.c: removed duplicated function.
2109
2110 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2111
2112         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2113         value that means that the value is not supported, but that we
2114         should not return a failure, but instead report this as a
2115         successful operation.
2116
2117 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2118
2119         Fix tests/bug79956.2.il
2120         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2121         (mono_generic_class_get_class): If the generic definition in an
2122         enum, copy over other fields related to it.
2123
2124 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2125
2126         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2127         genericinst enums (bug #79215).
2128
2129 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2130         * class.c: Fix bug 80307.
2131
2132 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2133
2134         * image.c: if the file table is not present, try to load
2135         all the modules, since we don't have info about them
2136         having or not metadata (bug #80517).
2137         * assembly.c: allow mono_assembly_load_references () to
2138         work for netmodules.
2139
2140 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2141
2142         * image.c, metadata-internals.h, object.c: execute module
2143         cctors when running on the 2 runtime if present (bug #80487).
2144
2145 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2146
2147         * icall.c: optimized InitializeArray() on bigendian.
2148
2149 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2150
2151         * icall.c: fix for the broken ARM FPA double format.
2152
2153 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2154
2155         * icall.c: handle endian issues for r4 and r8 types, too, in
2156         the InitializeArray() icall.
2157
2158 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2159
2160         * loader.c (mono_loader_error_prepare_exception): Clear the error
2161         once we have extracted the information from it, do this before we
2162         call into the JIT's class loading mechanisms.
2163
2164         * object.c (mono_class_create_runtime_vtable): Do not clear the
2165         loader error before calling mono_class_get_exception_for_failure
2166         as the loader error is needed inside
2167         mono_class_get_exception_for_failure to throw the error (thinko).
2168
2169         Fixes #80521
2170         
2171 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2172
2173         * reflection.c: align fields rva data so it's faster to load at
2174         runtime.
2175
2176 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2177
2178         Prepare to simplify GenericMethod handling.
2179         * class-internals.h (mono_method_get_context): New accessor function.
2180         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2181         rather than directly accessing '->context' field.
2182
2183         * class-internals.h (_MonoGenericParam.method): Move ...
2184         (_MonoGenericContainer): ... here.  Add into union with klass field.
2185         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2186         Update to changes.
2187
2188 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2189
2190         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2191         the wrapper type enum and reduce relocations.
2192
2193 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2194
2195         * reflection.c (inflate_mono_method): Reuse method instantiation
2196         from the generic method, if available.
2197
2198 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2199
2200         * marshal.c (emit_marshal_variant): Fix conv_arg
2201         type in last commit, based on whether parameter is byref.
2202         
2203 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2204
2205         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2206         marshalling.
2207         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2208         MONO_TYPE_OBJECT back for VARIANT support.
2209
2210 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2211
2212         * marshal.c, marshal.h, icall-def.h: Implement 
2213         Marshal.ReAllocCoTaskMem.
2214
2215 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2216
2217         * marshal.c: memory retention fixes: use the proper
2218         image cache for runtime_invoke method lookups.
2219
2220 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2221
2222         * mempool.c: added code to help debug mempool allocations.
2223
2224 2007-01-11  Dick Porter  <dick@ximian.com>
2225
2226         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2227         support (experimenting with faking it with IP_MTU_DISCOVER for
2228         systems that don't have IP_DONTFRAGMENT.)
2229         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2230         icall.
2231
2232         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2233
2234         * socket-io.h: Add new fields to MonoSocketAsyncResult
2235         corresponding to the new ones in Socket.cs.
2236
2237 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2238
2239         Fix IronPython regression mentioned in #80249
2240         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2241         'cached_context' field, since it may have been initialized as a
2242         side-effect of metadata parsing.
2243
2244         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2245         (_MonoGenericClass.cached_class): Move here and rename from lone
2246         remaining field of ...
2247         (_MonoInflatedGenericClass): ... this.  Remove.
2248         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2249         to changes.
2250
2251         Fix mcs/tests/test-128.cs regression.
2252         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2253         2007-01-10 change below.
2254         [MONO_TYPE_OBJECT]: Recurse into array case.
2255
2256 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2257
2258         * class-internals.h (mono_get_inflated_generic_class): Remove.
2259         * class.c (mono_get_inflated_generic_class): Remove.
2260         (mono_generic_class_get_class): Rename from
2261         mono_class_create_generic.
2262         (mono_class_from_mono_type) [GENERICINST]: Use it.
2263         * reflection.c, metadata.c: Update to changes.  Use
2264         'mono_class_from_mono_type'.
2265
2266 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2267
2268         * reflection.c: use passed type when encoding an array element
2269         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2270
2271 2007-01-09  Robert Jordan  <robertj@gmx.net>
2272
2273         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2274         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2275         Fixes bug #80392.
2276
2277 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2278
2279         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2280
2281         * object.c (set_value): Avoid aliasing between type->data.klass
2282         and type->data.generic_class.
2283
2284         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2285
2286 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2287
2288         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2289         between type->data.klass and type->data.generic_class.
2290
2291 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2292
2293         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2294         value in out parameters.
2295
2296 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2297
2298         Simplify invariant for MonoGenericClass::klass field.
2299         * class.c (mono_class_create_generic): Verify 'klass' is null.
2300         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2301         initialize 'klass' field.
2302
2303 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2304
2305         Ongoing work to avoid redundant data and simplify invariants.
2306         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2307         'generic_class', and change type to a GenericInst.
2308         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2309         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2310
2311 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2312
2313         * class.c : skip io-layer under PLATFORM_WIN32.
2314
2315 2007-01-03  Tor Lillqvist  <tml@novell.com>
2316
2317         Fix #80305: In a bundled executable, look in the bundled exe
2318         assembly to determine the runtime version. Add the possibility to
2319         bundle also the machine.config file.
2320         
2321         * assembly.c (mono_assembly_open_from_bundle): Make
2322         non-static. Allow being called even if we have no bundled
2323         assemblies, and return NULL right away in that case.
2324
2325         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2326         here.
2327
2328         * domain.c (app_config_parse): Take an assembly exe file name as
2329         parameter instead of a config file name. Check for a bundled
2330         config file for that assembly by calling
2331         mono_config_string_for_assembly_file() (see below) before looking
2332         for one in the file system.
2333         (get_runtimes_from_exe): Corrsponding change to call of
2334         app_config_parse().
2335         (get_runtimes_from_exe): Check for bundled assembly exe file first
2336         by calling mono_assembly_open_from_bundle(). If no bundled
2337         assembly exe file is found, call mono_image_open() as before to
2338         look it up in the file system.
2339
2340         * mono-config.c: Add variable bundled_machinec_onfig.
2341         (mono_config_string_for_assembly_file): New function.
2342         (mono_config_for_assembly): Move code snippet that looks for a
2343         bundled assembly .config file into the above new function. Call
2344         it.
2345         (mono_register_machine_config, mono_get_machine_config): New
2346         functions to set and retrieve
2347
2348         * assembly.h: Declare mono_register_machine_config().
2349
2350         * mono-config.h: Declare mono_get_machine_config() and
2351         mono_config_string_for_assembly_file().
2352
2353         * icall.c: No declaration of environ necessary on Win32. It is
2354         declared (as a macro expanding to a function call) in stdlib.h.
2355         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2356         New internal mono function. Returns the value of
2357         mono_get_machine_config() as a Mono string.
2358
2359         * icall-def.h: Add get_bundled_machine_config().
2360
2361 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2362
2363         Remove redundant field
2364         * class-internals.h (_MonoGenericContext.container): Remove field.
2365         * loader.c (mono_method_get_signature_full): Don't parse a
2366         "container" for a signature parse when the signature is inflated
2367         immediately.
2368         (method_from_methodspec): Likewise, for a generic_inst.
2369         * class.c, metadata.c, reflection.c: Update to changes.
2370
2371 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2372
2373         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2374         'cached_context', and change semantics -- it starts off NULL, and
2375         is initialized on demand.
2376         * class.c (mono_generic_class_get_context): New accessor to
2377         replace 'context' field accesses.
2378         (mono_class_get_context): New helper.
2379         (*): Update to changes.
2380         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2381
2382 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2383
2384         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2385         before the memcpy.   Fixes Marshal2 regression.
2386
2387 2007-01-02  Jb Evain  <jbevain@gmail.com>
2388
2389         * blob.h: add a MONO_TYPE_ENUM definition
2390         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2391         fix the encoding of arrays of enums in custom attributes.
2392
2393         Fixes #79666.
2394
2395 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2396
2397         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2398         string is null terminated, but only cut the string short if it
2399         overflows the buffer.   
2400         
2401         (mono_string_to_byvalstr): Also fix this routine.   The code here
2402         was not properly terminating a string (it was only terminated
2403         because of the previous catch-all memset). 
2404
2405         I left the memset, because I do not know if applications expect
2406         the runtime to clear this region. 
2407
2408         Fixes #79944.
2409
2410         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2411         Clear the error before returning to unmanaged code to prevent the
2412         runtime from being confused later on (fixes  80420).
2413         (ves_icall_type_from_name): Always call mono_loader_clear_error
2414         after parsing a type that could have failed.
2415         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2416
2417         * loader.c (mono_loader_clear_error): Fix indentation.
2418
2419 2006-12-28  Martin Baulig  <martin@ximian.com>
2420
2421         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2422
2423 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2424
2425         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2426         getting a token for an EnumBuilder.
2427
2428 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2429
2430         * reflection.c: be more careful in case resource generation
2431         fails to create the data array.
2432
2433 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2434
2435         * sgen-gc.c: write barrier for clone and fix unregister handles.
2436
2437 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2438
2439         * reflection.c: some fixes needed in the generics code for the moving GC.
2440
2441 2006-12-22  Robert Jordan  <robertj@gmx.net>
2442
2443         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2444         account. Fixes bug #80299.
2445
2446 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2447
2448         Fix WaitHandle usage in delegates.
2449         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2450         * object.c (mono_wait_handle_new): Use the property set method to
2451         initialize the handle.
2452         (mono_wait_handle_get_handle): New.
2453         * threadpool.c (mono_async_invoke): Use it.
2454         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2455         Likewise.
2456         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2457
2458 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2459
2460         * marshal.c (emit_marshal): Call emit_marshal_variant and
2461         emit_marshal_com_interface when applicable.
2462         (emit_marshal_variant, emit_marshal_com_interface): Add
2463         methods for this case and remove if's from emit_marshal_object.
2464         
2465 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2466
2467         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2468
2469 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2470
2471         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2472         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2473         and GlobalFree on Windows. Remove FIXME.
2474
2475 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2476
2477         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2478         implementation for managed objects.
2479
2480 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2481
2482         * object.c: implemented code to be used for checking
2483         that no reference field overlaps with non-references.
2484
2485 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2486
2487         * threadpool.c: fix queue code to be compatible with the
2488         moving GC.
2489
2490 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2491
2492         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2493         in structures by throwing ArgumentNullException.
2494
2495         (emit_marshal_safehandle): Also when they are null parameters.
2496
2497         (emit_marshal_safehandle): Add support for ref
2498         SafeHandles parameters
2499
2500 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2501
2502         * profiler.c: updated to use the mono-dl API instead of
2503         gmodule.
2504
2505 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2506
2507         * profiler.c: updated to use the mono-dl dynamic loading
2508         API instead of gmodule.
2509
2510 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2511
2512         * profiler.c: use readlink, older versions of glib don't have
2513         g_file_read_link ().
2514
2515 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2516
2517         * profiler.c: try to detect the path to mono if libc fails to provide
2518         a useful name (bug #80286).
2519
2520 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2521
2522         Fix #80242
2523         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2524         instance, use the generic type definition instead.
2525         (ves_icall_Type_GetNestedTypes): Likewise.
2526         * class.c (mono_class_create_generic): Always set the
2527         nested_classes of a generic instance to NULL, even if the generic
2528         type definition has nested types.
2529
2530 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2531
2532         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2533         and fix on Linux.
2534         
2535 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2536
2537         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2538         my arguments were in the wrong order.   I also fixed the Windows
2539         version which seems to have had the same issue.
2540
2541         (mono_free_bstr): On Unix, this is g_free.
2542         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2543         conversions (for the tests in corlib to pass).
2544
2545 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2546
2547         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2548         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2549         exception if a ref SafeHandle in a struct has changed).
2550         
2551         (emit_struct_conv): Do not perform layout checks for classes
2552         derived from SafeHandle, as those are specially handled. 
2553
2554         (emit_object_to_ptr_conv): Add support for
2555         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2556
2557         (emit_marshal_safehandle): Implement conversion of return values
2558         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2559         
2560         * threads.c: WaitHandle now is compiled with two different handles
2561         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2562         for 2.0.
2563         
2564         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2565         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2566         these routines to cope with both kinds of fields.
2567
2568 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2569
2570         * metadata.c (mono_type_to_unmanaged): Handle the case where
2571         type->data.klass is a SafeHandle, and in that case, return the
2572         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2573         MONO_MARSHAL_CONV_SAFEHANDLE. 
2574
2575 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2576
2577         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2578         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2579         calling emit_marshal_object.
2580
2581         (emit_marshal_safehandle): Implement marshalling of
2582         SafeHandle parameters (no ref support yet).
2583
2584         (MarshalAction): Document the defines as I implement
2585         them for SafeHandle.
2586
2587         (emit_marshal_object): indentation police.
2588
2589         * class-internals.h: Define MonoSafeHandle.
2590         Add safehandle_class to MonoDefaults type.
2591
2592         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2593         list of classes to check for fields. 
2594
2595         * domain.c (mono_init_internal): Add SafeHandle to the list of
2596         mono_defaults loaded.
2597
2598 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2599
2600         Fix #80253
2601         * reflection.c (mono_reflection_bind_generic_parameters): If the
2602         generic type definition is a type builder, ensure that it is fully
2603         initialized before instantiating it.  Kill some dead code.
2604
2605 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2606
2607         * object.c: clear the loader_error () before loading
2608         more metadata stuff (bug #80258).
2609
2610 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2611
2612         * icall.c, icall-defs.h: type modifiers icalls for
2613         parameters and properties.
2614
2615 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2616
2617         * object.c, icall.c: fixed warnings.
2618
2619 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2620
2621         * marshal.c: fixed a couple of leaks and coding style in a few places.
2622
2623 2006-12-08  Dick Porter  <dick@ximian.com>
2624
2625         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2626         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2627         80173.
2628
2629 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2630
2631         * process.c: ProcessStartInfo may have only filename set and
2632         arguments can be NULL.
2633
2634 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2635
2636         * icall.c: fix leak found by Robert Jordan.
2637
2638 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2639
2640         * marshal.c, marshal.h: generate managed method to access an element
2641         of a multi-dimensional array.
2642
2643 2006-11-30  Paolo Molaro (lupus@ximian.com)
2644
2645         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2646
2647 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2648
2649         * icall.c: back out GetFields () fix until the serialization code is
2650         fixed to not depend on the incorrect behaviour.
2651
2652 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2653
2654         * profiler.c: provide defaults if none are set.
2655
2656 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2657
2658         * Makefile.am, attrdefs.h: new public header file with
2659         constants for attributes for use by embedders.
2660
2661 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2662
2663         * icall.c: GetFields () fix for bug #80064.
2664
2665 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2666
2667         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2668         removed long unused icalls.
2669
2670 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2671   
2672         * marshal.c: 
2673                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2674                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2675                 can be generated without a delegate class.
2676                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2677         
2678         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2679
2680 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2681
2682         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2683         #80069.
2684
2685 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2686
2687         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2688         icall-def.h: added icalls needed by System.GC.
2689
2690 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2691
2692         * loader.c: ensure the class in catch clauses is handled
2693         correctly for generics methods (fixes bug#79980).
2694
2695 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2696
2697         * monitor.h, monitor.c: added mono_locks_dump () function
2698         to help debug deadlocks involving managed locks.
2699
2700 2006-11-13  Dick Porter  <dick@ximian.com>
2701
2702         * file-io.c (get_file_attributes): If the file is a symlink try
2703         and get the stat data for the target, but also add the
2704         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2705         the specs for the windows symlink support, but will probably have
2706         to be reworked when I have test data from a vista machine.  Fixes
2707         bug 79887.
2708
2709 2006-11-13  Dick Porter  <dick@ximian.com>
2710
2711         * gc.c (mono_domain_finalize): 
2712         * marshal.c (mono_delegate_begin_invoke): 
2713         * threadpool.c (socket_io_init, mono_thread_pool_init)
2714         (mono_thread_pool_finish): 
2715         * monitor.c (mono_monitor_try_enter_internal): 
2716         * threads.c (mono_thread_resume, mono_thread_init)
2717         (mono_thread_suspend_all_other_threads)
2718         (mono_thread_execute_interruption): 
2719         * appdomain.c (mono_domain_unload): Check for NULL error returns
2720         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2721         75733.
2722
2723 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2724
2725         * process.c
2726         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2727         Only close the handle if the value of the handle is not
2728         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2729         robust.
2730
2731         Improvement for #75733, so that we do not run into this problem. 
2732
2733         
2734         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2735         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2736         internal variables.  Fixes #79462 
2737         
2738
2739 2006-11-09  Dick Porter  <dick@ximian.com>
2740
2741         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2742         Use poll() not select().  Fixes bug 79397.
2743
2744 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2745
2746         Fix #79872
2747         * assembly.c (mono_assembly_load_from_full): Check that the given
2748         image has an assembly manifest.
2749
2750 2006-11-09  Ankit Jain  <jankit@novell.com>
2751
2752         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2753         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2754         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2755
2756 2006-11-07  Dick Porter  <dick@ximian.com>
2757
2758         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2759         Put the old resolver behaviour back for pre-2.0 profiles.
2760
2761 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2762
2763         * threadpool.c: precise GC and locking fixes.
2764
2765 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2766
2767         * class.c: don't load types that have an explicit unaligned
2768         managed reference. Provide better info in the TypeLoad exception.
2769         Part of the fix for bug #79744.
2770         * object.c: use the correct check for class type load issues.
2771
2772 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2773
2774         * class.c: enforce alignment of fields with managed references
2775         even when Pack=1 is forced by the user (bug #77788).
2776
2777 2006-11-03  Dick Porter  <dick@ximian.com>
2778
2779         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2780         If the address reverse lookup fails, return it as the hostname
2781         anyway.  Fixes bug 79721.
2782
2783 2006-11-03  Dick Porter  <dick@ximian.com>
2784
2785         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2786         Fix build on Windows.
2787
2788 2006-11-02  Dick Porter  <dick@ximian.com>
2789
2790         * icall-def.h: 
2791         * object-internals.h: 
2792         * exception.c (mono_get_exception_thread_interrupted): 
2793         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2794         Fixes bug 74525.
2795
2796         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2797         Check for pending Thread.Interrupt.
2798
2799 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2800         * loader.c: Fixed bug 79684.
2801
2802 2006-10-27  Dick Porter  <dick@ximian.com>
2803
2804         * file-io.c (get_file_attributes): Force symlinks to directories
2805         to be returned as a regular file.  Fixes bug 79733.
2806 2006-10-26  Dick Porter  <dick@ximian.com>
2807
2808         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2809         CreateFile to open a directory then we need to set the
2810         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2811
2812 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2813
2814         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2815         friends.
2816
2817 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2818
2819         * sgengc.c: small cleanup of timer code.
2820
2821 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2822
2823         * sgen-gc.c: fix some warnings and start adding support for
2824         complete object removal on domain unload.
2825
2826 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2827
2828         * assembly.c: build_assembly_name should not consider a version
2829         number without build or revision number invalid. Fixes bug #79715.
2830
2831 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2832
2833         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2834         call kernel32 function OutputDebugString directly.
2835         
2836         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2837         
2838 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2839
2840         * reflection.c: small cleanup, using a function to insert a MonoString
2841         in the string heap.
2842
2843 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2844
2845         * reflection.c: moving GC fixes.
2846
2847 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2848
2849         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2850         all the objects with finalizers belonging to an unloading appdomain.
2851
2852 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2853
2854         * sgen-gc.c: added ability to allocate even when the nursery is fully
2855         pinned and fixed a couple of bugs.
2856
2857 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2858
2859         * threads.h: Revert the last change for now.
2860
2861         * threads.h (mono_thread_get_pending_exception): Rename this to
2862         mono_thread_get_undeniable_exception ().
2863
2864 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2865
2866         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2867         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2868         when fname does not refer to valid assembly. This result in a more
2869         meaningful error message.
2870         * exception.c: added mono_get_exception_bad_image_format2 which 
2871         constructs a BadImageFormatException using the ctor taking a custom
2872         message and the file name. Passing in a NULL msg results in a default
2873         message.
2874         * exception.h: define mono_get_exception_bad_image_format2 function.
2875         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2876         when file name pointed to an invalid IL image. Use 
2877         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2878         as this results in a more meaningful error message.
2879
2880 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2881
2882         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2883         #79465.
2884
2885 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2886
2887         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2888         consistency with the other _size functions.
2889         (mono_type_stack_size): Ditto.
2890
2891         * class.c object.c icall.c: Fix warnings caused by the above change.
2892
2893         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2894
2895         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2896
2897         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2898
2899 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2900
2901         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2902         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2903         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2904         threadpool.h, threads-types.h: mark more internal functions.
2905
2906 2006-10-11  Dick Porter  <dick@ximian.com>
2907
2908         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2909         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2910         reproduce the bug even before applying the fix.)
2911
2912 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2913
2914         * reflection.c: allow retrieving attributes for arguments in generic
2915         methods (bug #79241).
2916
2917 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2918
2919         * debug-mono-symfile.c: properly check fopen () result (found by
2920         coverity).
2921
2922 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2923
2924         * reflection.c: make error message clearer and fixed two
2925         issuelets found by Coverity.
2926
2927 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2928
2929         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2930
2931 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2932
2933         * object-internals.h, gc-internal.h, profiler-private.h:
2934         mark internal functions.
2935
2936 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2937
2938         * reflection.c: put data in the text section.
2939         * icall.c: recognize more types in type_from_typename ().
2940         * process.c, marshal.c: added some GC FIXMEs.
2941
2942 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2943
2944         * loader.c: check for NULL before initializing.
2945
2946 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2947
2948         * gc.c (finalizer_thread): Use a non-alertable wait here.
2949
2950         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2951         until the correct solution is found.
2952
2953 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2954
2955         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2956         modules with no metadata. Fixes #79596.
2957
2958         * image.c (load_metadata_ptrs): Put back the error message when
2959         the #- heap is encountered since the support is not complete yet.
2960
2961 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2962
2963         * gc.c: do not allow the user to SuppressFinalize () a
2964         delegate because it would leak the trampoline if present.
2965
2966 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2967
2968         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2969         PropertyPtr table.
2970
2971 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2972
2973         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2974
2975         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2976
2977         * row-indexes.h: Add definitions for *Ptr tables.
2978
2979         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2980
2981         * metadata.c (mono_metadata_translate_token_index): New helper function to
2982         translate table indexes used in uncompressed metadata.
2983         (mono_metadata_decode_table_row): Ditto.
2984         (mono_metadata_decode_table_row_col): Ditto.
2985
2986         * metadata.c: Add table schema for *Ptr tables.
2987
2988         * class.c loader.c: Use the new helper function to access the affected metadata
2989         tables.
2990         
2991         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2992         #38532.
2993         
2994 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2995
2996         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2997         sequences which can be unbounded in size. Fixes #79583.
2998
2999 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3000
3001         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3002         static initialization.
3003
3004         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3005
3006         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3007
3008         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3009
3010         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3011         ctor fails, i.e. throw the same exception on subsequent accesses.
3012         
3013 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3014
3015         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3016         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3017         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3018         Handle marshalling of interfaces and VARIANTs contained in structs.
3019         
3020         Code is contributed under MIT/X11 license.
3021         
3022 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3023
3024         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3025         
3026         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3027         mempool.
3028
3029 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3030
3031         * console-io.c: ignore previous SIGINT handler.
3032
3033 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3034
3035         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3036         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3037         #79460, #79461, #79485.
3038
3039         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3040
3041         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3042         #79217.
3043
3044 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3045
3046         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3047         could be generated from it.
3048
3049 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3050
3051         * rand.c: fix read loop to correctly handle EINTR.
3052
3053 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3054
3055         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3056         internal calls are defined to keep methods closer to the declaring
3057         type and allow a significant reduction in runtime relocations and
3058         memory usage.
3059
3060 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3061
3062         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3063         exception message to have FileNotFoundException use the default
3064         assembly load error message. Fixes bug #79426.
3065         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3066
3067 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3068
3069         * threadpool.c: (start_thread_or_queue) use the root domain when
3070         creating the thread instead of the async object one.
3071
3072 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3073
3074         * class.c, object.c, class-internals.h, reflection.c:
3075         for arrays, store element_size inside MonoClass (speedup
3076         for array object creation).
3077
3078 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3079
3080         * icall.c: fixed CodeBase to use the file name and not the module
3081         name (bug #79365).
3082
3083 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3084
3085         * mono-debug.c, mono-debug.h: export find_method as
3086         mono_debug_find_method ().
3087
3088 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3089
3090         * debug-helpers.c, class-internals.h: added a few functions useful
3091         when debugging under gdb.
3092
3093 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3094
3095         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3096         characters that need special handling.
3097
3098 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3099
3100         * mono-config.c: make the os/cpu specification more flexible,
3101         allowing lists and negation.
3102
3103 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3104
3105         * marshal.c: COM Interop fixes. Handle case where method->klass.
3106         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3107         calling convention on non-windows platforms. This is for
3108         compatibility with XPCOM and MainWin COM.
3109         
3110         Code is contributed under MIT/X11 license.
3111         
3112
3113 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3114
3115         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3116         correctly. Fixes #79217.
3117
3118         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3119
3120 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3121
3122         * mono-config.c: allow both an os and cpu attribute for dllmap
3123         and dllentry elemnets to enable a single config file to be used
3124         for multiple architectures.
3125
3126 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3127
3128         * loader.c: MonoLoaderError was cleared too soon on load failure.
3129         Fixes bug #79424.
3130
3131 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3132
3133         * icall.c: use the defining class vtable when accessing a
3134         static field, not a pobblibly derived class.
3135
3136 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3137
3138         * icall.c string-icalls.c: Remove references to unicode.h.
3139
3140         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3141
3142         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3143
3144         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3145         indicating the image where custom marshaller types should be looked up.
3146         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3147         custom marshallers, instead of corlib. Fixes #79425.
3148
3149 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3150
3151         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3152
3153 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3154
3155         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3156         Implement Environment.ProcessorCount.
3157         
3158         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3159         Implement Environment.ProcessorCount.
3160         
3161         * icall.c: 
3162         Add Environment.ProcessorCount icall.
3163         
3164         Patch by Jason McFall.
3165
3166 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3167
3168         * assembly.c: don't append .exe/.dll when the filename already contains
3169         one of those extensions.
3170
3171 2006-09-12  Martin Baulig  <martin@ximian.com>
3172
3173         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3174         to array interfaces.
3175
3176 2006-09-11  Martin Baulig  <martin@ximian.com>
3177
3178         * reflection.c (mono_image_build_metadata): Create the
3179         MethodImpl's after emitting all types and methods, so we don't
3180         need another fixup pass for them.
3181
3182 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3183
3184         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3185         change.
3186
3187 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3188
3189         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3190         unload.
3191
3192 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3193
3194         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3195         args is not set. Fixes #78926.
3196
3197 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3198
3199         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3200
3201         * image.c (load_class_names): Move this to class.c, and rename it to 
3202         'mono_image_init_name_cache'.
3203         (load_modules): Fix a warning.
3204
3205         * class.c icall.c image.c: Initialize image->name_cache lazily.
3206
3207         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3208         on its name using information in the AOT file.
3209
3210         * class.c (mono_class_from_name): Use the new hook function.
3211
3212 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3213
3214         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3215         correctly.
3216
3217         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3218         Fixes #79289.
3219         
3220 2006-09-06  Martin Baulig  <martin@ximian.com>
3221
3222         * icall.c (mono_lookup_internal_call): Small fix.
3223
3224 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3225
3226         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3227         double g_free.
3228
3229 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3230
3231         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3232         when --debug is specified.
3233
3234 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3235
3236         * class.c (setup_generic_array_ifaces): Fix a warning.
3237
3238 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3239
3240         * Temporarily remove the patch to assemly.c that checks the
3241         assembly versions as it breaks our gacutil.
3242
3243 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3244
3245         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3246
3247         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3248         a net 1.0 runtime.
3249
3250         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3251         created using the default ctor. Fixes #79152.
3252         (mono_string_builder_to_utf16): Ditto.
3253
3254 2006-09-01  Martin Baulig  <martin@ximian.com>
3255
3256         Fix handling of the generic array interfaces.
3257
3258         * class-internals.h
3259         (MonoDefaults): Removed `generic_array_class' and added
3260         `generic_ilist' class.
3261
3262         * class.c
3263         (mono_bounded_array_class_get): Add the new generic array interfaces.
3264         (setup_generic_array_ifaces): New static method; create vtable
3265         entries for each method in the generic array interfaces.
3266
3267         * metadata.c
3268         (select_container): Allow "parent-less" generic methods.
3269
3270         * marshal.c
3271         (mono_marshal_get_generic_array_helper): New public method.
3272
3273         * icall.c
3274         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3275         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3276         moved the interncall into System.Array.
3277
3278 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3279
3280         A few more cases of avoiding work on types with ->byref set.
3281         Has the real fix for #79238
3282         * icall.c (is_generic_parameter): New helper.
3283         (ves_icall_Type_GetGenericParameterPosition): Use it.
3284         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3285         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3286         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3287         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3288         reference types.
3289         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3290         reference types.
3291         (ves_icall_Type_get_IsGenericInstance): Likewise.
3292         (ves_icall_Type_get_IsGenericType): Likewise.
3293
3294 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3295
3296         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3297         class if possible.
3298
3299         * mempool.h (mono_mempool_get_allocated): New helper function.
3300
3301         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3302         change.
3303
3304         * mempool.c: Fix warnings and the calculation of stats.
3305
3306         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3307
3308         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3309
3310         * loader.c (mono_get_method_from_token): Update method_count stat.
3311
3312         * class-internals.h (MonoStats): Add some stats.
3313
3314 2006-08-31 Robert Jordan  <robertj@gmx.net>
3315
3316         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3317         with managed variants.
3318         All code is contributed under the MIT/X11 license.
3319         
3320 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3321
3322         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3323         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3324
3325         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3326
3327         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3328         with cycles in classes.
3329
3330         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3331
3332         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3333         missing a [MarshalAs] directive. Fixes #79203.
3334
3335         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3336         klass->marshal_info. Fixes #79217.
3337
3338 2006-08-30  Martin Baulig  <martin@ximian.com>
3339
3340         Committing a patch from Joachim Ante <joe@otee.dk>:
3341         Add support for binary data symbol stores.
3342
3343         * debug-mono-symfile.c
3344         (mono_debug_open_mono_symbol_file): Renamed into
3345         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3346         arguments.
3347
3348         * mono-debug.c
3349         (mono_debug_open_image): Added `raw_contents' and `size' args.
3350         (mono_debug_init_2_memory): New public function.
3351
3352 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3353
3354         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3355
3356 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3357
3358         * appdomain.c: implement support for ShadowCopyFiles.
3359
3360 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3361
3362         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3363         when value is NULL (and should remove CID #51).
3364
3365 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3366
3367         * image.c: moved 2 functions to ../utils.
3368
3369 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3370
3371         * gc.c: cope with the target object of a GC handle being NULL
3372         (bug #78877).
3373
3374 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3375
3376         * class.c: recursively check parent's explicit implementations
3377         of interface methods (fixes bug #79125).
3378
3379 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3380
3381         * filewatcher.c: Avoid warnings when building, do not redefine
3382         constants that are defined.
3383
3384         Remove warnings.
3385
3386 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3387
3388         * image.c: don't fail when the link points to an absolute path.
3389
3390 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3391
3392         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3393         Fix CID #3.
3394
3395 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3396
3397         * image.c (full_path): A new method used to obtain the actual path
3398         of an assembly even in the presence of symbolic links.  
3399
3400         This is necessary for the case where we are running a binary that
3401         has been GACed, but we are using the "published" path name
3402         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3403         file in the GAC.
3404
3405         This was the source of the failure for the `xsp' command with the
3406         recent AppDomain changes, as far as the runtime was concerned,
3407         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3408         $prefix/mono/gac/blah/version/blah.exe.
3409
3410         (do_mono_image_open): use full path
3411
3412 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3413
3414         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3415
3416 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3417
3418         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3419         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3420
3421 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3422
3423         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3424         small structures. Fixes #78990.
3425
3426 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3427
3428         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3429
3430         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3431
3432 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3433
3434         * appdomain.c:
3435         * marshal.c: don't load all the assemblies from a domain into newly
3436         created ones. The new domains might have different rules and load
3437         assemblies from different locations. Fixes bug #76757.
3438
3439         Patch by Lluis. Conflicts resolved by Brian Crowell.
3440
3441 2006-08-16  Alp Toker  <alp@atoker.com>
3442
3443         * socket-io.c: First half of the fix for #79084.
3444         Set sa_size to the length of the content, not that of the struct.
3445         Don't add NULL suffix to the content, this should be done in
3446         managed code if needed.
3447
3448 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3449
3450         Fix part of #79012
3451         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3452         mono_metadata_parse_type returns NULL.
3453
3454 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3455
3456         * normalization-tables.h : new file for string normalization data.
3457         * locales.c, locales.h, icall.c :
3458           added load_normalization_resource() for string normalization,
3459           and icall as well.
3460         * Makefile.am : added normalization-tables.h to the sources.
3461
3462 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3463
3464         * marshal.c: Add more helper functions to reduce code duplication and use them
3465         everywhere.
3466
3467 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3468
3469         * marshal.c: Fix non-x86 stdcall warnings.
3470         
3471         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3472         them everywhere.
3473
3474 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3475
3476         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3477         type check on multi-dimensional arrays. Fixes #79000.
3478
3479 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3480
3481         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3482         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3483         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3484         * class-internals.h: add is_com_object to class structure.
3485         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3486         null checks to COM object marshalling. Fix .ctor call on RCW.
3487         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3488         
3489         All code is contributed under the MIT/X11 license.
3490
3491 2006-08-09  Dick Porter  <dick@ximian.com>
3492
3493         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3494         racing mono_monitor_allocator_lock() somewhere, so don't delete
3495         the critical section for now.  Found by running and exiting
3496         monodevelop.
3497
3498 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3499
3500         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3501         (ves_icall_System_ComObject_FindInterface): Ditto.
3502         (ves_icall_System_ComObject_CacheInterface): Ditto.
3503
3504         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3505         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3506
3507 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3508
3509         * threadpool.c: treat pipes from process asynchronous reads as sockets
3510         when reading from them, so we get select/poll or epoll to wait for
3511         data.
3512
3513 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3514
3515         * loader.c: Fix a typo (CID #233) in the null check.
3516
3517 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3518
3519         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3520         Hopefully fixes #78949.
3521         
3522         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3523         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3524         bytes. Fixes #78972.
3525
3526 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3527
3528         * filewatcher.c: we need to set errno here.
3529
3530 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3531
3532         * filewatcher.c: let Win32Exception get the error value.
3533
3534 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3535
3536         * filewatcher.c: translate errno into win32 errors for Win32Exception
3537         to know what happened.
3538
3539 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3540
3541         * threadpool.c: Fix more warnings.
3542
3543         * assembly.c (search_loaded): Fix warnings.
3544
3545         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3546         (mono_async_invoke): Ditto.
3547
3548 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3549
3550         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3551         entries for __ComObject type in addition to ComImport types.
3552         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3553         about hash table.
3554         
3555         All code is contributed under the MIT/X11 license.
3556
3557 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3558
3559         * image.c: avoid tentative loading of modulerefs that contain
3560         no metadata (P/Invoke library names).
3561
3562 2006-07-28  Dick Porter  <dick@ximian.com>
3563
3564         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3565         mono_loader_lock() somewhere, so don't delete the critical section
3566         for now.  Found by running and exiting monodevelop.
3567
3568 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3569
3570         * filewatcher.c: define the inotify syscalls when we're building on
3571         linux and have sys/syscall.h. The build system might not have support
3572         for inotify but the target system might have it.
3573
3574 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3575
3576         * domain.c: Documentation updates.
3577
3578         * loader.c (mono_free_method): Do not release the method
3579         information if we are being profiled, as profilers will use this
3580         information at shut down to present some data to the user.
3581
3582         This is needed so that the profiler does not crash, as the
3583         profiler tends to keep MonoMethods around, and they might become
3584         invalid if we free these.
3585
3586         (mono_get_method_constrained): Return the original CIL stream
3587         method as well, so verification can be performed against it.
3588
3589 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3590
3591         * filewatcher.[ch]: support for inotify file system watcher.
3592         * icall.c: add new internal calls for the inotify file system watcher.
3593
3594 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3595
3596         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3597         #78888.
3598
3599 2006-07-20  Dick Porter  <dick@ximian.com>
3600
3601         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3602         warning.
3603
3604 2006-07-20  Dick Porter  <dick@ximian.com>
3605
3606         * threads.c (start_wrapper): Do the thread cleanup while we still
3607         hold a reference to its object.  Fixes bug 78123.
3608
3609 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3610
3611         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3612         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3613           "managed-to-managed".
3614         * icall.c: Redirect string constructors that take sbyte* to
3615           ves_icall_System_String_ctor_RedirectToCreateString.
3616         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3617           to CreateString () methods with matching signature.
3618         * reflection.c: Use original security informations for
3619           MONO_WRAPPER_MANAGED_TO_MANAGED.
3620         * security-manager.c: Use original security informations for
3621           MONO_WRAPPER_MANAGED_TO_MANAGED.
3622         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3623           that is a placeholder and only its address should be used.
3624         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3625           that is a placeholder and only its address should be used.
3626
3627 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3628
3629         Begin implementing COM Interop.
3630         * appdomain.c: Increment corlib version.
3631         * class.c: Set ComImport classes' parent to __ComObject.
3632         * loader.c: Mark cominterop methods as such.
3633         * domain.c: Add __ComObject class to MonoDefaults structure.
3634         * image.c: Add 2 hashtables to the image for COM Interop related methods
3635         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3636         using the mempool allocator
3637         
3638         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3639         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3640         declaration for mono_metadata_type_dup_mp.
3641         
3642         * debug-helpers.c: Added strings for two additional wrapper types
3643         * object.c: Create proxy objects for ComImport classes
3644         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3645         and added __ComObject class to MonoDefaults structure.
3646         
3647         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3648         MonoComInteropProxy and MonoComObject.
3649         
3650         * marshal.c: Added support for COM Interop
3651         (signature_cominterop): Converts managed signature to corresponding
3652         unmanaged COM signature.
3653         (cominterop_get_function_pointer): gets unmanaged function pointer via
3654         COM object vtable
3655         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3656         (cominterop_get_method_interface): returns interface type that method is defined on
3657         (mono_mb_emit_cominterop_call): emits native call to function pointer
3658         gotten from vtable
3659         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3660         that matches signature of unmanaged function.
3661         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3662         (cominterop_get_invoke): forwards call from proxy to __ComObject
3663         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3664         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3665         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3666         
3667         * marshal.h: Added Marshal icall declarations.
3668         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3669         so we can access them in finalizer
3670         
3671 2006-07-14  Dick Porter  <dick@ximian.com>
3672
3673         * object.c (mono_type_initialization_cleanup): Fix a race
3674         condition by temporarily commenting out the critical section
3675         deletion.
3676
3677 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3678
3679         * reflection.c (create_custom_attr): Fix some warnings.
3680         (create_custom_attr_data): Ditto.
3681         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3682         types. Fixes #78855.
3683
3684 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3685
3686         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3687
3688         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3689
3690 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3691
3692         * reflection.c (resolve_object): Add support for DynamicMethod.
3693
3694         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3695         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3696
3697 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3698
3699         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3700         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3701
3702 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3703
3704         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3705         Fixes #77888.
3706
3707 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3708
3709         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3710         slightly: remove a shadow local variable.
3711
3712 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3713
3714         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3715         definition that introduces the virtual function slot.
3716         Also fix Coverity #105.
3717
3718 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3719
3720         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3721         for dynamic assemblies. Fixes #78724.
3722
3723 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3724
3725         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3726         Fixes #78722.
3727
3728 2006-06-21  Martin Baulig  <martin@ximian.com>
3729
3730         * reflection.c
3731         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3732         fixes #76484.
3733
3734 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3735
3736         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3737
3738 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3739
3740         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3741         nor TYPEREFs.
3742         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3743         Inflate result if necessary.
3744         (mono_class_get_full): Remove old version.  Rename from
3745         'mono_class_get' and add 'context' argument.  Pass it to
3746         ..._create_from_typespec.
3747         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3748         (mono_ldtoken): Revert change below.
3749
3750 2006-06-20  Martin Baulig  <martin@ximian.com>
3751
3752         * class.c (mono_ldtoken): Don't pass the generic context to
3753         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3754
3755 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3756
3757         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3758         and later freeing it. Fixes #78638.
3759
3760 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3761
3762         * icall.c (mono_class_get_throw): Revert over-zealous error
3763         throwing, the caller for mono_class_get_throw will cope with
3764         errors when classes are not properly initialized already.
3765
3766         The code still copes with loader exceptions though.
3767
3768         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3769         
3770 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3771
3772         Fixes the `make run1' version of RuntimeAbort (to be commited,
3773         source is in Bugzilla).
3774         
3775         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3776         FALSE on class loading failure instead of returning true.
3777
3778         * class.c (mono_class_create_from_typedef): It is possible for
3779         mono_metadata_interfaces_from_typedef_full to fail if a class is
3780         not found, cope with this.
3781         
3782
3783 2006-06-14  Dick Porter  <dick@ximian.com>
3784
3785         * socket-io.c: 
3786         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3787         4.1.1
3788
3789 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3790
3791         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3792
3793 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3794
3795         * icall.c: Another fix for building mono in Visual Studio.
3796
3797 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3798
3799         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3800         
3801 2006-06-09  Martin Baulig  <martin@ximian.com>
3802
3803         * debug-mono-symfile.c: Put this back and really fix it this
3804         time. Sorry for all the trouble.
3805
3806 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3807
3808         * icall.c (mono_class_get_throw): Fix a warning.
3809         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3810         ReflectionTypeLoadException if needed. Fixes #78606.
3811
3812         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3813         (mono_class_init): Ditto.
3814
3815         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3816         ref_only exceptions.
3817         (mono_loader_clear_error): Make this work even if there is no error.
3818
3819 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3820
3821         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3822         Marshal.GetComSlotForMethodInfo using internal call.
3823
3824 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3825
3826         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3827         a function for signalling it.
3828
3829         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3830         a referenced assembly is not found.
3831
3832         * loader.c (mono_loader_error_prepare_exception): Add support for 
3833         LOADER_ERROR_ASSEMBLY. Fix formatting.
3834
3835 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3836
3837         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3838         for VARIANT marshalling on windows and increment corlib version
3839         since Variant struct was added.
3840
3841 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3842
3843         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3844         stack trace line information:
3845
3846         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3847         (Martin) when looking up B which is between A and C, return A not C.
3848
3849         Bug is #78573.
3850
3851         Thanks to Alexander Olk for tracking this down.
3852
3853 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3854
3855         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3856         
3857         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3858         avoid clobbering its value.
3859         (mono_string_to_lpstr): Fix a warning on windows.
3860
3861 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3862
3863         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3864
3865         * reflection.c loader.c: Removed references to 'dummy' flag.
3866
3867         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3868
3869         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3870         it gets GC tracking.
3871
3872         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3873         GC tracking.
3874         
3875         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3876
3877         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3878
3879         * appdomain.c: Bump corlib version.
3880
3881 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3882
3883         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3884         CEE_STIND_REF when working with object references.
3885
3886 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3887
3888         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3889         Fixes #78539.
3890
3891 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3892
3893         * loader.c (method_from_memberref): Fix argument value for
3894         mono_loader_set_error_method_load (I was passing the MonoClass
3895         instead of the class name char *).
3896
3897 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3898
3899         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3900         CEE_STIND_REF when working with object references.
3901
3902 2006-05-30  Martin Baulig  <martin@ximian.com>
3903
3904         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3905         mono_method_full_name() change and replace the ':' with a '.'
3906         here.
3907
3908 2006-05-30  Martin Baulig  <martin@ximian.com>
3909
3910         * debug-mono-symfile.c
3911         (mono_debug_symfile_lookup_location): Fix the algorithm:
3912         when looking up B which is between A and C, return A not C.
3913
3914 2006-05-29  Martin Baulig  <martin@ximian.com>
3915
3916         * mono-debug.h
3917         (MonoDebugMethodInfo): Make the typedef public.
3918         (MonoDebugSourceLocation): New public struct.
3919
3920         * mono-debug.c
3921         (mono_debug_source_location_from_address): Removed.
3922         (mono_debug_source_location_from_il_offset): Removed.
3923         (mono_debug_il_offset_from_address): Removed.
3924         (mono_debug_address_from_il_offset): Removed.
3925         (mono_debug_lookup_method): New public function.
3926         (mono_debug_lookup_source_location): New public function; replaces
3927         the old mono_debug_source_location_from_*() functions; see the
3928         inline documentation.
3929         (mono_debug_free_source_location): New public function.
3930         (mono_debug_print_stack_frame): New public function; see the
3931         inline documentation.
3932
3933         * debug-mono-symfile.c
3934         (mono_debug_find_source_location): Renamed into
3935         mono_debug_symfile_lookup_location(); only take a
3936         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3937         documentation.
3938         (mono_debug_find_method): Renamed into
3939         mono_debug_symfile_lookup_method().
3940
3941 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3942
3943         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3944         returned by mono_image_open_full ().
3945
3946         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3947         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3948         #78517.
3949
3950         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3951         #78518.
3952
3953 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3954
3955         * class.c (mono_class_from_typeref): handle missing images
3956         earlier, deals with bug #78418.   Refactor code; 
3957
3958         Fix a warning introduced in my previous commit (some stale code
3959         from before I revisited my patch).
3960
3961         * class.c (mono_class_create_from_typedef): On failure, remove the
3962         class from the MonoImage->class_cache as the class is not
3963         initialized;   Fixes the leak pointed out by Paolo.
3964
3965 2006-05-25  Dick Porter  <dick@ximian.com>
3966
3967         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3968         DeleteCriticalSections until I figure out which one may still be
3969         sometimes locked when mono_thread_cleanup is called.
3970
3971 2006-05-24  Dick Porter  <dick@ximian.com>
3972
3973         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3974         of mono_thread_manage and back into its own function, so it can be
3975         called after the finalizer thread has finished.
3976
3977         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3978
3979 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3980
3981         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3982         Fixes #78495.
3983
3984         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3985         with non-blittable elements.
3986         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3987
3988 2006-05-24  Martin Baulig  <martin@ximian.com>
3989
3990         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3991         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3992
3993         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3994         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3995         `mono_debugger_event_handler' to NULL.
3996
3997 2006-05-24  Martin Baulig  <martin@ximian.com>
3998
3999         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4000
4001 2006-05-24  Martin Baulig  <martin@ximian.com>
4002
4003         * mono-debug-debugger.h
4004         (mono_debugger_create_notification_function): Added
4005         `MonoCodeManager *' argument.
4006
4007 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4008
4009         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4010
4011 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4012
4013         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4014         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4015         implementation.
4016
4017 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4018
4019         * icall.c: precise GC support: objects can't be stored in unmanaged
4020         memory anymore, even if they are kept alive by other references: since
4021         they can move the GC needs to be able to always find them.
4022
4023 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4024
4025         * object.c: precise GC support for static fields. Support
4026         for moving GCs: write barriers and pinned allocation for interned
4027         strings.
4028
4029 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4030
4031         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4032         structure.
4033
4034 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4035
4036         * class.c, gc.c: sgen and precise GC updates.
4037
4038 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4039
4040         * marshal.h, marshal.c: added write barrier wrapper and precise type
4041         fixes.
4042
4043 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4044
4045         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4046         support.
4047
4048 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4049
4050         * reflection.c: precise and sgen GC updates.
4051
4052 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4053
4054         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4055
4056 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4057
4058         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4059
4060 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4061
4062         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4063         MONO_TYPE_OBJECT. Fixes #78462.
4064
4065 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4066
4067         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4068         and blittable types.
4069
4070 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4071
4072         * class.c (mono_class_get_exception_for_failure): Implement parts
4073         of a TODO: if the loader error is set (instead of the class
4074         error), we return a Loader exception that can be properly thrown
4075         elsewhere.
4076
4077         This was exposed by some Winforms 2.0 code that I tried to run
4078         (Atsushi pointed me to it).
4079
4080 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4081
4082         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4083         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4084         
4085         * marshal.c (emit_marshal_vtype): Add limited support for 
4086         UnmanagedType.LPStruct. Fixes #78427.
4087
4088         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4089         Applied a patch from kangaroo to fix #77523.
4090
4091 2006-05-17  Martin Baulig  <martin@ximian.com>
4092
4093         * threads.c
4094         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4095         (debugger_thread_created): Removed.
4096         (debugger_thread_exited): Removed.
4097
4098 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4099
4100         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4101
4102         * object-internals.h (MonoReflectionResource): Sync with managed version.
4103
4104 2006-05-12  Wade Berrier <wberrier@novell.com>
4105
4106         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4107
4108 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4109
4110         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4111         functions try to allocate from the image mempool.
4112
4113 2006-05-12  Dick Porter  <dick@ximian.com>
4114
4115         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4116
4117 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4118
4119         * object.c: The FieldGetter and FieldSetter methods require the full
4120         name of the class, not only the name. Fixes bug #78277.
4121
4122 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4123
4124         * loader.c (method_from_memberref): Do not pass the NULL klass to
4125         mono_loader_set_error_() methods.  Pass the non-NULL value
4126         (class). 
4127
4128 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4129
4130         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4131         (mono_assembly_close): Null out assembly->image->references after freeing it.
4132
4133         * image.c (mono_image_close): Free image->references.
4134         
4135         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4136
4137 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4138
4139         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4140         before checking if it's NULL (g_assert).
4141
4142 2006-05-10  Martin Baulig  <martin@ximian.com>
4143
4144         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4145         I thought I already killed that two months ago, but now it somehow reappeared.
4146
4147 2006-05-10  Martin Baulig  <martin@ximian.com>
4148
4149         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4150
4151 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4152
4153         * reflection.c: Allocate memory for dynamically created methods in the image
4154         mempools.
4155
4156 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4157
4158         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4159         don't use the ad pointer before checking if it's NULL (g_assert).
4160
4161 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4162
4163         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4164         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4165
4166         * marshal.c: Allocate all signatures from mempools.
4167
4168         * marshal.c: Allocate some more signatures from mempools.
4169
4170 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4171
4172         * object.c (mono_load_remote_field): The code used to provide a
4173         temporary variable for returning results if the user did not
4174         provide a result pointer.  But our temporary variable was allocted
4175         on the satck.
4176
4177         Fix calling code to always pass a result area.   Coverity ID 103.
4178
4179 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4180
4181         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4182         value, not the old. Fixes #78312.
4183         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4184
4185         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4186         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4187         per-image cache.
4188
4189         * assembly.c (mono_assembly_close): Free image->references.
4190
4191         * assembly.c (mono_assembly_names_equal): Fix a warning.
4192         (mono_assemblies_cleanup): Cleanup more global data.
4193
4194         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4195
4196         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4197         ptr_cache and image->modules.
4198
4199         * image.c (mono_image_init): Allocate array_cache lazily.
4200         
4201 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4202
4203         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4204         behavior was changed recently and has bad side effects.
4205
4206 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4207
4208         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4209         
4210         * assembly.c (mono_assembly_close): Remove a debug printf.
4211
4212         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4213
4214         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4215         to also allow for temporary references between mono_image_open ()/close ().
4216
4217         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4218
4219 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4220
4221         * marshal.c: Fix support for dynamic methods.
4222
4223         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4224
4225         * marshal.c (mono_marshal_cleanup): New cleanup function.
4226
4227         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4228         image mempools.
4229
4230         * class.c (mono_class_init): Fix leaking class->nested_classes.
4231
4232         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4233
4234         * image.c (mono_image_init): Initialize the new cashes.
4235
4236         * image.c (mono_image_close): Destroy the new cashes.
4237
4238         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4239
4240         * mempool.c (mono_mempool_strdup): New helper function.
4241
4242         * class-internals.h: Add prototype for mono_loader_unlock ().
4243
4244         * domain.c (mono_jit_info_table_find): Fix a warning.
4245         (mono_debugger_check_runtime_version): Ditto.
4246
4247         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4248         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4249         functions to these modules.
4250
4251         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4252         metadata modules.
4253         
4254         * marshal.c (mono_free_bstr): Fix a warning.
4255
4256         * assembly.c (mono_assembly_open_full): Fix another small leak.
4257
4258         * object.c: Fix some unload leaks in the remoting code.
4259
4260         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4261         function.
4262
4263         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4264
4265         * reflection.c: Fix some unload leaks in dynamic assemblies.
4266
4267 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4268
4269         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4270         * marshal.h: Add BSTR support on Win32
4271         * icall.c: Add BSTR icalls
4272         * metadata.h: Add BSTR enums
4273
4274 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4275
4276         Work to catch the crash from #76795 and turn it into an
4277         exception.   As I stubbed out pieces of the VisualBasic support,
4278         I found a number of places where the code was failing and I added
4279         checks to those places. 
4280         
4281         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4282         function return a status code.  If we fail to parse the signature
4283         from mono_metadata_parse_generic_inst, return FALSE.
4284
4285         * loader.c (mono_get_method_from_token): If we fail to load the
4286         method (mono_class_get) return NULL.   
4287
4288         * (method_from_memberref): Return NULL if we are unable to parse
4289         the method signature
4290
4291         (mono_loader_error_prepare_exception): Since we now use the
4292         loader_error flag internally to stop processing, and obtaining
4293         exceptions that might be thrown will walk this code path the
4294         proper way of going from a MonoLoaderError into a
4295         MonoException was convoluted.   This new routine encapsulates the
4296         process of turning the error into an exception and *clearing* the
4297         error afterwards.
4298         
4299 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4300
4301         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4302         with missing assemblies), and to cope with:
4303
4304                 * Missing fieldref from a non-existing assembly.
4305                 * Missing methodref from a non-existing assembly.
4306
4307         The first batch of work to address *some* of the issues from 76661.
4308         
4309         * object.c (mono_class_create_runtime_vtable): If we fail to
4310         initialize the class raise the exception here. 
4311
4312         * metadata.c (mono_class_get_overrides_full): If any methods fail
4313         to load return the failure to the caller.
4314
4315         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4316         flagging assemblies that failed to load.   
4317
4318         Do not crash if we are unable to load the assembly.
4319
4320         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4321         assemblies. 
4322
4323         * loader.c (mono_loader_set_error_type_load): Change the
4324         convention to always pass unallocated strings, so we make our own
4325         copies (I know our own code had duplicated strings before, but
4326         this keeps the normal conventions).
4327         (method_from_memberref): Call mono_loader_set_error_method_load
4328         for all possible failures of loading the class. 
4329         Remove assert, turn into a loader error.
4330
4331         (mono_loader_error_to_exception): Move this routine from mini
4332         (mini_loader_error_to_exception) there was no need to have that in
4333         mini. 
4334
4335         * class.c (mono_class_from_typeref): If we were not able to load
4336         the assembly with mono_assembly_load_reference, call the
4337         mono_loader_set_error_type_load to register the problem.
4338
4339         (mono_class_setup_fields): If we fail to load the type from
4340         mono_metadata_parse_type_full, call mono_class_set_failure and
4341         break from the loop.
4342
4343         If class->exception_type is set, we do not layout the fields as
4344         that might crash the runtime, and instead return (from breaking
4345         from the previous loop).
4346
4347         (mono_class_setup_vtable): This now returns a boolean indicating
4348         whether the table was properly setup.   The decision is driven by
4349         mono_class_get_overrides_full which might run into non-existing
4350         methods. 
4351         
4352         (mono_class_init): Returns TRUE on success or FALSE if there was a
4353         problem in loading the type (incorrect assemblies, missing
4354         assemblies, methods, etc).
4355
4356         When we call mono_class_setup_fields we also check for a potential
4357         error inside this call (either a class exception or a general
4358         loader exception).
4359
4360         (mono_class_create_from_typedef): If the parent fails to load
4361         (calling mono_class_get_full) return NULL.
4362         
4363         ** Important **
4364
4365         calls to mono_metadata_parse_type_full should be checked
4366         everywhere and set the mono_class_set_failure
4367         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4368
4369         The current patch checks the places where my manually constructed
4370         tests show the errors are showing up, but we should do it
4371         everywhere. 
4372
4373         ** Important2 **
4374
4375         mono_class_init return values should be tested everywhere, like
4376         the previous case this is something that we should audit
4377         everywhere and not only on the cases exposed by the tests I
4378         created. 
4379
4380 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4381
4382         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4383         boolean parameter and instead pass the information on `options'
4384         parameter (FileOptions).
4385
4386         * icall.c: Register the new signature for MonoIO.Open.
4387
4388         * debug-helpers.c (dis_one): Trying to understand how coverity
4389         works.  Fix Run 5, item 78.
4390
4391 2006-04-26  Dick Porter  <dick@ximian.com>
4392
4393         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4394         dereference.
4395
4396 2006-04-25  Martin Baulig  <martin@ximian.com>
4397
4398         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4399
4400         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4401         debugger_thread_created().
4402         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4403         special way.
4404         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4405         (mono_debugger_finalize_threads): New function; undo the effects
4406         of mono_debugger_init_threads().
4407         (mono_debugger_create_all_threads): Removed.
4408
4409 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4410
4411         * image.c (mono_image_close): Tidy up trace messages.
4412
4413         * assembly.c (mono_assembly_close): Ditto.
4414
4415         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4416         no longer references an already freed assembly. Fixes #78168.
4417
4418 2006-04-21  Dick Porter  <dick@ximian.com>
4419
4420         * threads.c (mono_thread_detach): Fix reference counting when
4421         detaching threads.
4422
4423 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4424
4425         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4426         #78155.
4427
4428 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4429
4430         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4431         (mono_type_to_stind): Ditto.
4432
4433         * marshal.c: Use the new helper functions to simplify code.
4434
4435         * image.c (mono_image_close): Add some code for help debug assembly unloading
4436         problems.
4437
4438         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4439         image mempool.
4440
4441         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4442         assembly was already loaded in another appdomain. Fixes #78083.
4443
4444 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4445
4446         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4447         referenced assemblies.
4448         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4449
4450         * domain.c (mono_domain_free): Add a trace message.
4451
4452         * appdomain.c (add_assemblies_to_domain): Ditto.        
4453
4454         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4455         field.  
4456
4457 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4458
4459         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4460
4461 2006-04-12  Martin Baulig  <martin@ximian.com>
4462
4463         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4464         `USE_INCLUDED_LIBGC'.   
4465
4466 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4467
4468         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4469         the patch contains ../ and a small directory name later. Hopefully fixes
4470         #78035.
4471
4472 2006-04-10  Martin Baulig  <martin@ximian.com>
4473
4474         Clean up the debugger's thread-handling code.
4475
4476         The debugger's thread-handling code has been moved from
4477         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4478         over the `threads' hash, keep track of exiting threads and also
4479         use proper locking.
4480
4481         We can now debug XSP and XSP based applications with the debugger.
4482
4483         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4484
4485         * threads.h
4486         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4487         (mono_install_thread_callbacks): Likewise.      
4488
4489         * threads.c (mono_thread_callbacks): Removed.
4490         (debugger_thread_created, debugger_thread_exited): New static functions.
4491         (start_wrapper): Call debugger_thread_created().
4492         (thread_cleanup): Call debugger_thread_exited().
4493         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4494         (mono_debugger_init_threads): New public function.
4495         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4496         iterate directly over the `threads' hash and also use proper locking.
4497
4498         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4499
4500         * mono-debug-debugger.h
4501         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4502
4503 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4504
4505         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4506         argument type=array. Fixes #78057.
4507
4508 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4509
4510         * culture-info-table.h : regenerated. Fixed bug #69652.
4511
4512 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4513
4514         * loader.c metadata.c: Reapply a variant r59116.
4515         
4516         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4517
4518         * class.c (mono_class_setup_interface_offsets): New internal function.
4519
4520         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4521         interfaces too. Fixes #77398.
4522
4523         * reflection.c (encode_cattr_value): Add support for 
4524         parameter type=object, argument type=array.
4525         (load_cattr_value): Ditto. Fixes #77916.
4526
4527         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4528         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4529
4530         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4531         a byval char array and CharSet is Ansi.
4532
4533         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4534
4535 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4536
4537         * metadata.c: Add some locking comments.
4538         
4539         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4540         mempool.
4541         (mono_metadata_free_method_signature): Don't free the signature itself.
4542
4543         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4544
4545         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4546         reference the same MonoImage.
4547         (mono_assembly_load_from_full): Add an assert.
4548
4549 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4550
4551         * image.c (mono_image_close): Don't put the image we are about to free into the
4552         loaded_images_guid_hash.
4553
4554         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4555         to reduce code duplication.
4556
4557         * marshal.c: Register the native functions called by this module as icalls, to
4558         somewhat centralize the creation of MonoMethodSignature's.
4559
4560         * loader.c (mono_method_signature): Add a cache for method signatures.
4561
4562         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4563         the parameter attributes of a method.
4564         (mono_metadata_parse_method_signature_full): Refactored the computation of
4565         parameter attributes into a separate function. Also avoid one allocation in
4566         most cases.
4567
4568         * assembly.c (mono_assembly_close): Ditto.
4569
4570         * image.c (mono_image_close): Log trace messages with INFO level.
4571
4572         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4573
4574         * image.c reflection.c: Correct reference counting of image modules.
4575         
4576         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4577         of this function from the image mempool.
4578         
4579         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4580         to allow more cached types to be used.
4581
4582         * mono-debug.c (mono_debug_add_method): Appled patch from
4583         David S. Miller  <davem@sunset.davemloft.net>: Access 
4584         minfo->lexical_blocks[] entry elements using read32().
4585
4586 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4587
4588         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4589         methods as it is allocated from the mempool.
4590
4591         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4592         image mempool.
4593
4594         * metadata-internals.h: Add comments describing the reference counting scheme
4595         used for MonoImage and MonoAssembly.
4596
4597         * image.c assembly.c reflection.c: Rework reference counting of images and 
4598         assemblies so they are freed when the runtime is shut down. Free some 
4599         additional memory structures when an image is unloaded.
4600         
4601 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4602
4603         * class.c loader.c reflection.c: Allocate more data structures in
4604         the image mempool.
4605
4606 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4607
4608         * icall.c
4609         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4610         build on pre glib 2.4 systems.
4611
4612 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4613
4614         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4615
4616         * icall.c: Fix some warnings.
4617
4618 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4619
4620         * culture-info-table.h : regenerated.
4621
4622 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4623
4624         * threads.c, object-internals.h, verify.c: changed the culture caching
4625         code to use a normal MonoArray for storage so the GC can keep track of
4626         them easily. Fixed bits of the cache logic, too and simplified the
4627         code.
4628
4629 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4630
4631         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4632         thread for non-Boehm GCs.
4633
4634 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4635
4636         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4637         needed to keep track of the data for static fields.
4638
4639 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4640
4641         Fix #75172
4642         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4643         for interface classes.  Use 'num_methods' instead.
4644         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4645         before using '->vtable_size' field.
4646
4647 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4648
4649         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4650         doesn't contain managed pointers, so use a normal hashtable.
4651
4652 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4653
4654         * reflection.c, class-internals.h, domain.c: fixed handling of types
4655         used as values for objects in custom attributes (bug #77915):
4656
4657 2006-03-24  Martin Baulig  <martin@ximian.com>
4658
4659         * class.c (mono_class_setup_fields): Added support for generic
4660         instances; fixes #77580.
4661
4662 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4663
4664         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4665
4666 2006-03-24  Dick Porter  <dick@ximian.com>
4667
4668         * file-io.c (get_file_attributes): More stat macro breakage.
4669         Fixes bug 77759.
4670
4671 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4672
4673         * profiler.c: added the file=filename option in the default profiler
4674         to output the profile data to filename.
4675
4676 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4677
4678         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4679         bug #77877.
4680
4681 2006-03-22  Martin Baulig  <martin@ximian.com>
4682
4683         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4684         allocated `MonoClassField *' in `fb->handle'.
4685
4686 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4687
4688         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4689         allocate interface ID to save memory and allow better ID reuse on
4690         appdomain unload. setup_generic_vtable () removal from Martin.
4691
4692 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4693
4694         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4695         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4696         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4697         write barriers for reference stores with managed objects accessed with
4698         C structures in the runtime and in embedding programs.
4699
4700 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4701
4702         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4703         'interface_id' and 'max_interface_id' fields of MonoClasses
4704         representing open generic types.
4705
4706 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4707
4708         * object.h, object.c, icall.c: added functions to deal with
4709         storing valuetypes that contain references in managed objects.
4710         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4711         fixes and comments around uses of mono_array_addr ().
4712
4713 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4714
4715         * object.h, icall.c, monitor.c: object.GetHashCode ()
4716         implementation that supports the moving garbage collector.
4717
4718 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4719
4720         * icall.c, threads-types.h, threads.c: implemented finalizer for
4721         LocalDataStoreSlot.
4722
4723 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4724
4725         * metadata.c (mono_type_size): Add a fixme.
4726         (mono_type_stack_size): Ditto.
4727
4728         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4729         'type_forwarders' field.
4730
4731         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4732         attribute from net 2.0.
4733
4734         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4735         from class.c.
4736
4737         * class.c (mono_class_setup_fields): Fix a warning.
4738         
4739         * class.c (mono_class_from_name): Add support for assemblyref entries
4740         in the EXPORTEDTYPE table.
4741
4742         * reflection.c: Add support for handling type forwarders under net 2.0.
4743
4744         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4745         
4746 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4747
4748         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4749         overwriting entries in ModuleBuild->types, also clean up the code
4750         a little. Fixes #77774.
4751
4752 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4753
4754         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4755         load friend assembly info when present.
4756
4757 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4758
4759         Fix crasher on gtest-158.cs.
4760         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4761         the return value if the MonoClass we want is yet in an
4762         inconsistent state.
4763         * class.c (mono_class_create_from_typedef): Add an comment
4764         explaining an order dependency between mono_class_setup_parent and
4765         mono_class_setup_mono_type.
4766
4767 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4768
4769         * class.c: documentation updates and events bug fix.
4770
4771 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4772
4773         * class.c: some cleanup, locking fixes.
4774
4775 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4776
4777         * class.c: fix the generics code to setup nested
4778         type info to the instantiated type (bug #77770).
4779
4780 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4781
4782         * marshal.c: fixed a few type correctness issues.
4783
4784 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4785
4786         * loader.c: the Set/Get/Addrtess array methods should be public.
4787
4788 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4789
4790         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4791         
4792         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4793         info->wrapper.
4794
4795 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4796
4797         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4798
4799         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4800
4801         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4802         (mono_mempool_alloc0): Ditto.
4803
4804 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4805
4806         * socket-io.c:
4807         (create_object_from_sockaddr): it was allocating 4 extra bytes
4808         for the AF_UNIX data. Fixes bug #77747.
4809
4810 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4811
4812         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4813
4814 2006-03-09  Dick Porter  <dick@ximian.com>
4815
4816         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4817         Fixes bug 76966 again.
4818
4819 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4820
4821         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4822         names from r57532
4823         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4824
4825 2006-03-07  Martin Baulig  <martin@ximian.com>
4826
4827         * object.c
4828         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4829
4830 2006-03-07  Martin Baulig  <martin@ximian.com>
4831
4832         * class.c
4833         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4834         regression introduced in r56970; see gtest-252.cs.
4835
4836         * loader.c (mono_get_method_constrained): Correctly handle generic
4837         methods; see gtest-253.cs.
4838
4839 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4840
4841         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4842
4843 2006-03-04  Martin Baulig  <martin@ximian.com>
4844
4845         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4846         compute the parent type at runtime, just like we're already doing
4847         it for interfaces.
4848
4849         * reflection.c
4850         (mono_reflection_bind_generic_parameters): Don't compute the
4851         parent type anymore.
4852
4853         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4854
4855 2006-03-04  Martin Baulig  <martin@ximian.com>
4856
4857         * mono-debug-debugger.h
4858         (mono_debugger_create_notification_function): Allocate memory at
4859         runtime and return a pointer to it.
4860
4861 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4862
4863         * assembly.c: Fix windows build.
4864         
4865         * assembly.c: Fix build.
4866
4867         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4868
4869         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4870         
4871 2006-03-03  Dick Porter  <dick@ximian.com>
4872
4873         * process.c
4874         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4875         Check parameters before dereferencing them.  Fixes Aaron's part of
4876         bug 77393.
4877
4878 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4879
4880         Fix performance regression.
4881         * loader.c (find_method_in_class): Add 'from_class' argument.
4882         Rename 'klass' argument to 'in_class'.  The signature is compared
4883         against the method in 'in_class', and the corresponding method is
4884         returned from 'from_class'.
4885         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4886         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4887         type definition and generic instantiation in parallel.
4888         (mono_get_method_constrained): Update to changes.
4889
4890 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4891
4892         * threads.c: make sure the domain is correct, too when doing
4893         mono_thread_attach ().
4894
4895 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4896
4897         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4898         windows. Fixes #77683.
4899
4900 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4901
4902         * object.h, *: introduced specific way to set elements of an array
4903         of references to be used as write barrier. Still need to audit the
4904         uses of mono_array_addr.
4905
4906 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4907
4908         * object-internals.h: New field to cache the assmebly name, patch
4909         from Tambet Ingo (tambet@ximian.com)
4910
4911 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4912
4913         * decimal.h, class-internals.h, metadata-internals.h,
4914         file-io.h: mark a few function declarations as internal, to
4915         reduce the number of PLT entries.
4916
4917 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4918
4919         * file-io.c: fix typo in warning message.
4920
4921 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4922
4923         * loader.c: on unix, lookup the "*A" version of a function
4924         if charset is auto as a second option before failing.
4925
4926 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4927
4928         * class.h (mono_class_inflate_generic_method): Revert to two
4929         argument version.
4930         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4931         (mono_class_inflate_generic_method_full): Add.
4932         * class.c (mono_class_inflate_generic_method_full): Rename from
4933         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4934         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4935         * loader.c, reflection.c: Update to changes.
4936
4937 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4938
4939         * icall.c: const fixes and small improvements.
4940
4941 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4942
4943         * threadpool.c: for asynchronous connect(), enable the same workaround
4944         for BSD 6 as for the Mac. Fixes bug #77637.
4945
4946 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4947
4948         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4949         formatted classes. Fixes #77524.
4950
4951 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4952
4953         * class.c (inflate_generic_type): Add a couple more
4954         micro-optimizations.
4955         (inflate_generic_context): Don't use the 'gmethod' from
4956         'inflate_with'.
4957         (mono_class_inflate_generic_method): If the method has generic
4958         parameters, but the passed-in context doesn't have a 'gmethod',
4959         create one.  Use the possibly simplified generic instantiation
4960         from the declaring class instead of the one passed in.
4961
4962 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4963
4964         Make generic method signature and method header handling lazy.
4965         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4966         (inflate_generic_header): Likewise.
4967         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4968         parameter to avoid inflating types.
4969         (mono_get_inflated_method): Empty out.
4970         * class.h (mono_class_inflate_generic_method): Update to changes.
4971         * loader.c (mono_get_method_from_token): Don't parse signature for
4972         generic methods, nor methods of generic classes.
4973         (mono_method_signature): Rename from 'mono_method_signature'.
4974         Inflate signature on demand.
4975         (mono_method_get_header): Inflate method header on demand.
4976         * reflection.c: Update to changes.
4977
4978 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4979
4980         * metadata.c (mono_metadata_inflate_generic_inst): If the
4981         instantiation is closed, don't bother expanding it in the new
4982         context.
4983         * class.c (inflate_generic_class): If the generic instantiation
4984         doesn't change after inflation, return the argument itself.
4985         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4986         Add bounds checks.
4987         (inflate_generic_context): If neither the generic class nor the
4988         generic method instantiations change, return the original context.
4989         * reflection.c (mono_method_get_object): Do
4990         'mono_get_inflated_method' before accessing the ->klass field.
4991         (inflate_mono_method): Don't create a MonoGenericMethod unless
4992         necessary.
4993         (inflate_method): Don't pass a constructed type as the declaring
4994         type of a methodbuilder.
4995
4996 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4997
4998         * object.c: fix memory overwrite.
4999
5000 2006-02-22  Dick Porter  <dick@ximian.com>
5001
5002         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5003         it doesn't work any more.
5004         (mono_threads_request_thread_dump): Fix unused variable warnings.
5005
5006 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5007
5008         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5009         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5010         the public header file.
5011
5012 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5013
5014         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5015
5016 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5017
5018         * class-internals.h, object.c: reduce the size of MonoVTable
5019         and store the interface_offsets array at negative offsets.
5020
5021 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5022
5023         * metadata.c: tweak table descriptors data structures to reduce
5024         size and runtime relocations.
5025
5026 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5027
5028         * marshal.c: fix some types and opcodes to be type-safe
5029         in marshaling wrappers.
5030
5031 2006-02-21  Ankit Jain  <jankit@novell.com>
5032
5033         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5034
5035 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5036
5037         * metadata.c (get_constraints): Relax debugging checks for monodis.
5038
5039 2006-02-21  Ankit Jain  <jankit@novell.com>
5040
5041         * metadata.c (mono_metadata_load_generic_params): Move the code
5042         checking for ambiguous generic params from here to mono/dis/get.c
5043         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5044
5045 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5046
5047         Fix assertion triggered when compiling nemerle.
5048         * class.c (mono_get_shared_generic_inst): Rename from
5049         get_shared_inst and make non-static.
5050         * loader.c (mono_get_shared_generic_method): New.  Used to create
5051         the MonoGenericContext-equivalent of a MonoGenericContainer.
5052         (mono_get_method_from_token): Initialize the 'context' field of
5053         the created MonoGenericContainer.
5054         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5055         * metadata.c (get_constraints): Add sanity check.
5056         * class-internals.h: Add new internal methods.
5057
5058         * reflection.c (verify_safe_for_managed_space): New sanity check.
5059         Currently checks that owner-less generic parameters aren't allowed
5060         in managed space.
5061         (mono_type_get_object): Use it.
5062         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5063         that are now in mono_type_get_object.
5064         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5065
5066 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5067
5068         * metadata.c (mono_type_create_from_typespec): Rename from
5069         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5070         argument and caching of types in the generic container.
5071         (unwrap_arrays, find_generic_param): Remove.
5072         * metadata-internals.h: Update.
5073         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5074
5075 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5076
5077         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5078
5079         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5080         return values. Fixes #77581.
5081
5082         * class.c (mono_fnptr_class_get): Switch name and name_space.
5083
5084         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5085         classes and add support for [In, Out] attributes.
5086         (mono_marshal_free_asany): Ditto. Fixes #77524.
5087
5088 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5089
5090         * class.c (mono_class_from_generic_parameter): Make more robust to
5091         incomplete MonoGenericContainers from monodis.
5092
5093 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5094
5095         * class-internals.h: added some more exception types.
5096         * class.c, metadata.c: added a few checks to handle missing
5097         types.
5098
5099 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5100
5101         Use owner-less generic-params some more.
5102         * class.c (my_mono_class_from_generic_parameter): Remove.
5103         (mono_class_from_generic_parameter): Handle null image,
5104         param->name and param->owner.
5105         (mono_class_from_mono_type): Update.
5106         (mono_class_create_from_typespec): Remove 'container' parameter.
5107         If that parameter is non-null, the result is always inflated by
5108         'mono_class_get_full' anyway.
5109         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5110         parameter.
5111         (mono_class_get_full): Update.
5112
5113         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5114         instance is not open, don't bother inflating.
5115         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5116         parse metadata for inflated classes.
5117         (_mono_class_get): Change GenericContext* parameter to
5118         GenericContainer*.
5119         (mono_class_create_from_typespec): Likewise.  Simplify, and
5120         implement trivially.  All the cases are handled in
5121         mono_class_from_mono_type.  Don't inflate returned class.
5122         (mono_class_get_full): Delegate GENERICINST optimization to
5123         inflate_generic_type.
5124         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5125
5126 2006-02-16  Dick Porter  <dick@ximian.com>
5127
5128         * socket-io.c (create_object_from_sockaddr): Fix typo.
5129         (create_sockaddr_from_object): Check array lengths before
5130         potentially accessing items off the end.
5131         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5132         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5133         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5134         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5135         length checks to avoid wraparound overflows.
5136         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5137         contents of the array of sockets
5138         (hostent_to_IPHostEntry2)
5139         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5140         Check return value of inet_ntop ().
5141         (addrinfo_to_IPHostEntry): Fix typo
5142
5143 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5144
5145         Type metadata parsing doesn't use generic-instantiation information.
5146         * metadata.c (mono_metadata_parse_array_full): Change
5147         MonoGenericContext* parameter to MonoGenericContainer*.
5148         (mono_metadata_parse_type_full): Likewise.
5149         (mono_type_create_from_typespec_full): Likewise.
5150         (mono_metadata_parse_mh_full): Likewise.
5151         (mono_metadata_parse_generic_inst): Likewise.
5152         (do_mono_metadata_parse_generic_class): Likewise.
5153         (do_mono_metadata_parse_type): Likewise.
5154         * metadata-internals.h: Update to changes.
5155         * class.c (mono_class_find_enum_basetype): Likewise.
5156         (mono_class_setup_fields): Likewise.
5157         (mono_class_create_from_typespec): Likewise.
5158         * loader.c (method_from_methodspec): Likewise.
5159         (mono_get_method_from_token): Likewise.
5160         (mono_method_get_header): Likewise.
5161
5162 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5163
5164         * marshal.c: handle additional GENERICINST case (patch from
5165         Thong Nguyen <tum@veridicus.com>).
5166         Fix a few cases where LDIND_I/STIND_I was used for references.
5167
5168 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5169
5170         * reflection.c (mono_reflection_get_token): Remove unused variable.
5171
5172 2006-02-16  Martin Baulig  <martin@ximian.com>
5173
5174         * reflection.c (mono_reflection_get_token): Add support for fields
5175         in instantiated generic types.
5176
5177         * icall.c
5178         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5179
5180 2006-02-15  Martin Baulig  <martin@ximian.com>
5181
5182         * icall.c
5183         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5184         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5185         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5186         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5187
5188 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5189
5190         * class.c, metadata.c, metadata.h, object.c, icall.c,
5191         marshal.c: changed mono_type_get_underlying_type () to do
5192         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5193         Fixed handling of instantiated generic valuetypes (bug #75479).
5194
5195 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5196
5197         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5198         Delegate to mono_metadata_decode_value, and work on the returned value.
5199
5200         * icall.c (ves_icall_MonoType_GetGenericArguments):
5201         Add consistency check here too.
5202         
5203 2006-02-15  Ankit Jain  <jankit@novell.com>
5204
5205         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5206         char/short etc.
5207
5208 2006-02-15  Ankit Jain  <jankit@novell.com>
5209
5210         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5211         signed values, used only for representing lower bounds of arrays.
5212         (mono_metadata_parse_array_full): Use new
5213         mono_metadata_decode_signed_value to decode lower bounds.
5214
5215 2006-02-14  Martin Baulig  <martin@ximian.com>
5216
5217         * reflection.c
5218         (mono_reflection_get_token): Support "MonoGenericMethod" and
5219         "MonoGenericCMethod" and allow generic instances / methods.
5220
5221 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5222
5223         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5224         to obtain the terminal size using an ioctl.
5225
5226         * object.c (mono_nullable_init): Revert this as nullable reference
5227         types are not valid.
5228         (mono_nullable_box): Ditto.
5229
5230 2006-02-09  Dick Porter  <dick@ximian.com>
5231
5232         * threads.c (mono_thread_detach): Drop a reference to the thread
5233         we're detaching.
5234
5235 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5236
5237         * object.c (mono_nullable_init): Handle nullable reference types.
5238         (mono_nullable_box): Ditto. Fixes #77446.
5239
5240 2006-02-07  Martin Baulig  <martin@ximian.com>
5241
5242         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5243
5244 2006-02-07  Ankit Jain  <jankit@novell.com>
5245
5246         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5247         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5248         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5249         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5250         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5251         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5252
5253 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5254
5255         * class.c (mono_class_create_generic): Set type_token as well.
5256
5257         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5258         compatible with MS.
5259
5260 2006-02-02  Martin Baulig  <martin@ximian.com>
5261
5262         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5263         has never been used so far.
5264
5265 2006-02-02  Martin Baulig  <martin@ximian.com>
5266
5267         * mono-debug-debugger.h: Changed comment at the top of this file;
5268         the header is not installed, but it's safe to #include it from
5269         within the JIT.
5270
5271         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5272         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5273
5274 2006-02-02  Martin Baulig  <martin@ximian.com>
5275
5276         * mono-debug.h
5277         (MonoSymbolTable): Removed the `metadata_info' field.
5278
5279         * mono-debug.c
5280         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5281
5282         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5283         (mono_debugger_add_builtin_types): Removed.
5284         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5285         (mono_debugger_create_notification_function): We now operate on a
5286         pre-allocated area; take a `gpointer' and return `void'.
5287
5288         * mono-debug-debugger.c
5289         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5290         (mono_debugger_add_builtin_types): Removed.
5291
5292 2006-02-02  Martin Baulig  <martin@ximian.com>
5293
5294         * threads.c (mono_debugger_create_all_threads): New public method.
5295
5296 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5297
5298         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5299         breaks on several platforms.
5300
5301 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5302
5303         * assembly.c: the VS.NET build doesn't supply default values for
5304         MONO_ASSEMBLIES and MONO_CFG_DIR.
5305
5306 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5307
5308         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5309         helper function.
5310
5311         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5312
5313         * loader.c (method_from_memberref): Fix a warning.
5314
5315         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5316
5317         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5318         with explicit layout. Fixes #77433.
5319
5320 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5321
5322         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5323         max_interface_id is initialized before using it. Fixes #77398.
5324         (ves_icall_Type_GetInterfaces): Ditto.
5325
5326 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5327
5328         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5329         allocate memory for parameter attributes when parsing memberref
5330         signatures.
5331         * loader.c (mono_loader_set_error_method_load): Don't warn.
5332         (method_from_memberref): Ensure MissingMethodException gets thrown
5333         if method is not found.  Make warning more informative.
5334
5335 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5336
5337         Fix #77397
5338         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5339         return true if is byref.
5340         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5341         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5342         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5343
5344 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5345
5346         Fix tests/find-method.2.il
5347         * loader.c (find_method, find_method_in_class): Remove is_inflated
5348         argument.  Revert 2006-01-18 change.
5349         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5350         is generic, search for method in its generic definition.
5351         * class.c (mono_class_setup_vtable_general): Print generic
5352         arguments of generic types in debugging printf.
5353
5354 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5355
5356         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5357
5358         * threads.c (mono_threads_request_thread_dump): New helper function.
5359
5360 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5361
5362         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5363
5364 2006-01-25  Ankit Jain  <jankit@novell.com>
5365
5366         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5367         move definition to ..
5368         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5369         
5370 2006-01-25  Ankit Jain  <jankit@novell.com>
5371             Raja R Harinath  <rharinath@novell.com>
5372
5373         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5374         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5375         as necessary.
5376
5377 2006-01-25  Martin Baulig  <martin@ximian.com>
5378
5379         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5380         `MonoDebuggerThread' into debug-debugger.c.
5381
5382 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5383
5384         * profiler.c: fix printing of data.
5385
5386 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5387
5388         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5389           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5390
5391 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5392
5393         * object.c: fix deadlock related to string interning.
5394
5395 2006-01-23  Martin Baulig  <martin@ximian.com>
5396
5397         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5398
5399         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5400
5401 2006-01-23  Martin Baulig  <martin@ximian.com>
5402
5403         * mono-debug.h: Moved the prototypes of some functions which are
5404         used by the JIT here from mono-debug-debugger.h.
5405
5406 2006-01-21  Martin Baulig  <martin@ximian.com>
5407
5408         * Makefile.am: Don't install mono-debug-debugger.h.
5409
5410 2006-01-21  Martin Baulig  <martin@ximian.com>
5411
5412         * mono-debug-debugger.h: Enforce the private status of this header
5413         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5414         Moved some stuff from mono-debugger-jit-wrapper.h here.
5415
5416 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5417
5418         * class.c (mono_class_from_typeref): Add a sanity test to help
5419         catch lack of assembly load/search hooks.
5420
5421 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5422
5423         * marshal.c (emit_struct_conv): Relax the fields with same offset
5424         check even more. Fixes #77230.
5425
5426 2006-01-18  Martin Baulig  <martin@ximian.com>
5427
5428         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5429         argument; if false, we compare the uninstantiated signatures.
5430         (method_from_memberref): Compare the uninstantiated signatures;
5431         fixes #76417.
5432
5433 2006-01-18  Robert Jordan  <robertj@gmx.net>
5434
5435         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5436         Clear the weak link. Fixes bug #77170.
5437
5438         * gc.c (mono_gchandle_free):
5439         Reflect *-gc.c changes (tiny optimization).
5440
5441 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5442
5443         * metadata.c (mono_metadata_signature_dup): Applied patch from
5444         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5445         Fixes #77288.
5446
5447 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5448
5449         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5450         marshalling from native to managed code. Fixes #77230.
5451
5452 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5453
5454         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5455         connect. Fixes bug #77020.
5456
5457 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5458
5459         * class.c: fixed id assignement for nested interfaces (bug #77275).
5460         Added also better info for --print-vtable debugging.
5461
5462 2006-01-12  Martin Baulig  <martin@ximian.com>
5463
5464         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5465         interfaces on-the-fly; fixes #76625.
5466
5467         * class-internals.h
5468         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5469         don't need that anymore.
5470
5471 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5472
5473         * socket-io.c
5474         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5475         To avoid initing the nested_classes when not needed I turned the
5476         PeerCredData as a toplevel internal class, as it has to be shared
5477         anyways. 
5478
5479         Fixes the CASA issue.
5480
5481 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5482
5483         * domain.c: Accessors for MonoJitInfo
5484
5485         * profiler-private.h: Add jitinfo to the end jit hook
5486
5487         * profiler.[ch]: Define new hooks, called after jitting which give
5488         the MonoJitInfo that was compiled
5489
5490 2006-01-10  Martin Baulig  <martin@ximian.com>
5491
5492         * class.c (mono_class_setup_events): Add support for generic
5493         classes; fixes #76440.
5494
5495 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5496
5497         Fix #77160.
5498         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5499         on passed-in method.
5500
5501 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5502
5503         * object.c (mono_runtime_invoke_array): Add Nullable support.
5504
5505         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5506
5507 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5508
5509         * file-io.c: Don't consider sockets as directory and avoid an endless
5510         loop. Fix bug #76966.
5511
5512 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5513
5514         * object.c (mono_nullable_init): New helper function.
5515         (mono_nullable_box): Ditto.
5516
5517         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5518
5519         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5520
5521         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5522         
5523 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5524
5525         * class.c (mono_class_is_assignable_from): Make T assignable to 
5526         Nullable<T>.
5527
5528 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5529
5530         * appdomain.c: Bump corlib version to 46.
5531         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5532         serialization purpose) and changed ves_icall_System_Reflection_
5533         Assembly_get_code_base signature to accept a boolean (to escape, or 
5534         not, the assembly code base).
5535
5536 2005-12-23  Dick Porter  <dick@ximian.com>
5537
5538         * icall.c: 
5539         * threads-types.h: 
5540         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5541         CreateEvent icall now returns "created" boolean parameter.
5542
5543 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5544
5545         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5546         #76967.
5547
5548         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5549         when attr_klass is an interface. Fixes #77045.
5550
5551 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5552
5553         * marshal.c (emit_struct_conv): Fix previous patch.
5554         
5555         * marshal.c (emit_struct_conv): Add a check for fields with the same
5556         offset.
5557
5558 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5559
5560         Fix regression in Mono.C5.
5561         * class.c (mono_class_create_generic): If 'klass' is an interface
5562         set up the interface offsets.
5563         (mono_class_is_assignable_from): Don't throw away generic arguments.
5564
5565 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5566
5567         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5568         type parameters.
5569
5570 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5571
5572         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5573         dead store.
5574         (do_mono_metadata_parse_generic_class): Don't pass the current
5575         generic context when parsing the type being instantiated: it
5576         cannot use it, anyway.
5577
5578         * loader.c (method_from_memberref): Don't inflate a signature if
5579         it doesn't contain any type parameters.
5580
5581 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5582
5583         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5584
5585 2005-12-14  Martin Baulig  <martin@ximian.com>
5586
5587         * class.c
5588         (mono_type_get_name_recurse): Don't return null for type
5589         parameters and open generic classes.
5590         (mono_class_setup_methods): Don't exclude generic instances.
5591         (mono_get_unique_iid): Use different IDs for different
5592         instantiations of the same generic type.
5593         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5594         open generic instances; create a normal vtable for closed generic
5595         instances.
5596         (mono_class_setup_vtable_general): We're now also called for
5597         closed generic instances.
5598
5599         * reflection.c
5600         (mono_reflection_bind_generic_parameters): Correctly use
5601         mono_metadata_lookup_generic_inst() everywhere.
5602
5603 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5604
5605         * object.c (mono_class_create_runtime_vtable): Call 
5606         mono_class_setup_vtable ().
5607
5608         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5609         function.
5610         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5611         #76959.
5612
5613         * loader.c (mono_loader_set_error_type_load): Print the type load
5614         warnings to the console so they are more visible to the user.
5615         (mono_loader_set_error_method_load): Ditto.
5616
5617         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5618         is still broken.
5619         
5620         * reflection.c (ensure_runtime_vtable): Fix build.
5621
5622         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5623         doesn't work in all cases.
5624
5625 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5626
5627         * object.c (mono_array_new_full): Treat a single dimensional array
5628         with 0 lower bounds as an szarray. Fixes #76973.
5629
5630         * reflection.c (custom_attr_visible): Really fix this.
5631
5632 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5633
5634         * reflection.c (custom_attr_visible): Allow nested public attributes
5635         as well.
5636
5637         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5638         interface check.
5639
5640 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5641
5642         * class.c (set_generic_param_owner): Delete.
5643         (mono_class_create_from_typedef): Don't set ->owner field of
5644         generic parameters to "param containers" of enclosing classes.
5645         * reflection.c (mono_reflection_initialize_generic_parameter):
5646         Likewise.
5647
5648 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5649
5650         * reflection.c (custom_attr_visible): Fix build.
5651
5652 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5653
5654         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5655         private attributes.
5656         
5657         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5658         handling of null parameter defaults.
5659
5660 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5661
5662         * class.c (mono_class_from_generic_parameter): Don't set
5663         klass->generic_container.
5664         (my_mono_class_from_generic_parameter): Likewise.
5665
5666 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5667
5668         * reflection.c (load_public_key): Fix a warning.
5669         (method_encode_code): Fix unaligned accesses.
5670
5671 2005-12-07  Martin Baulig  <martin@ximian.com>
5672
5673         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5674
5675         * reflection.c
5676         (write_generic_param_entry): Encode our custom attrs.
5677
5678         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5679
5680 2005-12-07  Martin Baulig  <martin@ximian.com>
5681
5682         * reflection.c (encode_new_constraint): Removed; we don't use the
5683         `NewConstraintAttribute' anymore.
5684
5685 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5686
5687         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5688         not fire a TypeResolve event when Assembly.GetType () is called.
5689
5690 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5691
5692         Beginning of support for nullable types in the runtime. Parts of
5693         this patch are from Martin.
5694
5695         * appdomain.c (MONO_CORLIB_VERSION): Bump
5696
5697         * domain.c (mono_init_internal): get the nullable type
5698
5699         * class.c (mono_class_is_nullable): New method
5700         (mono_class_get_nullable_param): New mehod
5701         (mono_class_create_generic): In types T? set cast_class to T
5702
5703         * class-internals.h (MonoDefaults): new nullable default class
5704         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5705         new methods.
5706
5707 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5708
5709         * metadata.c (select_container): New.  Refactor code to select the
5710         appropriate GenericContainer given the type of generic parameter
5711         we are looking for.
5712         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5713         not a MonoGenericContext.  Use select_container.  Update parameters.
5714         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5715         and MONO_TYPE_MVAR.
5716         (unwrap_arrays): Remove duplicate tests.
5717         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5718         generic instantiated class to find any arguments that are generic
5719         parameters.
5720         (mono_type_create_from_typespec_full): Use find_generic_param to
5721         avoid evicting some generic instantiations from the typespec
5722         cache.
5723
5724 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5725
5726         * reflection.c: fixed writing of doubles on ARM FPA.
5727
5728 2005-12-02  Robert Jordan  <robertj@gmx.net>
5729
5730         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5731
5732 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5733
5734         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5735         least on SUSE 10 they are not the same (on debian, they are just the
5736         same thing).
5737
5738 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5739
5740         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5741         DeclaringType for VARs and MVARs.
5742         * class.c (set_generic_param_owner): Fix initialization of owner
5743         fields.
5744
5745 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5746
5747         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5748
5749 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5750
5751         * threadpool.c: workaround for a bug that shows up on the Mac:
5752         select()+connect() on a blocking socket is not like it should
5753         be, so we proceed to connect() in that case, wasting the I/O
5754         threadpool thread until connect succeedes. Fixes bug #75436.
5755
5756 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5757
5758         * threadpool.c: fix typo when setting file descriptor states.
5759
5760 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5761
5762         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5763         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5764         create a temporary signature container.
5765         (mono_metadata_parse_generic_param): Update to changes.
5766         (mono_type_create_from_typespec_full): Update to changes.
5767         * loader.c (method_from_memberref): Don't use a
5768         MonoGenericContainer while parsing a memberref signature.
5769         (method_from_methodspec): Remove dead-store of the 'container'
5770         variable.  It's overwritten before use.
5771
5772         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5773         checks tighter.
5774         (mono_metadata_parse_generic_param): Likewise.
5775         * loader.c (find_method_in_class): Does not need a
5776         MonoGenericContainer.  Use 'mono_method_signature' rather than
5777         'mono_method_signature_full'.
5778         (find_method, mono_get_method_constrained, method_from_memberref):
5779         Update to changes.
5780
5781         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5782         owner-less generic-parameters are never evicted from the typespec
5783         cache.
5784
5785         * loader.c (method_from_memberref): Don't use the current context
5786         when parsing signatures.
5787         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5788
5789         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5790         side-effects in g_assert.
5791         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5792         that we don't potentially lose information.
5793
5794 2005-11-26  Dick Porter  <dick@ximian.com>
5795
5796         * icall.c:
5797         * threads.c: icalls to implement basic (ie, not named)
5798         System.Threading.Semaphore.
5799
5800 2005-11-24  Dick Porter  <dick@ximian.com>
5801
5802         * process.c
5803         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5804         Use GetProcessId() if it's available.
5805
5806 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5807
5808         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5809
5810 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5811             Ankit Jain  <jankit@novell.com>
5812
5813         * loader.c (mono_get_method_from_token): Initialize 'method' field
5814         of all generic parameters before parsing the signature.  Remove
5815         code that "fixed"-up MVAR references.
5816
5817 2005-11-23  Ankit Jain  <jankit@novell.com>
5818
5819         * metadata.c (mono_metadata_has_generic_params):
5820         (mono_metadata_load_generic_param_constraints):
5821         (mono_metadata_load_generic_params): Move duplicate code ...
5822         (mono_metadata_get_generic_param_row): ... here. Returns the
5823         first row-id in GenericParam table for a given owner (token).
5824         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5825         prototype.
5826
5827 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5828             Ankit Jain  <jankit@novell.com>
5829
5830         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5831         comparing VARs too.
5832         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5833         type->data.generic_param only if the type is an MVAR.
5834         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5835         leak owner-less VARs and MVARs into managed space.
5836
5837 2005-11-21  Martin Baulig  <martin@ximian.com>
5838
5839         * class-internals.h
5840         (MonoMethod): Moved the `generic_container' here from
5841         `MonoMethodNormal' since we now also need it for
5842         `MonoMethodPInvoke';
5843         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5844         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5845         an union containing both `MonoMethodNormal' and
5846         `MonoMethodPInvoke'.
5847
5848         * loader.c
5849         (mono_get_method_from_token): Allow implementing generic methods
5850         as interncalls.
5851
5852         * threads.c
5853         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5854         icall.
5855
5856 2005-11-17  Dick Porter  <dick@ximian.com>
5857
5858         * icall.c: 
5859         * process.h: 
5860         * process.c: Split the Process Start_internal icall into
5861         ShellExecuteEx_internal and CreateProcess_internal, which are
5862         called depending on whether UseShellExecute is true.  Fixes bug
5863         76670.
5864
5865         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5866
5867 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5868
5869         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5870         'msize' parameters, use the information in 'mspec' instead.
5871         (emit_object_to_ptr_conv): Ditto.
5872
5873         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5874         fields out of order. Fixes #76733.
5875
5876 2005-11-17  Ankit Jain  <jankit@novell.com>
5877
5878         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5879
5880 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5881
5882         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5883           bug #76575.
5884
5885 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5886
5887         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5888         for types with non-auto layout. Fixes #76717.
5889
5890 2005-11-16  Ankit Jain  <jankit@novell.com>
5891
5892         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5893         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5894         if generic_context is null.
5895           (mono_metadata_generic_param_equal): param->owner can be null.
5896           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5897         null.
5898
5899 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5900
5901         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5902         the correct value.
5903
5904 2005-11-15  Martin Baulig  <martin@ximian.com>
5905
5906         * object.c (set_value): Use mono_class_from_mono_type() instead of
5907         the hack for generic instances; fixes #76136.
5908
5909 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5910
5911         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5912         fields.
5913
5914         * image.c (load_metadata_ptrs): Initialize the new fields.
5915
5916         * reflection.c (create_dynamic_mono_image): Ditto.
5917
5918         * reflection.c (build_compressed_metadata): Use the new fields.
5919
5920         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5921         icall.
5922
5923         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5924         icall.
5925         
5926 2005-11-15  Ankit Jain  <jankit@novell.com>
5927             Raja R Harinath  <harinath@gmail.com>
5928
5929         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5930         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5931         new per-generic_container cache if the cached MonoType's context matches
5932         the current context.
5933           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5934         to the expected context.
5935           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5936
5937 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5938
5939         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5940         we changed the signature of an icall.
5941         * icall.c: Modify to mono_double_ParseImpl return true/false 
5942         depending on the success, instead of throwing the exception. This will
5943         help us in Double.TryParse methods.
5944         
5945 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5946
5947         * marshal.c (emit_marshal_object): Throw an exception when
5948         marshalling 'object' instead of crashing. Fixes #76696.
5949
5950 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5951
5952         * class-internals.h: Add prototype for mono_type_get_full_name ().
5953
5954 2005-11-11  Dick Porter  <dick@ximian.com>
5955
5956         * threads.c (mono_thread_manage): Make sure the main thread has
5957         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5958
5959 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5960
5961         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5962         console about the missing type.
5963         (mono_loader_set_error_method_load): Ditto.
5964
5965 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5966
5967         * mono-config.c (mono_get_config_dir): Set the system defaults if
5968         none is specified.
5969
5970         * assembly.c (mono_set_dirs): New API entry point to set the
5971         assembly and the config directory in one call
5972
5973 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5974
5975         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5976         the ftnptr was created from a delegate in a domain other than the
5977         current domain. Fixes #75377.
5978
5979         * exception.h exception.c: Add mono_get_exception_not_supported ().
5980
5981 2005-11-08  Martin Baulig  <martin@ximian.com>
5982
5983         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5984
5985 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5986
5987         * security-manager.h: Added definitions to deal with strongname key 
5988         pairs bigger (and smaller) than 1024 bits.
5989         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5990         adjust wrt the public key length being used.
5991
5992 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5993
5994         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5995           Windows build (r51396-51397).
5996
5997 2005-11-03  Martin Baulig  <martin@ximian.com>
5998
5999         * class.c (mono_class_setup_vtable_general): Also add generic
6000         methods to the vtable; fixes #76581.
6001
6002 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6003
6004         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6005         sure that we lookup GetString method from the System.Text.Encoding
6006         class, not the derived class or we get an empty method.
6007
6008         Fixed class #76612.
6009
6010 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6011
6012         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6013         if it has been previously set (embedders). 
6014
6015         Make mono_set_rootdir available also on Unix.
6016
6017 005-10-24  Robert Jordan  <robertj@gmx.net>
6018
6019         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6020
6021 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6022
6023         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6024         only calls which are made to native code use this flag.
6025
6026         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6027
6028 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6029
6030         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6031         Add support for FieldBuilders.
6032
6033 2005-10-29  Martin Baulig  <martin@ximian.com>
6034
6035         * mono-debug.c
6036         (mono_debug_using_mono_debugger): New public method; returns
6037         whether we're running inside the debugger.
6038
6039 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6040
6041         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6042         for Method/Constructor/FieldBuilders.
6043
6044 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6045
6046         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6047         and fields as well.
6048
6049 2005-10-26  Martin Baulig  <martin@ximian.com>
6050
6051         * mono-debug-debugger.c
6052         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6053
6054 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6055
6056         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6057         integer to isspace.
6058
6059 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6060
6061         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6062         when passing valuetypes byref. Fixes #76502.
6063
6064 2005-10-19  Jackson Harper  <jackson@ximian.com>
6065
6066         * profiler.c: Don't put a . in front of types that are not in a
6067         namespace.
6068
6069 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6070
6071         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6072
6073 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6074
6075         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6076         #76436.
6077         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6078
6079 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6080
6081         * assembly.c metadata-internals.h icall.c: Define an additional
6082         parameter for mono_assembly_name_parse_full, so we can avoid creating
6083         S.R.AssemblyName.Version when no version info wasn't passed.
6084         
6085 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6086
6087         * class.c (mono_type_get_full_name): Reimplement method that was
6088         removed. 
6089
6090         * image.c: Some docs
6091
6092 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6093
6094         * profiler.c (output_newobj_profile): Fix printing of Total memory
6095         on x86.
6096
6097 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6098
6099         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6100
6101 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6102
6103         * threads.c: remove debug output.
6104
6105 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6106
6107         * threads.c (mono_thread_manage): Fix crashes if more than 64
6108         threads need to be aborted. Hopefully fixes #75899.
6109
6110         * assembly.c (mono_stringify_assembly_name): New helper function.
6111
6112         * class.c: Use mono_stringify_assembly_name instead of the similar
6113         static function.
6114
6115         * assembly.h assembly.c: Add support for calling a postload search 
6116         hook if an assembly cannot be loaded.
6117
6118         * appdomain.c: Register new search hooks which call the AssemblyResolve
6119         events in AppDomain. Fixes #75231
6120
6121 2005-10-07  Martin Baulig  <martin@ximian.com>
6122
6123         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6124         methods without debug info.
6125
6126 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6127
6128         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6129         wrappers.
6130
6131 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6132
6133         * file-io.c: now that we return symlinks, use lstat and, when the file
6134         is a symbolic link, stat, to get the file attributes. Also avoid the
6135         conversion to/from utf16/external.
6136
6137 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6138
6139         * class.c (mono_class_layout_fields): Compute klass->has_references
6140         correctly if an embedded valuetype is not yet initialized. Fixes
6141         #76331.
6142
6143 2005-10-04  Martin Baulig  <martin@ximian.com>
6144
6145         * metadata.c
6146         (mono_metadata_load_generic_param_constraints): New public
6147         function; splitted the constraints loading out from
6148         mono_metadata_load_generic_params().
6149
6150         * class.c (mono_class_create_from_typedef): Call
6151         mono_metadata_load_generic_param_constraints() after setting up
6152         the type and creating our parent; fixes #75329.
6153
6154 2005-10-04  Martin Baulig  <martin@ximian.com>
6155
6156         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6157         non-dynamic parent classes.
6158
6159 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6160
6161         * file-io.c : win32 build fix (ETXTBSY seems not found).
6162
6163 2005-10-04  Martin Baulig  <martin@ximian.com>
6164
6165         * reflection.c
6166         (mono_image_get_methodspec_token): Make the cache actually work;
6167         fixes #75974.
6168
6169 2005-10-04  Martin Baulig  <martin@ximian.com>
6170
6171         * class.c (mono_class_name_from_token): Removed the unneccessary
6172         `MonoGenericContext *' argument.
6173
6174 2005-10-04  Martin Baulig  <martin@ximian.com>
6175
6176         * loader.c
6177         (method_from_methodspec): Make the caching work again; fixes the
6178         performance regression from #76262.
6179
6180 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6181
6182         * file-io.c:
6183         * file-io.h:
6184         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6185         GetFileSystemEntries that performs the same work but without going
6186         into io-layer, locking, etc.
6187
6188 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6189
6190         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6191         ThreadState_Stopped as well. Fixes #76047.
6192
6193 2005-09-29  Martin Baulig  <martin@ximian.com>
6194
6195         * class.c
6196         (inflate_generic_context): If the new context has a `gmethod', set
6197         its `container' that that gmethod's `container'.
6198
6199         * metadata.c
6200         (mono_metadata_parse_generic_param): Simplify things;
6201         `generic_container = generic_context->container;' is just fine.
6202
6203         * loader.c (method_from_methodspec): Code cleanups.
6204
6205 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6206
6207         * decimal.c: fix warning (and let gcc generate correct
6208         code on ARM with optimizations).
6209
6210 2005-09-28  Martin Baulig  <martin@ximian.com>
6211
6212         * loader.c
6213         (method_from_memberref): Added `MonoGenericContext *class_context'
6214         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6215         (method_from_methodspec): If we're a memberref, use the enclosing
6216         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6217
6218 2005-09-28  Martin Baulig  <martin@ximian.com>
6219
6220         * object.c (mono_runtime_invoke_array): Added support for
6221         MONO_TYPE_GENERICINST; fixes #75917.
6222
6223 2005-09-27  Martin Baulig  <martin@ximian.com>
6224
6225         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6226         `k->byval_arg.type' to determine the actual type.
6227
6228         * loader.c (method_from_methodspec): Removed some hacks.
6229
6230 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6231
6232         * class-internals.h (mono_field_is_deleted): Do the test for
6233         rtspecialname before we check the actual name of the field. This
6234         prevents us from dereferencing a pointer into the string table,
6235         saving us from accessing a few pages
6236
6237         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6238         macros. This will allow a deadlock debugger to easily be plugged
6239         in.
6240
6241 2005-09-27  Martin Baulig  <martin@ximian.com>
6242
6243         * loader.c (method_from_methodspec): Create a "signature"
6244         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6245
6246 2005-09-27  Martin Baulig  <martin@ximian.com>
6247
6248         * class.c
6249         (inflate_generic_class): Correctly set the new context's
6250         container.
6251
6252         * loader.c
6253         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6254         instead of a `MonoGenericContext *'.
6255         (mono_method_signature_full): Take a `MonoGenericContainer *'
6256         instead of a `MonoGenericContext *'.
6257
6258         * metadata.c
6259         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6260         instead of a `MonoGenericContext *'.
6261         (mono_metadata_parse_method_signature_full): Likewise.
6262
6263 2005-09-26  Martin Baulig  <martin@ximian.com>
6264
6265         * class.c
6266         (mono_class_from_generic_parameter): Set `klass->generic_container'
6267         (mono_class_from_generic_parameter): Likewise.
6268         (mono_bounded_array_class_get): We inherit the generic container
6269         from the element class.
6270
6271         * loader.c
6272         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6273         argument rather than computing it here.
6274         (method_from_memberref): Correctly set the generic context before
6275         parsing the signature.  Fixes #75681.
6276
6277 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6278
6279         * object.c (mono_class_has_special_static_fields): Fix warnings.
6280
6281 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6282
6283         * assembly.c: Add parse_public_key function, to
6284         par the public keys. Also added mono_assembly_name_parse_full,
6285         to define it the parsed key should be freed or not.
6286         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6287         to parse a long format assembly name.
6288         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6289         private, since calling it to preserve the key requires
6290         freeing it manually.
6291         
6292 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6293
6294         * locales.c : removed HAVE_ICU part.
6295
6296 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6297
6298         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6299         field_is_special_static if the klass has no special static fields.
6300
6301         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6302         (MonoCachedClassInfo): Likewise.
6303
6304         * object.c (mono_class_has_special_static_fields): New helper function.
6305
6306 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6307
6308         * class.c (mono_class_create_from_typedef): Don't call 
6309         interfaces_from_typedef_full for enums.
6310         (mono_class_create_from_typedef): Compute the base types of enums directly
6311         without calling mono_class_setup_fields ().
6312         (mono_class_find_enum_basetype): New helper function.
6313
6314         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6315         one place inside the string heap.
6316         
6317 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6318
6319         * class.c: locking fixes, code cleanups, some docs added.
6320         Allocate some data structures in the image mempool.
6321
6322 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6323
6324         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6325         the example code.
6326         
6327 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6328
6329         * class-internals.h, class.c, reflection.c: reduce memory taken by
6330         MonoClass.
6331
6332 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6333
6334         * metadata.c, metadata.h, loader.h: documentation updates, code and
6335         API cleanups.
6336
6337 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6338
6339         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6340         the example code.
6341
6342         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6343         page faults caused by the runtime while reading metadata.
6344
6345 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6346
6347         * socket-io.c: the field names were changed 3 months ago and no one
6348         realized until bug #76077 got filed!
6349
6350 2005-09-20  Martin Baulig  <martin@ximian.com>
6351
6352         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6353
6354 2005-09-20  Martin Baulig  <martin@ximian.com>
6355
6356         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6357         write the rank into the class entry.
6358
6359 2005-09-20  Martin Baulig  <martin@ximian.com>
6360
6361         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6362
6363 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6364
6365         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6366
6367         * icall.c (custom_attrs_defined_internal): New icall.
6368
6369         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6370         function.
6371         (mono_custom_attrs_construct_by_type): New helper function.
6372
6373 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6374
6375         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6376         terminate the resulting string. Fixes #76123.
6377
6378 2005-09-16  Martin Baulig  <martin@ximian.com>
6379
6380         * mono-debug.c
6381         (mono_debug_add_method): Ignore inflated methods for the moment.
6382
6383 2005-09-14  Martin Baulig  <martin@ximian.com>
6384
6385         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6386
6387 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6388
6389         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6390         return a success/failure indication.
6391         (mono_metadata_interfaces_from_typedef_full): Ditto.
6392         (get_constraints): Ditto.
6393
6394 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6395
6396         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6397         
6398         * marshal.c (emit_marshal_array): Add support for returning string
6399         arrays from delegates. Fixes #76063.
6400
6401         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6402
6403 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6404
6405         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6406         icall.
6407
6408 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6409
6410         * reflection.c icall.c: Fix after mono_get_exception_type_load
6411         signature change.
6412
6413         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6414         (mono_assembly_load_reference): Use the new helper.
6415
6416         * class-internals.h (MonoLoaderError): New structure containing 
6417         information about type loading errors.
6418
6419         * class-internals.h loader.c: Add APIs to store per-thread loader
6420         error information.
6421
6422         * loader.c class.c: Set the loader error if needed.
6423
6424         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6425
6426 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6427
6428         * decimal.c: fixed to handle the broken ARM fp format.
6429
6430 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6431
6432         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6433         broken.
6434
6435 2005-09-06  Martin Baulig  <martin@ximian.com>
6436
6437         * domain.c (supported_runtimes): Added v2.0.50727.
6438
6439 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6440
6441         * culture-info.h: reduce the size of some structures.
6442
6443 2005-09-05  Martin Baulig  <martin@ximian.com>
6444
6445         Reflect latest API changes in the August CTP.
6446
6447         * icall.c
6448         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6449         ("MonoType.HasGenericArguments"): Removed.
6450         ("MonoMethod.BindGenericParameters"): Renamed to
6451         "MakeGenericMethod".
6452         ("MethodBuilder.BindGenericParameters"): Renamed to
6453         "MakeGenericMethod".    
6454
6455 2005-09-05  Martin Baulig  <martin@ximian.com>
6456
6457         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6458
6459 2005-09-05  Martin Baulig  <martin@ximian.com>
6460
6461         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6462
6463         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6464         generic_container is non-NULL.
6465
6466 2005-09-05  Martin Baulig  <martin@ximian.com>
6467
6468         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6469
6470         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6471
6472 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6473
6474         * reflection.c (encode_locals,
6475         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6476         for large generic types.
6477
6478 2005-09-05  Martin Baulig  <martin@ximian.com>
6479
6480         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6481
6482         * class.c (mono_dup_array_type): New public method.
6483         (mono_metadata_signature_deep_dup): New public method.
6484         (dup_type): Correctly duplicate array and function types.
6485
6486 2005-09-05  Martin Baulig  <martin@ximian.com>
6487
6488         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6489
6490         * reflection.c (get_default_param_value_blobs): Handle generic types
6491         and generic methods.
6492
6493 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6494
6495         * class.c: Fixed error reporting (method/class were inversed) for 
6496         inheritance demands.
6497         * security-manager.c|h: Added the AppDomain when calling the managed
6498         System.Security.SecurityManager.InheritanceDemand method.
6499
6500 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6501
6502         * reflection.c (encode_marshal_blob): 'marshaltype' and
6503         'marshaltyperef' are alternate sources for the custom marshaler
6504         name.
6505
6506 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6507
6508         * class.c: fix creation of array classes with rank == 1
6509         (patch by Ankit Jain <jankit@novell.com>).
6510
6511 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6512
6513         * object.c: fix check for creating the bound data for arrays vs
6514         szarrays.
6515
6516 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6517
6518         * object.c: configuration file name is now based on the executable name,
6519         not the image name. Fixes bug #75931.
6520
6521 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6522
6523         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6524         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6525
6526 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6527
6528         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6529
6530 2005-08-24  Ankit Jain  <jankit@novell.com>
6531             Raja R Harinath  <rharinath@novell.com>
6532
6533         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6534           called by it recursively.
6535           (mono_class_init): Remove special case in pending_init handling, since it's
6536           superseded by the fix to mono_class_from_typeref.
6537
6538 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6539
6540         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6541         BROKEN_THREAD_START stuff.
6542
6543 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6544
6545         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6546         trampoline.
6547
6548         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6549         
6550         * object.c (mono_delegate_ctor): Replace the original function address with
6551         a delegate trampoline.
6552
6553 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6554
6555         * icall.c: add boolean argument to base64_to_byte_array and 
6556         InternalFromBase64String to control whether a whitespace-only string
6557         is allowed (or should casue a FormatException to be thrown). We need
6558         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6559         to match the MS behaviour in both profiles.
6560         * appdomain.c: Bump corlib version.
6561
6562 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6563
6564         This patch implements a big portion of publisher policy
6565         support, used to bind assembly versions and redirect
6566         one assembly from version A to version B.
6567
6568         * assembly.c:
6569         New GSList loaded_assembly_bindings, for storing the cached
6570         assembly bindings.
6571         (assembly_binding_maps_name): New static function for checking if a 
6572         assembly binding information maps an assembly name.
6573         (mono_assembly_binding_info_free): New function for freeing
6574         assembly binding information resources.
6575         (get_publisher_policy_info): New static function for retrieving 
6576         assembly binding information from a MonoImage.
6577         (compare_versions): New static function for comparing an assembly
6578         binding information data and the version of an assembly name.
6579         (check_policy_versions): New static function for checking if an
6580         assembly binding info mapping an assembly name is valid for it.
6581         (mono_assembly_load_publisher_policy): New static function for
6582         loading the 'policy.major.minor.MyAssembly' image for an assembly
6583         with an assembly name 'aname'.
6584         (mono_assembly_bind_version): New static function for updating
6585         assembly redirection.
6586         (mono_assembly_apply_binding): New static function for applying
6587         assembly binding.
6588         (search_binding_loaded): New static function for searching 
6589         loaded assembly binding infos in the cache domain.
6590         (mono_assembly_load_full): Don't apply assembly binding for
6591         reflection only assemblies.
6592
6593         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6594         which contains information about assembly binding. Also
6595         declare signature for mono_config_parse_publisher_policy ()
6596         function, used to retrieve pub policy info.
6597         
6598         * mono-config.c:
6599         (publisher_policy_start): New static function used to parse publisher 
6600         policy config files.
6601         (publisher_policy_parser): New static MonoParseHandler containing 
6602         the functions used when parsing config files.
6603         (mono_config_parse_publisher_policy): New function for parsing
6604         publisher policy files.
6605         
6606 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6607
6608         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6609
6610         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6611
6612         * object.c (mono_get_addr_from_ftnptr): New helper function.
6613
6614         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6615
6616         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6617
6618 2005-08-19  Dick Porter  <dick@ximian.com>
6619
6620         * threads.c, threads.h, appdomain.c, appdomain.h,
6621         profiler-private.h, monitor.c, object.c, object-internals.h,
6622         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6623         store the thread ID, so it can hold a 64 bit value if needed.
6624
6625 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6626
6627         * reflection.c (mono_reflection_create_dynamic_method): Store the
6628         handle class into the method references as well so ldtoken works in
6629         dynamic methods.
6630
6631         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6632         types.
6633
6634 2005-08-19  Ankit Jain <jankit@novell.com>
6635
6636         Fix #75847.
6637         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6638           here rather than using the method signature of a arbitrary function
6639           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6640           two arguments.
6641           Hack done with Harinath.
6642
6643 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6644
6645         * threadpool.c: disable printing stack traces when we get a exception
6646         in a threadpool thread. I need to do more testing to figure out which
6647         cases actually print this. Fixes bug #75828.
6648
6649 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6650
6651         * icall.c: there might be ignored whitespace after the last '='. This
6652         fixes length computation and bug #75840.
6653
6654 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6655
6656         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6657         well. Fixes #75809.
6658
6659         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6660         #75784.
6661         
6662         * reflection.c (create_custom_attr_data): Ditto.
6663
6664 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6665
6666         * locales.c, culture-info.h : removed RegionLCIDMap.
6667         * culture-info-tables.h : regenerated.
6668
6669 2005-08-16  Martin Baulig  <martin@ximian.com>
6670
6671         * class.c (mono_type_get_name_recurse): Small fix.
6672
6673 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6674
6675         * locales.c : indentation fixie.
6676
6677 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6678
6679         * object-internals.h,
6680           locales.h,
6681           locales.c,
6682           culture-info.h,
6683           icall.c : added RegionInfo table support.
6684         * culture-info-table.h : regenerated for region support.
6685
6686 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6687
6688         * reflection.c (resolve_object): handle all kinds of MonoMethod
6689         including generic ones
6690
6691 2005-08-12  Ankit Jain <jankit@novell.com>
6692
6693         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6694           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6695
6696 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6697
6698         * process.c: Don't close a thread handle when it's NULL. This is a
6699         workaround for bug #75733.
6700
6701 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6702
6703         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6704
6705 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6706
6707         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6708
6709 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6710
6711         * threadpool.c: if a work item in the thread pool has a callback that
6712         catches a exception, don't propagate it after invoking the callback.
6713         Fixes bug #75336.
6714
6715 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6716
6717         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6718
6719         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6720
6721         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6722
6723         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6724
6725 2005-08-03  Ankit Jain  <jankit@novell.com>
6726
6727         Fix #75683.
6728         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6729           PInvoke calling convention is 0.
6730
6731 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6732
6733         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6734         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6735
6736 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6737
6738         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6739         to handle threads not started by the GC (patch by Michael Meeks
6740         <michael.meeks@novell.com>).
6741
6742 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6743
6744         * reflection.c: Make buffer used in emitting types larger for some
6745         big generic types (patch by Michal Moskal).
6746
6747 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6748
6749         * mono-debug.c: Fix some (not all) alignment problems.
6750
6751 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6752
6753         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6754         Invoke mono_image_load_from_data_full passing the refonly
6755         parameter.
6756
6757         * assembly.c
6758         (mono_assembly_open_from_bundle): Add the refonly argument, 
6759         in order to pass it to other methods it calls to.
6760         (do_mono_assembly_open): Add the refonly argument, in order 
6761         to pass it to other methods it calls to.
6762         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6763         the refonly parameter to it.
6764
6765         * image.c: Add loaded_images_refonly_hash and
6766         loaded_images_refonly_guid_hash to cache the reflection
6767         only loaded images.
6768         (mono_images_init): Initialize the hash tables used for
6769         caching the reflection only images.
6770         (load_modules): Invoke mono_image_open_full passing the refonly
6771         parameter to load the modules the correct way.
6772         (build_guid_table): Add the refonly argument, to re-build the 
6773         correct hash table.
6774         (do_mono_image_open): Added the refonly argument, in order to
6775         define it for the loaded image.
6776         (mono_image_loaded_full): New function, which receives an
6777         additional parameter to look for the image in the refonly or
6778         non-refonly section.
6779         (mono_image_loaded): Updated, using mono_image_loaded_full.
6780         (mono_image_loaded_by_guid_full): The same case that happens
6781         with mono_image_loaded_full.
6782         (mono_image_loaded_by_guid): Likewise.
6783         (register_image): Use the ref_only variable inside MonoImage
6784         to decide in which hash table store the current image.
6785         (mono_image_open_from_data_full): Rename
6786         mono_image_open_from_data to mono_image_open_from_data_full,
6787         adding the refonly argument, to define the ref_only variable 
6788         inside MonoImage.
6789         (mono_image_open_from_data): Return 
6790         mono_image_open_from_data_full.
6791         (mono_image_open_full): Rename mono_image_open to
6792         mono_image_open_full, receiving the new refonly argument,
6793         to pass it to inner methods.
6794         (mono_pe_file_open): Update this function, to open
6795         a MonoImage as a non-refonly image.
6796         (mono_image_close): Use the refonly variable inside
6797         MonoImage to remove the image from the correct caches.
6798
6799         * image.h: Add the signatures of mono_image_open_full,
6800         mono_image_open_from_data_full, mono_image_loaded_full,
6801         mono_image_loaded_by_guid_full.
6802
6803         * metadata-internals.h: Add the ref_only field to 
6804         MonoImage.
6805         
6806 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6807
6808         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6809         Fix the last behavior, which used to load the assemblies and
6810         extract MonoReflectionAssemblyName information, instead of
6811         extract it from the metadata tables. Needed for Reflection
6812         Only assemblies.
6813         
6814 2005-07-29  Martin Baulig  <martin@ximian.com>
6815
6816         * mono-debug-debugger.c
6817         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6818         not initialized.
6819
6820         * mono-debug.c
6821         (mono_debug_address_from_il_offset): Check whether we have
6822         debugging support before attempting to take the lock.
6823         (mono_debug_source_location_from_address): Likewise.
6824         (mono_debug_source_location_from_il_offset): Likewise.
6825         (mono_debug_il_offset_from_address): Likewise.
6826         (mono_debug_address_from_il_offset): Likewise.
6827
6828 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6829
6830         * class.c (mono_class_from_name_case): Add support for dynamic images.
6831         Fixes #75650.
6832
6833         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6834         for #75479.
6835
6836 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6837         
6838         * reflection.c (mono_method_get_object): Fix warning.
6839
6840 2005-07-28  Martin Baulig  <martin@ximian.com>
6841
6842         * mono-debug.c
6843         (mono_debug_add_wrapper): Also write the wrapper type.
6844
6845 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6846
6847         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6848         
6849         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6850         data indicates the class has none.
6851
6852 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6853
6854         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6855         loader lock with the debugger lock. Prevents deadlocks for beagle.
6856
6857         Beagle can now run on an smp box for a weekend without any
6858         issues. Woohoo!
6859
6860 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6861
6862         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6863         in a module. Fixes #75629.
6864
6865 2005-07-26  Martin Baulig  <martin@ximian.com>
6866
6867         * mono-debug.c (mono_debug_add_wrapper): New static method.
6868         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6869         interncall or a wrapper.
6870
6871         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6872         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6873         (MONO_DEBUGGER_VERSION): Bump to 51.
6874
6875         * mono-debug-debugger.c
6876         (mono_debugger_add_type): Removed this empty function.
6877         (mono_debugger_add_method): Likewise.
6878
6879 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6880
6881         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6882         before accessing method->slot.
6883
6884 2005-07-21  Jb Evain  <jbevain@gmail.com>
6885
6886         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6887         Fixes #75010.
6888
6889 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6890
6891         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6892         #75587.
6893
6894 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6895
6896         * image.h image.c: Add mono_image_get_guid () API function.
6897
6898 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6899
6900         There were issues when multiple threads tried to load
6901         assemblies. A deadlock was created between assemblies_mutex and
6902         mono_domain_assemblies_lock. This fixes the issue by making the
6903         assembly ref counting be lock free. See bug 75586.
6904         
6905         * image.c (mono_image_close): The add ref function here was using
6906         Interlocked operations while the unref was using a mutex and a
6907         --. I don't think this was ever a bug that would be exposed in a
6908         non-pendantic way (ie, by an embedder doing a ref on one thread
6909         and an unref on another), but for the sake of correctness, this is
6910         now Interlocked.
6911
6912         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6913         (mono_assembly_load_reference): Call mono_assembly_addref rather
6914         than touching the refcount ourselves.
6915         (mono_assembly_close): Use InterlockedDecrement to unref the
6916         assembly. Don't acquire the lock unless it is actually needed.
6917
6918 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6919
6920         * class.c (mono_class_layout_fields): Fix calculation of has_references
6921         for generic types.
6922
6923 2005-07-12  Martin Baulig  <martin@ximian.com>
6924
6925         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6926
6927         * metadata.c
6928         (mono_type_hash): Provide better hashing for generic instances.
6929         (mono_generic_inst_hash): Improve hashing.
6930         (mono_generic_class_hash): Likewise.
6931
6932         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6933         generic instances.
6934
6935 2005-07-12  Martin Baulig  <martin@ximian.com>
6936
6937         * reflection.c (mono_reflection_create_runtime_class): Remove the
6938         hack for generic type definitions and non-`Run' assemblies.
6939         (mono_reflection_bind_generic_parameters): Also use
6940         `klass->wastypebuilder' to check for TypeBuilders.
6941
6942 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6943
6944         * class.c (mono_class_layout_fields): Fix calculation of has_references
6945         for generic types.
6946
6947         * class.c (inflate_generic_class): Fix a leak.
6948         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6949         for generic types.
6950
6951 2005-07-11  Martin Baulig  <martin@ximian.com>
6952
6953         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6954         on error.
6955
6956 2005-07-11  Martin Baulig  <martin@ximian.com>
6957
6958         * loader.c (find_method): Also lookup in
6959         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6960
6961 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6962
6963         * appdomain.c (mono_domain_unload): Don't free the error message
6964         before passing it to mono_get_exception_...
6965
6966         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6967         
6968 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6969
6970         * threads.c: try to better guess an available RT signal (bug #75387).
6971
6972 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6973
6974         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6975         and CACHE_OBJECT.
6976
6977 2005-07-07  Martin Baulig  <martin@ximian.com>
6978
6979         * class.c (mono_type_get_name_full): Return NULL for
6980         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6981         fixes #75408.
6982
6983 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6984
6985         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6986         exit the appdomain as well being aborted.
6987
6988         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6989         change back to the root domain after calling managed code. This enables
6990         appdomains using threadpools to be unloaded.
6991
6992 2005-07-07  Martin Baulig  <martin@ximian.com>
6993
6994         * class-internals.h
6995         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6996         into `MonoDynamicGenericClass' since we only need it for dynamic
6997         types.
6998
6999         * reflection.c (mono_class_bind_generic_parameters): We don't need
7000         to compute the `parent' here.
7001
7002 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7003
7004         * culture-info-table.h : regenerated.
7005
7006 2005-07-06  Martin Baulig  <martin@ximian.com>
7007
7008         * icall.c
7009         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7010
7011         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7012
7013 2005-07-06  Martin Baulig  <martin@ximian.com>
7014
7015         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7016         we're doing a signature-only comparision; fixes #74945.
7017
7018 2005-07-06  Martin Baulig  <martin@ximian.com>
7019
7020         * class-internals.h (MonoGenericClass): Moved some things out into
7021         a new `MonoInflatedGenericClass' type.  
7022         (MonoInflatedGenericClass): New type; the `klass' of a
7023         `MonoGenericClass' is now computed lazyly in
7024         mono_get_inflated_generic_class().      
7025
7026         * class.c (mono_get_inflated_generic_class): New public function.
7027         (mono_class_inflate_generic_method): Removed the unused
7028         `MonoClass *' argument.
7029         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7030         all the methods.
7031         (mono_class_create_generic): Make this static and merge it with
7032         mono_class_create_generic_2(); we're now called automatically from
7033         mono_get_inflated_generic_class().
7034
7035         * loader.c (mono_method_signature): Call
7036         mono_get_inflated_method() here.
7037
7038 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7039
7040         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7041         type of fields with RVA.
7042
7043         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7044         for this pseudo class.
7045         (my_mono_class_from_generic_parameter): Likewise.
7046         (mono_class_init): Allow interfaces to have cctors.
7047
7048 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7049
7050         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7051         lazily for AOT methods.
7052
7053 2005-07-05  Martin Baulig  <martin@ximian.com>
7054
7055         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7056         returns FALSE for a successful match, not TRUE.
7057
7058 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7059
7060         * loader.c (mono_method_get_index): Optimize this a bit.
7061
7062 2005-07-04  Martin Baulig  <martin@ximian.com>
7063
7064         * class.c
7065         (class_compute_field_layout): Move the check for generic type
7066         definitions into mono_class_layout_fields().  Fixes #74684.
7067         (mono_class_from_generic_parameter): Correctly compute
7068         `klass->parent'; fixes #75457.
7069
7070         * reflection.c (register_assembly, register_module): Make sure
7071         `domain->rejobject_hash' is already created.
7072
7073 2005-07-02  Martin Baulig  <martin@ximian.com>
7074
7075         * class-internals.h
7076         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7077         `MonoDynamicGenericClass'.      
7078
7079 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7080
7081         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7082         returned by a field getter is null, since null is a valid value.
7083
7084 2005-07-01  Martin Baulig  <martin@ximian.com>
7085
7086         * reflection.c (mono_reflection_generic_class_initialize): Update
7087         the `dgclass->fields [i].parent' to the correct class.
7088         (mono_image_get_fieldref_token): Use the declaring type, not the
7089         reflected type.
7090
7091 2005-07-01  Martin Baulig  <martin@ximian.com>
7092
7093         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7094
7095 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7096
7097         * threads.c (thread_cleanup): assert that thread != NULL
7098         (wait_for_tids_or_state_change): We were using the wrong variable
7099         when accessing wait->threads. `i' was always out of the bounds of
7100         the array.
7101
7102 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7103
7104         * loader.c: map user32 and kernel32 to libMonoSupportW
7105
7106 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7107
7108         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7109
7110 2005-06-28  Martin Baulig  <martin@ximian.com>
7111
7112         * loader.c (method_from_methodspec): Fix #75334.
7113
7114 2005-06-28  Martin Baulig  <martin@ximian.com>
7115
7116         Fix #74953 - Arrays now implement the generic IList<T> interface
7117         on the 2.0 platform.
7118
7119         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7120
7121         * reflection.c (mono_class_bind_generic_parameters): New public
7122         function; similar to mono_reflection_bind_generic_parameters(),
7123         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7124
7125         * domain.c (mono_init_internal): Try to initialize.
7126         `mono_defaults.generic_array_class' here; this'll only succeed if
7127         we're using the 2.0 corlib.
7128
7129         * icall.c
7130         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7131         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7132         (mono_lookup_internal_call): Added support for nested classes.
7133
7134         * loader.c
7135         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7136         we're an interncall and have generic arguments.
7137
7138         * class.c
7139         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7140         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7141         instance of System.Array.InternalArray<T> for arrays, so they
7142         implement the generic IList<T> interface.
7143
7144 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7145
7146         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7147         (chastamar@yahoo.com). Fixes #75374.    
7148
7149 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7150
7151         * culture-info-table.h: regenerated.
7152
7153 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7154
7155         * icall.c: handle spaces correctly for base64 strings.
7156
7157 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7158
7159         * *.c: Kill some warnings.
7160
7161 2005-06-23  Duncan Mak  <duncan@novell.com>
7162
7163         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7164         that this builds on Solaris 10 (x86).
7165
7166 2005-06-23  Martin Baulig  <martin@ximian.com>
7167
7168         * class.c
7169         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7170         generic type definitions.
7171
7172 2005-06-23  Martin Baulig  <martin@ximian.com>
7173
7174         Fix #75331.
7175
7176         * metadata.c (mono_class_get_overrides): Renamed to
7177         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7178         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7179         pass it to mono_get_method_full().
7180
7181 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7182
7183         * reflection.c (mono_reflection_create_runtime_class): take the
7184         mono_domain_lock in this method. Prevents deadlocks
7185
7186 2005-06-22  Martin Baulig  <martin@ximian.com>
7187
7188         * loader.c (method_from_methodspec): Fix #75330.
7189
7190 2005-06-22  Martin Baulig  <martin@ximian.com>
7191
7192         * reflection.c (type_get_qualified_name): Use
7193         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7194         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7195         argument; use it if we don't have an assembly name.
7196
7197 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7198
7199         * object.c: In mono_message_init, set "copy out" flag for in
7200         parameters with the [Out] flag.
7201
7202 2005-06-21  Martin Baulig  <martin@ximian.com>
7203
7204         * class.c
7205         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7206         and MONO_TYPE_PTR.
7207
7208 2005-06-21  Martin Baulig  <martin@ximian.com>
7209
7210         * class.c (mono_class_init): Don't initialize `class->fields' for
7211         generic instances since they're initialized again in
7212         compute_field_layout(). 
7213         (compute_field_layout): Set the field's `generic_info' here; fix
7214         #75320. 
7215
7216 2005-06-21  Martin Baulig  <martin@ximian.com>
7217
7218         * class-internals.h
7219         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7220
7221         * metadata.c (mono_metadata_generic_method_equal): Also
7222         distinguish the `generic_class'; fixes #75334.
7223
7224 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7225
7226         * domain.c:
7227         * appdomain.c:
7228         * domain-internals.h:
7229         * reflection.c: 'domain_assemblies' field is now protected by its own
7230         lock. Don't call into managed code to run the AssemblyLoad event if we
7231         now there are no registered delegates for it.
7232
7233 2005-06-20  Martin Baulig  <martin@ximian.com>
7234
7235         * class.c (mono_class_is_assignable_from): Use a custom version of
7236         mono_class_has_parent() to make things work for generic instances;
7237         fix #75300.
7238
7239 2005-06-20  Martin Baulig  <martin@ximian.com>
7240
7241         * loader.c (method_from_methodspec): Apply a patch from
7242         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7243
7244 2005-06-20  Martin Baulig  <martin@ximian.com>
7245
7246         * class.c (mono_class_init): Reverted Zoltan's last change; it
7247         breaks generics.
7248
7249 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7250
7251         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7252
7253 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7254
7255         * socket-io.c: fix the index in the socket array for writable/error
7256         sockets. Fixes bug #75306.
7257
7258 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7259
7260         * class.c (mono_class_init): Allow interfaces to have static ctors.
7261
7262 2005-06-17  Martin Baulig  <martin@ximian.com>
7263
7264         * loader.c (method_from_methodspec): Use `context->container' when
7265         parsing the `gmethod->inst'.
7266
7267 2005-06-17  Martin Baulig  <martin@ximian.com>
7268
7269         * class.c (mono_type_get_name_recurse): Don't add the assembly
7270         name for type arguments.
7271
7272 2005-06-15  Martin Baulig  <martin@ximian.com>
7273
7274         * reflection.c (mono_image_get_inflated_method_token): Encode
7275         correct klass; fixes #75260.
7276
7277 2005-06-13 Michal Moskal <malekith@nemerle.org>
7278
7279         * icall.c: Make GetCorrespondingMethod/Constructor take
7280         MonoReflectionMethod method not MonoMethod. Removed
7281         MonoType.GetCorrespondingField, and make
7282         MonoGenericType.GetCorrespondingField take name not
7283         MonoClassField.
7284
7285 2005-06-13  Michal Moskal <malekith@nemerle.org>
7286
7287         * reflection.c (field_encode_signature, encode_locals):
7288          Make sizes of buffers for types larger (for big generic types).
7289          (create_generic_typespec,
7290          mono_reflection_sighelper_get_signature_local,
7291          mono_reflection_sighelper_get_signature_field):
7292          Add asserts for too small buffers.
7293
7294 2005-06-15  Martin Baulig  <martin@ximian.com>
7295
7296         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7297         if our parent is not a dynamic type.
7298
7299 2005-06-15  Martin Baulig  <martin@ximian.com>
7300
7301         * class-internals.h (MonoTypeNameFormat): New enum.
7302
7303         * class.c
7304         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7305         (mono_type_get_full_name): Removed.
7306         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7307         argument instead of the boolean's.
7308
7309         * icall.c (ves_icall_System_MonoType_getFullName):
7310         Added `gboolean assembly_qualified'.    
7311
7312         * reflection.h
7313         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7314
7315         * reflection.c (mono_reflection_parse_type): Parse the new type
7316         name format.
7317
7318 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7319
7320         * icall.c: no need to convert from utf16 to utf8 and then back again
7321         after the call to GetLogicalDrives.
7322
7323 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7324
7325         * icall.c: frombase64. Fix problems exposed by new tests.
7326
7327 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7328
7329         * icall.c: added internal calls for converting char [] and strings in
7330         base64 into byte [].
7331
7332 2005-06-10  Martin Baulig  <martin@ximian.com>
7333
7334         * class.c (mono_class_create_generic_2): Read the nested classes
7335         from the metadata rather than from `gklass->nested_classes' since
7336         `gklass' might not be initialized yet.
7337
7338 2005-06-09  Duncan Mak  <duncan@novell.com>
7339
7340         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7341         all public headers. Fixes #74919.
7342
7343 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7344
7345         * domain.c: The key for proxy_vtable_hash is now a pointer
7346         array. Added new GHashFunc and GCompareFunc functions for this.
7347
7348         * class.h: The list of interfaces in MonoRemoteClass is known in
7349         advance and can't grow (we create a new MonoRemoteClass if needed),
7350         so now the interface array can be allocated together with
7351         MonoRemoteClass.
7352         
7353         * object.c: Added a new method create_remote_class_key.
7354         Fixed mono_remote_class so it does not depend on
7355         mono_upgrade_remote_class.
7356         Removed extend_interface_array.
7357         Added new method clone_remote_class(), which makes a copy of a remote
7358         class and adds a new interface or class to it.
7359         mono_upgrade_remote_class() now creates a new remote class (or gets
7360         it from the cache) if an vtable upgrade is needed. In this way
7361         we make sure that other objects sharing the same remote class
7362         don't get the new vtable with unwanted interfaces.
7363         
7364         * object-internals.h:
7365         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7366         
7367         * marshal.c: Track changes in mono_upgrade_remote_class().
7368
7369 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7370         * icall.c: Add runtime methods for obtaining members of inflated
7371         class, which were created from supplied non-inflated members. It
7372         is used in internal Get{Method,Constructor,Field} methods in
7373         System.Type
7374
7375 2005-06-09  Martin Baulig  <martin@ximian.com>
7376
7377         * reflection.c
7378         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7379
7380 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7381         * reflection.c (mono_image_basic_init): Define
7382         Version in MonoDynamicAssembly. 
7383         
7384 2005-06-08  Martin Baulig  <martin@ximian.com>
7385
7386         Fix #75136.
7387
7388         * loader.c
7389         (mono_method_signature_full): New public method; takes a
7390         `MonoGenericContext *'.
7391         (find_method): Use mono_method_signature_full() and pass the
7392         klass'es context to it.
7393
7394         * class.c (mono_class_is_inflated_method): Use
7395         mono_method_signature_full() and pass the context to it.
7396
7397 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7398
7399         * object.c: add proper locking in mono_remote_class_vtable(),
7400         fixes possible memory corruption.
7401
7402 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7403
7404         * marshal.c (mono_remoting_marshal_init): set
7405         initialized after initialization.
7406
7407 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7408
7409         * locales.c : hush.
7410
7411 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7412
7413         * object.c (extend_interface_array): fix really silly
7414         memory corrupting / comparison bug.
7415
7416 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7417
7418         * reflection.c: Functions added to support the creation
7419         of CustomAttributeData, which includes Attribute data
7420         used by ReflectionOnly methods.
7421
7422         * reflection.h:  mono_reflection_get_custom_attrs_data and
7423          mono_custom_attrs_data_construct added (functions exposed).
7424
7425          * icall.c: Added mono_reflection_get_custom_attrs_data
7426          as icall.
7427         
7428 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7429
7430         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7431         lupus's request.
7432
7433 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7434
7435         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7436
7437         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7438         dynamic DllImportAttribute.
7439
7440         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7441         dynamic DllImportAttribute.
7442
7443         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7444         Fixes #75162.
7445
7446 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7447
7448         * threads.c: avoid segfault when an unstarted thread is aborted.
7449
7450 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7451
7452         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7453         Returns the name and version of the runtime for reporting.
7454
7455 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7456
7457         * appdomain.c: bump corlib version.
7458         * object-internals.h: new field in MonoReflectionAssembly.
7459
7460 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7461
7462         * object-internals.h: Carlos forgot to add this field.
7463
7464 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7465
7466         * icall.c: Added create_version to create instances
7467         of Version of MonoReflectionAssemblyName. This change helps
7468         the AssemblyName tests to keep running fine.
7469         
7470 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7471   
7472         * object.c (mono_method_return_message_restore): A somehow less
7473         intrusive fix for #75138.
7474
7475 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7476
7477         * object.c (mono_method_return_message_restore): Fix computation
7478         of expected number of out args.
7479
7480 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7481
7482         * reflection.c (mono_image_get_method_info): Fix the case when the
7483         charset is empty.
7484
7485 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7486
7487         * object.c: Added missing null check in
7488           mono_method_return_message_restore.
7489
7490 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7491
7492         * reflection.c (mono_image_get_method_info): Handle the case when
7493         dllentry is empty.
7494
7495 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7496
7497         * object.c: When creating the vtable for a proxy, take into account
7498         all inherited interfaces, not only the ones registered in
7499         iclass->interfaces. This fixs bug #74996.
7500         Also, in mono_method_return_message_restore, verify that the array
7501         of out args has the expected lengh.
7502
7503 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7504
7505         * socket-io.c: update the timeout in Poll when the call is interrupte.
7506
7507 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7508
7509         * socket-io.c: support abort/suspend in Select_internal after last
7510         change.
7511
7512 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7513
7514         * threadpool.c: remove warning.
7515
7516 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7517
7518         * icall.c:
7519         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7520         removing the 1024 limit from select(). Runtime part of the fix for
7521         bug #71203.
7522
7523 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7524
7525         * socket-io.c: when resolving the addresses for the same
7526         host returned by gethostname(), get the local IPs from the interface
7527         list. Loopback addresses are discarded if the are interfaces up with
7528         non-loopback ones. Fixes bug #63265.
7529
7530 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7531
7532         * appdomain.c, verify.c, object-internals.h, reflection.c:
7533         bumped corlib number to 36, and added new extra_flags field
7534         to ReflectionMethodBuilder and friends.  Fixes #75060.
7535
7536 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7537
7538         * gc.c: register a new weak link only if the object is non-null
7539         (fixes bug#75047).
7540
7541 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7542
7543         * culture-info.h : short time pattern too.
7544
7545 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7546
7547         * culture-info.h : expand long time pattern string length.
7548
7549 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7550
7551         * culture-info-table.h : update (more French date format; #72788).
7552
7553 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7554
7555         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7556         the method is static. Fixes #75029.
7557
7558 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7559
7560         * reflection.c: Update the table_idx field of method builders after
7561         saving the module, since it can change. This is a workaround for
7562         bug #74914. 
7563
7564 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7565
7566         * culture-info-table.h : update (additional French date format).
7567
7568 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7569
7570         * icall.c (ves_icall_type_Equals): Revert last change.
7571         
7572         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7573
7574         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7575
7576 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7577
7578         * class-internals.h: Added executioncontext_class field to 
7579         MonoDefaults structure.
7580         * domain.c: Cache System.Threading.ExecutionContext class in 
7581         mono_defaults.
7582         * object.c: Capture the ExecutionContext for asynchroneous calls in
7583          mono_async_result_new.
7584         * object-internals.h: Added execution_context and original_context 
7585         fields to MonoAsyncResult. Added execution_context to MonoThread.
7586         * security-manager.c|.h: Added mono_get_context_capture_method to 
7587         return the capture method (if required by the security manager or by
7588         the framework version used).
7589         * threadpool.c: Apply capture (if present) ExecutionContext in 
7590         mono_async_invoke and revert to original context after it completes.
7591
7592 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7593
7594         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7595
7596 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7597
7598         * culture-info-table.h : zh-CHT related workaround.
7599
7600 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7601
7602         * marshal.c (emit_marshal_custom): Add some error checking and call the
7603         methods in the ICustomMarshaler interface. Fixes #74875.
7604         
7605         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7606         native->managed wrappers.
7607
7608 2005-05-12  Martin Baulig  <martin@ximian.com>
7609
7610         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7611         here and use the loader lock.
7612
7613         * mono-debug.c: Properly lock when the debugger is not attached.
7614         (mono_debug_init): Release the initial lock if we're not running
7615         in the debugger.
7616
7617 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7618
7619         * marshal.c (emit_marshal_custom): Pass through NULL values without
7620         calling the custom marshalling routines.
7621
7622         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7623         conversion in structures. Fixes #74882.
7624
7625 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7626
7627         * culture-info-table.h : zh-* cultures were missing.
7628
7629 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7630
7631         * threads.c: Added a new event background_change_event which is signaled
7632         when a thread changes its background mode.
7633         Moved here several checks previously done in managed code. The checks
7634         require the thread lock, and using the thread lock in managed code
7635         can result in deadlocks.
7636         Merged Start_internal and Thread_internal into a single method. Now 
7637         Thread_internal does all work of creating and starting a thread.
7638         Added icalls for setting and getting the state of the object. Moved from
7639         managed code to avoid locking there.
7640         Added wait_for_tids_or_state_change() which is called instad of
7641         wait_for_tids when waiting for non-backround threads to end. This method
7642         will return if one of the threads ends or the background_change_event
7643         is signaled.
7644         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7645         the background mode. This method signals the background_change_event
7646         event.
7647         * icall.c:
7648         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7649         removed Start_internal.
7650         
7651 2005-05-11  Martin Baulig  <martin@ximian.com>
7652
7653         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7654         to order of some fields to get proper alignment on 64-bit machines.
7655
7656 2005-05-11  Martin Baulig  <martin@ximian.com>
7657
7658         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7659         changes as they're broken and completely fuck up the debugger.
7660
7661         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7662
7663 2005-05-10  Martin Baulig  <martin@ximian.com>
7664
7665         * reflection.c (mono_reflection_generic_class_initialize): Don't
7666         call mono_class_setup_parent() here.
7667
7668 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7669
7670         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7671         send/receive timeout use an integer in milliseconds. We were using a
7672         struct timeval.
7673
7674 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7675
7676         * locales.c:
7677         (internal_get_cultures): reserve the first slot of the array for the
7678         InvariantCulture, which will be filled in managed code.
7679
7680 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7681
7682         * reflection.c (mono_image_fill_module_table): Initialize the
7683         GENERATION field as well.
7684
7685 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7686
7687         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7688         Monitor.Enter on the object.
7689
7690 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7691
7692         * threads.c: Enable the wait for running threads when exiting.
7693         * icall.c: Suspend all threads before exiting.
7694
7695 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7696
7697         * assembly.c (mono_assembly_load_reference): Fix warning.
7698
7699 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7700
7701         * threadpool.c: changed the default number of threads per cpu. From now
7702         on, the default will be 20 + (5 * number of cpus) instead of 50.
7703
7704 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7705
7706         * loader.c (mono_method_get_signature_full): Add locking here.
7707
7708 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7709
7710         * appdomain.c: Moved methods for parsing and freeing assembly
7711         names to assembly.c.
7712         * assembly.c, domain-internals.h: Created public methods for parsing
7713         assembly names. Fixed mono_assembly_load_with_partial_name:
7714         it now finds the best match, taking into account the version,
7715         token and culture specified in the partial name. Also return
7716         the latest version if no version information is specified.
7717
7718 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7719
7720         * threadpool.c: replace check for SocketAsyncCall class.
7721
7722 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7723
7724         * threadpool-internals.h:
7725         * Makefile.am: added threadpool-internals.h
7726
7727         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7728         that happen in threadpool threads (tested on MS).
7729         (mono_thread_pool_remove_socket): new function that dispatch any pending
7730         AIO call on a socket that is closing. By now only epoll really needs it,
7731         as select/poll wake up when the socket closes.
7732
7733
7734         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7735
7736 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7737
7738         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7739
7740 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7741
7742         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7743
7744 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7745
7746         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7747         has an abort request, convert it into a suspend request.
7748
7749 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7750
7751         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7752         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7753         is not supported yet.
7754
7755 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7756
7757         * image.c: register assemblies loaded from data (bundles) in the loaded
7758         assemblies hash. Fixes bug #74772.
7759
7760 2005-04-29  Martin Baulig  <martin@ximian.com>
7761
7762         * class.c (mono_type_get_name_recurse): Update to the new naming
7763         schema from the latest .NET 2.x beta2.
7764         (mono_class_setup_vtable_general): If we're a generic instance,
7765         copy the vtable from our generic type definition and inflate all
7766         the methods in it.
7767
7768         * loader.c (find_method): Update to the new naming schema from the
7769         latest .NET 2.x beta2.
7770
7771 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7772
7773         * class.c (mono_class_init): Add a mono_loader_unlock to the
7774         #74734 fix.
7775
7776 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7777
7778         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7779         suspend_all_other_threads () call for the time being, since it can hang.
7780
7781         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7782         the background threads to exit, since it can also hang.
7783
7784         * class.c (mono_class_init): Applied patch from Ankit Jain 
7785         (radical@gmail.com). Avoid pending init errors when a field refers
7786         to a nested class using a typeref. Fixes #74734.
7787
7788         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7789         this for dynamic modules.
7790
7791 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7792
7793         * threads.c: don't wait for threads that are in the process of aborting
7794         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7795         and waiting for background threads to finish. This makes xsp and
7796         mod-mono-server exit without random length delays and/or hangs.
7797
7798 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7799
7800         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7801
7802 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7803
7804         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7805         dynamic types to prevent infinite loops. Fixes #74727.
7806
7807         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7808         ..._is_assignable_to.
7809
7810 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7811
7812         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7813
7814 2005-04-25  Martin Baulig  <martin@ximian.com>
7815
7816         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7817
7818         * domain.c
7819         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7820
7821         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7822
7823         * reflection.c (build_compressed_metadata): Set metadata header
7824         version to 2.0.
7825
7826 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7827
7828         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7829         number into an integral and a decimal part. Fixes #70473.
7830
7831         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7832
7833 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7834
7835         * culture-info-table.h : reflected the latest locale-builder output.
7836
7837 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7838
7839         * threadpool.c: check for SuspendRequested too when deciding if
7840         mono_thread_interruption_checkpoint should be called.
7841
7842 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7843
7844         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7845         * threads.c: remove interruption_mutex and use Interlocked instead. When
7846         suspending all the threads, wait for all the suspended events at once.
7847         If we're shutting down and get an APC that is going to be queued,
7848         call mono_thread_execute_interruption immediately, as the thread might
7849         be sleeping on a pthread condition or mutex.
7850
7851         * icall.c: call mono_runtime_set_shutting_down before suspending the
7852         threads.
7853
7854         Fixes bug #74693. And now xsp is happier when exiting.
7855
7856 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7857
7858         * loader.c (mono_stack_walk): Fix #74690.
7859
7860 2005-04-22  Martin Baulig  <martin@ximian.com>
7861
7862         * mono-debug.h (MonoDebugMethodJitInfo): Added
7863         `MonoDebugMethodJitInfo *jit'.
7864
7865         * mono-debug.c (mono_debug_read_method): Cache the
7866         MonoDebugMethodJitInfo in `address->jit'.
7867         (mono_debug_free_method_jit_info): New public method.
7868
7869 2005-04-22  Martin Baulig  <martin@ximian.com>
7870
7871         * class.c (mono_class_is_assignable_from): Disallow
7872         type parameter -> interface.
7873
7874 2005-04-21  Dick Porter  <dick@ximian.com>
7875
7876         * threads.c (mono_thread_create): Turn an assertion into an error.
7877
7878 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7879
7880         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7881         
7882         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7883         Fix some gcc 4.0 warnings.
7884
7885 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7886
7887         * file-io.c: fix alt dir separator char on unix systems
7888         and cleanup (fixes bug #71214).
7889
7890 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7891
7892         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7893         a call to a remote domain, since the method may be an
7894         interface method in the client domain. This fixes bug #74192.
7895
7896 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7897
7898         * threadpool.c: recv/send are now performed before going back to managed
7899         code to save one transition.
7900
7901 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7902
7903         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7904
7905         * metadata/threadpool.c: removed hack to workaround the bug above.
7906
7907         Fixes bug #74618.
7908
7909 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7910
7911         * reflection.c reflection.h: Fix handling of parameter defaults in
7912         dynamic methods. Also fixes handling of parameter attributes.
7913         Fixes #74609.
7914
7915         * mono-debug.c (mono_debug_close_image): Fix warning.
7916
7917 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7918
7919         * socket-io.h: replaced old unused field with new 'blocking'.
7920         * threadpool.c: restore socket blocking state on windows(tm).
7921
7922 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7923
7924         * icall.c: don't return the codebase in the AssemblyName[] returned by
7925         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7926         * object-internals.h: Removed FIXME (fields were presents) and fixed
7927         versioncompat declaration.
7928
7929 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7930
7931         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7932         not closed, so don't cleanup when it happens.
7933
7934 2005-04-13  Chris Toshok  <toshok@ximian.com>
7935
7936         * mono-debug-debugger.h: change prototype for
7937         mono_debugger_lookup_type.
7938
7939         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7940         this function, although it should probably be named
7941         mono_debugger_init_type.
7942
7943 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7944
7945         * threadpool.c: fix non-AIO case.
7946
7947 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7948
7949         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7950         the built-in profiler to measure just JIT compilation times.
7951
7952 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7953
7954         * threadpool.c: the epollfd might be closed by another thread at
7955         any time, so ignore EBADF at treat it as a "we're closing" sign.
7956
7957 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7958
7959         * threadpool.c: release the semaphores with a count equals to the number
7960         of working threads in both IO and regular pools. Fixed typo that messed
7961         up the count of IO pool threads. Don't initialize the pipe handles if
7962         we're using epoll.
7963
7964 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7965
7966         * threadpool.c: some systems don't like a NULL when deleting the socket
7967         from epoll.
7968
7969 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7970
7971         * threadpool.c: fix semaphore allocation.
7972
7973 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7974
7975         * threadpool.c: added epoll() based implementation for asynchronous IO
7976         that is used instead of the default poll() when available.
7977         It can be disabled by setting MONO_DISABLE_AIO.
7978
7979 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7980
7981         * threadpool.c: windows needs 'closesocket' and instead of returning
7982         0 when the stream is closed while in select, it returns -1. Fixes bug
7983         #74573.
7984
7985 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7986
7987         * class.c (class_compute_field_layout): Fix the regression caused by
7988         the previous try.
7989
7990 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7991
7992         * threadpool.c: separate pool for socket async. IO.
7993         * threadpool.h: mono_max_worker_threads is not a global any more.
7994
7995 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7996
7997         * class.c (class_compute_field_layout): Fix #74549.
7998
7999 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8000
8001         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8002         use 2 connected sockets instead.
8003
8004 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8005
8006         * mono-config.c: Add new entry point for mkbundle
8007         mono_config_parse_memory. 
8008
8009 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8010
8011         * threadpool.c: removed another unused function.
8012
8013 2005-04-08  Ankit Jain  <radical@corewars.org>
8014
8015         * reflection.c (get_default_param_value_blobs): Add 'types'
8016         parameter to get the types encoded in the constant table.
8017         (mono_param_get_objects): Use the type from the constant table,
8018         not the type of the parameter, when creating default values.
8019         Handle null default values correctly.
8020
8021 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8022
8023         * file-io.c:
8024         * file-io.h:
8025         * threadpool.c:
8026         * threadpool.h:
8027         * icall.c:
8028         * socket-io.c: removed dead code for async IO.
8029
8030 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8031
8032         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8033
8034         * threadpool.c: intercept socket async. calls and pass them to a thread
8035         that is polling and dispatching the job items to the threadpool as
8036         socket become ready. Fixes bugs #71217, #71933.
8037
8038         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8039         between char and short/ushort arrays.
8040
8041         * socket-io.c: remove dead code.
8042
8043 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8044
8045         * locales.c,
8046           icall.c : removed InternalToUpper_Comp() and
8047           InternalToLower_Comp().
8048
8049 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8050
8051         * char-conversions.h : The tables were incorrectly generated. Should
8052           be generated against invariant culture.
8053
8054 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8055
8056         * object.c (mono_runtime_invoke_array): Fix return value when 
8057         passing pre-created valuetype objects to ctors.
8058
8059         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8060         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8061         Fixes #74338.
8062
8063 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8064
8065         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8066         only used with --security and hides the wrong corlib version error.
8067
8068 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8069
8070         * class.c: Changed mono_class_name_from_token so that types
8071         outside of a namespace don't have an initial period.  Improved
8072         the g_warning message used in _mono_class_get when loading
8073         fails.
8074         * assembly.c: In mono_assembly_load_reference, when an assembly
8075         can't be found, "No such file or directory" is misleading and
8076         unhelpful because a few paths were checked for the presence of
8077         the assembly.  When that happens (ENOENT), display a nicer
8078         message indicating the directories that were searched.  In all
8079         cases, the warning is made easier to read for non-hackers.
8080
8081 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8082
8083         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8084         project/solution.
8085         * appdomain.h|domain.c: Removed inline from functions.
8086         * appdomain.c: Reduced warnings when compiling on windows.
8087         * icall.c: Fixed output_debug declaration to gunichar2*.
8088         * mono-config.c: Reduced warnings when compiling on windows.
8089         * rand.c: Added missing "windows.h". Added missing return value.
8090         * rawbuffer.c: Added missing winsock2.h for windows.
8091         * sysmath.h: Added mono-compiler.h header to allow/ease 
8092         compilation with non-GCC compilers.
8093         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8094         Removed cast warnings.
8095
8096         Adapted from the work of J Lothian (for VC6).
8097
8098 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8099
8100         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8101         from default_path.
8102
8103 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8104
8105         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8106         the 2.0 profile.
8107
8108 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8109
8110         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8111         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8112         stuff, and it would probably use $(prefix)/share rather than
8113         $(prefix)/lib.
8114
8115 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8116
8117         * console-io.c: added 2 includes that might be missing.
8118
8119 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8120
8121         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8122         profile.
8123
8124         * reflection.c (create_custom_attr): Allocate the params array using
8125         alloca so it gets GC tracking.
8126
8127 2005-03-23  Chris Toshok  <toshok@ximian.com>
8128
8129         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8130         out some spew.
8131
8132 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8133
8134         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8135         changes to pick up any changes in prefix, etc.
8136
8137 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8138
8139         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8140         
8141         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8142         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8143
8144 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8145
8146         * class-internals.h object-internals.h class.c reflection.c: Extend the
8147         mono_lookup_dynamic_token () function to return the class of the
8148         token as well. 
8149
8150         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8151         well. Fixes #73848.
8152
8153 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8154
8155         * security-manager.c: Skip inheritance checks for intra-corlib
8156         class inheritance and method overrides. This skips a lot of checks
8157         and (anyway) permissions cannot work until corlib is loaded.
8158
8159 2005-03-23  Martin Baulig  <martin@ximian.com>
8160
8161         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8162         MONO_TYPE_GENERICINST.  
8163
8164 2005-03-23  Martin Baulig  <martin@ximian.com>
8165
8166         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8167
8168 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8169
8170         * class.c: added locking comments to some functions.
8171         Cache the interface offsets arrays (saves about 20 KB
8172         of runtime memory in a typical app).
8173         Reduce the time overhead in mono_class_setup_supertypes ().
8174
8175 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8176
8177         * icall.c: speedup and fix leaks in GetMethodsByName and
8178         GetPropertiesByName.
8179
8180 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8181
8182         * reflection.c: some locking fixes.
8183
8184 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8185
8186         * metadata.c: added missing break in case statement.
8187
8188 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8189
8190         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8191         typedbyref return values. Fixes #73941.
8192
8193 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8194
8195         * security-manager.c|h: Added demandunmanaged method and 
8196         suppressunmanagedcodesecurity class to MonoSecurityManager.
8197         Renamed aptc class to allowpartiallytrustedcallers.
8198
8199 2005-03-17  Martin Baulig  <martin@ximian.com>
8200
8201         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8202
8203 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8204
8205         * file-io.c: disabled file async. IO using aio_*. It uses the
8206         threadpool now. Workaround for bug #73718.
8207
8208 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8209
8210         * assembly.h, mono-config.c: added code to deal with bundled configs
8211         for bundled assemblies.
8212
8213 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8214
8215         * *.c, private.h: cleanup, removing old private.h header file.
8216
8217 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8218
8219         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8220         and throw_on_unmappable_char attributes.
8221
8222 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8223
8224         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8225         _ProcessName_internal.
8226
8227 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8228
8229         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8230         #73631.
8231
8232         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8233         are no longer used.
8234
8235 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8236
8237         * object.c (compute_class_bitmap): Add support for generics. Fixes
8238         #73527.
8239
8240 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8241
8242         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8243
8244 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8245
8246         * filewatcher.c: commented out the code for windows watcher, as we don't
8247         use it (we use the managed implementation instead).
8248
8249 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8250
8251         * object-internals.h (MonoThread): Remove 'unused1' field.
8252
8253         * appdomain.c: Bump corlib version.
8254
8255         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8256
8257         * reflection.c (mono_reflection_create_runtime_class): Remove the
8258         AssemblyBuilder.Save optimization since it causes too many problems.
8259
8260 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8261
8262         * exception.c|h: Added mono_get_exception_reflection_type_load to
8263         create a ReflectionTypeLoadException object.
8264         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8265         to return NULL is a InheritanceDemand fails during reflection. Updated
8266         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8267         ReflectionTypeLoadException if an InheritanceDemand fails during 
8268         reflection. Added icall mapping for GetLinkDemandSecurity.
8269         * security-manager.c|h: Added ves_icall_System_Security_
8270         SecurityManager_GetLinkDemandSecurity internal call to return the
8271         class and methods permissions set for a LinkDemand. Removed unused
8272         fields in MonoSecurityManager.
8273
8274 2005-03-10  Martin Baulig  <martin@ximian.com>
8275
8276         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8277         it's a generic instance.
8278
8279 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8280
8281         * reflection.c (mono_get_object_from_blob): Applied patch from
8282         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8283
8284         * class.c (mono_class_is_assignable_from): Another try at fixing 
8285         #73469 without breaking anything.
8286
8287 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8288
8289         * class.c: (mono_class_is_assignable_from): Revert the last changes
8290         since they don't work with generics.
8291         
8292         * class.c (mono_class_is_assignable_from): Fix build bustage.
8293
8294         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8295         the managed IsAssignableFrom method. Fixes #73469.
8296
8297         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8298         function.
8299
8300 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8301
8302         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8303         memory when the remoting callback does not sets the out arguments.
8304         Fixes #73007.
8305
8306         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8307         by mistake.
8308
8309         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8310
8311         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8312
8313         * appdomain.c: Bump corlib version.
8314
8315 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8316
8317         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8318         function.
8319
8320         * threads.c (mono_thread_attach): Detect threads which are not started
8321         by the GC pthread wrappers.
8322
8323 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8324
8325         * icall.c: Added new icall for RNG.
8326         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8327         single handle on Linux to access /dev/urandom and fix #73183.
8328
8329 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8330
8331         * object.c: setting the new vtable in a transparent proxy object must
8332         not change the GC descriptor.
8333
8334 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8335
8336         * object.c: fixed compilation without GCJ support.
8337         * reflection.c: for runtime-created types ensure klass->has_references
8338         is correct (bug #73215).
8339
8340 2005-03-02  Martin Baulig  <martin@ximian.com>
8341
8342         * class.c (mono_class_is_assignable_from): Make this work if
8343         `oklass' is a generic instance; fixes #72831.
8344
8345 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8346
8347         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8348         with hasthis set.
8349         
8350         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8351
8352         * marshal.c: Reorganize native->managed marshalling code to also use
8353         the emit_marshal_... functions.
8354
8355 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8356
8357         * object.c: typed allocs have issues with bitmap sizes > 30,
8358         so check for max_set >= 30.
8359
8360 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8361
8362         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8363         managed code. Fixes #73012.
8364
8365         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8366
8367         * metadata.c reflection.c: Load/Emit elem_mult as well.
8368         
8369         * metadata.h (MonoMarshalSpec): Add comment.
8370
8371         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8372
8373         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8374         num_elem to -1 if not given.
8375
8376         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8377
8378         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8379         given values.
8380
8381 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8382
8383         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8384
8385 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8386
8387         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8388
8389         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8390
8391 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8392
8393         * object.c: generalized the reference bitmap creation
8394         and added hooks for the new GC.
8395         * class-internals.c: removed the gc_bitmap field from MonoClass.
8396
8397 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8398
8399         * domain.c: help the compiler to produce better code
8400         in mono_jit_info_table_find ().
8401
8402 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8403
8404         * object.c: make all allocations look typed.
8405
8406 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8407
8408         * socket-io.c: load Mono.Posix if it's not loaded already
8409         (fixes bug#73033).
8410
8411 2005-02-24  Martin Baulig  <martin@ximian.com>
8412
8413         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8414         * reflection.c (dup_type): Likewise.
8415
8416 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8417
8418         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8419         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8420
8421 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8422
8423         * domain.c, threads.c, object-internals.h: make the critical thread
8424         local vars use the fast access mode (even when we're compiled in
8425         a lib). Provide accessors to be used by the jit during codegen.
8426
8427 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8428
8429         * appdomain.c: Changed hook functios behavior to include
8430         support for the reflection only assemblies. Some icalls were changed
8431         to support the mentioned assemblies too. Signatures of static methods
8432         try_assembly_resolve and real_load now have an additional parameter:
8433         refonly.
8434
8435         * assembly.c: General changes to mono_assembly_ methods to support
8436         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8437         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8438         suffix, to support an additional gbool parameter to specify whether
8439         the assembli is reflection only or not. Created some new hook functions 
8440         to add support for reflection only assemblies. Signatures of static 
8441         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8442         have now an additional parameter: refonly.
8443
8444         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8445         indicating whether the assembly is reflection only or not.
8446
8447         * exception.c: Add mono_get_exception_invalid_operation.
8448
8449         * icall.c: Throw an InvalidOperationException when trying to invoke
8450         a property/method/event, or trying to set/get the value of a field.
8451         Also add an icall to retrieve the ref_only flag to the
8452         MonoReflectionAssembly.
8453
8454 2005-02-23  Chris Toshok  <toshok@ximian.com>
8455
8456         Part of fix for #72827.
8457         * mono-debug.c (mono_debug_add_method): add lexical block data to
8458         the info we write.  Kind of a hack at the moment - we copy the
8459         lexical block info from the MonoDebugMethodInfo to the
8460         MonoDebugMethodJitInfo here, before writing it.
8461         (mono_debug_read_method): read the lexical block info.
8462
8463         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8464
8465         * debug-mono-symfile.h: add lexical block support.
8466
8467         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8468         support.
8469
8470 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8471
8472         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8473
8474         * object.c (mono_runtime_free_method): Call mono_free_method () and
8475         put the TODOs there.
8476
8477         * loader.c (mono_free_method): Free up most memory allocated for 
8478         dynamic methods.
8479
8480 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8481
8482         * reflection.c: properly flag a Type argument to a
8483         named custom attr value (bug #72248).
8484
8485 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8486
8487         * reflection.c: reduce code duplication in named custom
8488         attribute encoding.
8489
8490 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8491
8492         * reflection.c: properly encode custom attrs of type object
8493         (bug #72649).
8494
8495 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8496
8497         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8498
8499 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8500
8501         * socket-io.c: load System.dll if it's not loaded already
8502         (bug #72850 and #70477).
8503
8504 2005-02-21  Martin Baulig  <martin@ximian.com>
8505
8506         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8507         generic instances.
8508
8509 2005-02-21  Martin Baulig  <martin@ximian.com>
8510
8511         * reflection.c (mono_image_build_metadata): We also need to
8512         "fixup" the MethodImpl table after we computed the final method
8513         indices.  Call fixup_methodimpl() to do that.
8514         (fixup_methodimpl): New private method.
8515
8516 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8517
8518         * assembly.c: special case mscorlib.dll (bug#72536),
8519         patch from Carlos Alberto Cortez.
8520
8521 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8522
8523         * threads-types.h threads.c: Fix build bustage.
8524
8525         * threads.c: Use a union for long<->double conversions.
8526
8527         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8528         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8529
8530         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8531         containing the checkpoint call with NOT_TAKEN.
8532         
8533         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8534         checkpoint before pushing the arguments, so they won't have to be
8535         spilled to stack.
8536
8537 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8538
8539         * domain.c, assembly.c, domain-internals.h: make some data
8540         const and relocation-free.
8541
8542 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8543
8544         * object.c, appdomain.c, class-internals.h: introduce the
8545         MonoClassRuntimeInfo structure to hold the info needed to
8546         use a class at runtime. Made mono_class_vtable() lock-free
8547         for all the appdomains.
8548
8549 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8550
8551         * metadata-internals.h, image.c: introduce a per-image mempool to
8552         be used for memory that has the same lifetime as the image.
8553
8554 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8555
8556         * domain.c: In mono_init_internal(), instead of selecting the first
8557         runtime version supported by an executable, get a list of all
8558         supported versions and select the one for which an mscorlib exists
8559         (since even if the runtime supports a given version, it doesn't mean
8560         that the framework for that version is installed).
8561         Modified get_runtimes_from_exe to support this behavior.
8562         In supported_runtimes, added information about additional system
8563         assembly versions.
8564         
8565         * assembly.c: Added support for more than one system assembly version
8566         per runtime version. Updated the assembly list.
8567         In mono_assembly_remap_version, removed the initial version check,
8568         since we don't know to which version we need to compare until we
8569         get the version set on which the assembly is based.
8570         Moved the code for loading corlib into the new method
8571         mono_assembly_load_corlib(), so it can be used by the initialization
8572         code.
8573         
8574         * domain-internals.h: Updated data structures and added declaration
8575         for mono_assembly_load_corlib.
8576
8577 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8578
8579         * reflection.c (resolve_object): Fix the creation of the signature in 
8580         the SignatureHelper case.
8581
8582         * assembly.c (mono_assembly_remap_version): Fix binary search.
8583         
8584 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8585  
8586         * class.c: Added inheritance check when a method is overloaded (from a
8587         virtual method or when implementing an interface) and when a class is
8588         inherited. Added functions to set a failure for a class and to 
8589         retreive the exception from a failure.
8590         * class-internals.h: Added fields to MonoClass to keep the exception
8591         information status for inheritance (or other exceptions) to be thrown
8592         later (i.e. not at load time).
8593         * object.c: Throw the inheritance SecurityException when a type is to 
8594         be created with either class or method inheritance violations.
8595         * reflection.c|h: Fix when getting declsec from a class. Removed 
8596         unrequired code for class. Improved sanity in parameter naming.
8597         * security-manager.c|h: Added functions to check for class and method
8598         inheritance.
8599
8600 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8601
8602         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8603         and has_finalize in dynamic types as well.
8604
8605 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8606
8607         * culture-info-table.h : fixed currency format for en-GB (and so on).
8608
8609 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8610
8611         * gc.c: ensure the GC handles never have 0 as a value.
8612
8613 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8614
8615         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8616         a pointer to a struct to unmanaged code. Fixes #72625.
8617
8618 2005-02-16  Martin Baulig  <martin@ximian.com>
8619
8620         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8621
8622 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8623
8624         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8625
8626 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8627
8628         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8629
8630         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8631         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8632         etc. Fixes #71471.
8633
8634         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8635
8636         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8637
8638 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8639
8640         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8641         changes to make the current context a field in MonoThread.
8642
8643 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8644
8645         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8646         the last change.
8647         
8648         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8649         extracted from mono_marshal_get_native_wrapper.
8650
8651         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8652         to create wrappers around native functions.
8653
8654         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8655         delegates for arbitrary function pointers. Fixes #71472.
8656
8657 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8658
8659         * threads.c: cleaned up the code a little.
8660
8661 2005-02-15  Martin Baulig  <martin@ximian.com>
8662
8663         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8664         the data table.
8665
8666         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8667         allocate larger chunks if needed.
8668
8669 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8670
8671         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8672         in by mistake.
8673
8674 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8675
8676         * domain.c: keep the domains in an array and ensure the domain ids
8677         are kept small, so they can be used as indexes to domain-specific data
8678         with a small memory overhead.
8679
8680 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8681
8682         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8683
8684 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8685
8686         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8687
8688 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8689
8690         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8691
8692         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8693         values.
8694
8695         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8696         
8697 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8698
8699         * domain-internals.h: add the hashtable here.
8700
8701         * class-internals.h: Remove `info' from MonoMethod
8702
8703         * domain.c: Add a new hashtable, jit_trampoline_hash
8704
8705 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8706
8707         * object.c: don't set the value of static fields
8708         (fixes bug#72494).
8709
8710 2005-02-11  Martin Baulig  <martin@ximian.com>
8711
8712         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8713         (mono_debug_add_method): Silently ignore the method if it's too big.
8714         (mono_debug_add_type): Likewise.
8715
8716 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8717
8718         * threads.c, appdomain.c: remove #ifdefs from the code.
8719
8720 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8721
8722         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8723         common security informations. This allows us to stay in unmanaged code
8724         when doing LinkDemand and it's special cases (except for the first 
8725         time for initialization). The flags a very much used with --security.
8726         * reflection.c|h: Added code to get declarative security attributes 
8727         for LinkDemand and InheritanceDemand. This required to refactor the
8728         existing code for Demand.
8729         * security-manager.c|h: Added new method fields for the special cases
8730         of LinkDemand.
8731
8732 2005-02-10  Martin Baulig  <martin@ximian.com>
8733
8734         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8735         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8736
8737 2005-02-10  Martin Baulig  <martin@ximian.com>
8738
8739         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8740         debugging code; this is almost a complete rewrite.
8741
8742         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8743
8744 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8745
8746         * domain.c, object.h: expose mono_string_equal () and 
8747         mono_string_hash ().
8748         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8749         it's implemented in managed code.
8750
8751 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8752
8753         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8754         lo leak objects between appdomains.
8755
8756 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8757
8758         * assembly.c: old compilers compilation fix from 
8759         robertj@gmx.net (Robert Jordan).
8760
8761 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8762
8763         * class-internals.h: Little reminder for the future.
8764
8765         * debug-helpers.c: Fix up wrapper_type_names
8766
8767 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8768
8769         * image.c, metadata-internals.h: when loading an image from a file,
8770         mmap all of it and use the same codepaths as when using a
8771         in-memory image: the code is simpler and we use less memory
8772         (both writable and readonly).
8773
8774 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8775
8776         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8777         API to alloc runtime data structures that need to be tracked by the
8778         GC and contain pointers.
8779         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8780         make the code more readable and eventually use a different GC.
8781
8782 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8783
8784         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8785         for out arguments.
8786         
8787 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8788
8789         * object.c: In release_type_locks(), don't release the cctor lock
8790         if it has already been released. This fixes a crash in the
8791         thread5 test.
8792
8793 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8794
8795         * gc.c, marshal.c, icall.c: register a delegate for finalization
8796         only when the native function pointer has been allocated for it.
8797
8798 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8799
8800         * object.c: cleaned up some code, allocate objects that are
8801         pointer free with the atomic malloc variant. Allocate memory
8802         for static data from the mempool if it's pointer-free.
8803         Allocate the bounds array at the end of the array data, when needed.
8804         * object-internals.h, object.h: move a private function in a private
8805         header.
8806         * class.c: handle missing case in tracking references in fields.
8807
8808 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8809
8810         * class.c, class-internals.h: keep track if a type has
8811         reference fields in either the instance or static fields.
8812
8813 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8814
8815         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8816         and renamed to MonoRuntimeInfo. Added fields to store the expected
8817         framework assembly version. Changed mono_get_framework_version and
8818         mono_get_runtime_version for a single mono_get_runtime_info method.
8819         
8820         * assembly.c: Added method to remap system assembly versions to the
8821         current executing runtime version. Removed old mapping code.
8822         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8823         
8824         * icall.c, reflection.c: Track api changes.
8825
8826 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8827
8828         * loader.c (method_from_memberref): Improve error reporting,
8829         produce the class name instead of the typeref/typedef index. 
8830
8831 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8832
8833         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8834
8835 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8836
8837         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8838         stdcall and charset name mangling.  Reorganize the code and add
8839         some tracing stuff.
8840
8841 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8842
8843         * monodiet.c: More iters!
8844
8845         * marshal.c: Iter usage.
8846
8847         * icall.c: Iter usage.
8848
8849         * object.c: Use iters.
8850
8851         * debug-helpers.c: More iters
8852
8853 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8854
8855         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8856         under win32.
8857
8858 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8859
8860         * mono-debug-debugger.c: use iters
8861
8862         * class.c, class-internals.h: mono_class_setup_events is static
8863         now
8864
8865         * All callers: use iters
8866
8867 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8868
8869         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8870         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8871
8872 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8873
8874         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8875
8876         * marshal.h: Add prototypes for ldfld/stfld_remote.
8877
8878         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8879         this is called during startup.
8880         
8881 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8882
8883         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8884         MonoThreadsSync struct private in monitor.c. Changed the way
8885         MonoThreadsSync is allocated so it's faster and there is no
8886         need to keep track of it with a finalizer and it uses less memory.
8887         This also finally allows us to allocate mono objects as ptrfree when
8888         there are no reference fields.
8889
8890 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8891
8892         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8893         disappearing link to the GC interface and use them to simplify
8894         the gchandles code.
8895
8896 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8897
8898         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8899         stfld_remote which call mono_load/store_field_new. This allows methods
8900         calling ldfld/stfld wrappers to be AOTed.
8901
8902         * console-io.c: Include sys/filio.h under solaris.
8903         
8904         * console-io.c: Include curses.h if needed correctly.
8905
8906 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8907         
8908         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8909         method->klass as well.
8910
8911         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8912
8913         * class.c (mono_class_init): Switch on lazy initialization of 
8914         methods.
8915
8916         * class.c (mono_class_get_finalizer): Handle the case when the 
8917         finalizer is inherited.
8918
8919 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8920
8921         * console-io.c: <curses.h> is needed by term.h on solaris.
8922
8923 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8924
8925         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8926         mono_class_setup_properties where possible. Remove this ftn from
8927         the header file, and make it static.
8928
8929 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8930
8931         * loader.c: Add missing setup_... call.
8932
8933         * class.c: Add missing setup_... calls.
8934
8935         * class.c (mono_class_init): Switch on lazy initialization of 
8936         the generic vtable.
8937         
8938         * class.c (mono_class_init): Fix generics broken by the recent changes.
8939
8940         * monodiet.c (handle_type): Add missing setup_... calls.
8941
8942         * class.c: Back out garbage in previous patch.
8943         
8944         * class.c: Add missing setup_... calls.
8945
8946         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8947         mono_class_setup_methods () if possible.
8948
8949         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8950
8951         * class-internals.h (MonoCachedClassInfo): New structure.
8952
8953         * class.c: Initialize properties and events fields of MonoClass lazily.
8954
8955         * class.c: Add infrastructure for lazily initializing the methods and
8956         vtable fields of MonoClass. Not yet used.
8957
8958         * class.c (mono_class_get_finalizer): New helper function.
8959
8960         * class.c: Add infrastructure for loading some class related data from
8961         an AOT file.
8962
8963         * object.c: Add infrastructure for initializing the vtable from data
8964         in the AOT file.
8965
8966         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8967
8968         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8969         appropriate initialization function before accessing parts of the
8970         MonoClass structure.
8971
8972         * marshal.c: Fix warnings.
8973         
8974         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8975
8976         * mono-debug-debugger.c (get_exception_message): Use 
8977         mono_class_get_method_from_name_flags ().
8978
8979 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8980
8981         * reflection.c, appdomain.c: Replace a few manual searches that
8982         Zoltan missed. (Paolo approved this part of my initial patch).
8983
8984 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8985
8986         * profiler.c: disable recording statistical events at report time.
8987
8988 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8989
8990         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8991         to byteswap arrays of enum values, too (bug #72080).
8992
8993 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8994
8995         * appdomain.c (set_domain_search_path): Allow this to be called if
8996         domain->setup is not yet set.
8997
8998         * loader.c (mono_method_get_index): New helper function.
8999
9000         * loader.c reflection.c: Use mono_method_get_index ().
9001
9002         * class.c (mono_class_get_method_from_name_flags): New helper method.
9003
9004         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9005         this.
9006
9007         * class.c (mono_class_get_cctor): New helper method.
9008
9009         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9010         mono_class_get_method () to look up methods.
9011
9012 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9013
9014         * console-io.c: Fix the build, this should work on Windows.
9015
9016 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9017
9018         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9019         be set to null to keep things valid
9020
9021 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9022
9023         * icall.c: added Console 2.0 icalls.
9024         * Makefile.am: added console-io.[ch]
9025         * console-io.[ch]: internal calls for Console 2.0 API.
9026
9027 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9028
9029         * class.c: make sure we consider all the interfaces
9030         when calculating max_interface_id (bug found by
9031         Jeroen Frijters running ikvm).
9032
9033 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9034
9035         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9036         valuetype fields to null.
9037
9038         * object.c (set_value): Ditto. Fixes #71669.    
9039
9040 2005-01-31  Martin Baulig  <martin@ximian.com>
9041
9042         * metadata.c (mono_metadata_has_generic_params): New public
9043         function; checks whether something is a generic method.
9044
9045 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9046
9047         * appdomain.c: fix infinite recursion when adding assemblies.
9048
9049 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9050
9051         * object.c: Fix small typo to return all items for Environment.
9052         GetCommandLineArgs.
9053
9054 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9055
9056         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9057         reflection.c: more domain and assembly-unload related fixes
9058         and memory leaks plugs.
9059
9060 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9061
9062         * 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.
9063
9064 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9065
9066         * loader.c (mono_method_signature): Make this method lazy
9067         (mono_get_method_from_token): Don't computate the signature here.
9068
9069         Doing this saves quite a bit of memory. I got 90 kb on starting up
9070         monodoc. It should also save some disk reads on startup.
9071
9072         * *: MonoMethod->signature might be NULL now. You *MUST* use
9073         mono_method_signature.
9074
9075 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9076
9077         * object.c (mono_runtime_get_main_args): Return an array from the
9078         current domain here. Fixes #71938.
9079
9080 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9081
9082         * monitor.c: formatting changes to comply with the
9083         mono coding style and remove #ifdefs from the code.
9084
9085 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9086
9087         * metadata.c, private.h: remove some unneeded data
9088         and use a more compact representation for table schemas.
9089
9090 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9091
9092         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9093         to get a better distribution in hash tables.
9094         * *.c: use mono_aligned_addr_hash() where appropriate.
9095         * assembly.c: make var static.
9096
9097 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9098
9099         * domain-internals.h: Put MonoJitInfo on a diet.
9100
9101         * domain.c: Fix a warning.
9102
9103 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9104
9105         * gc.c: rework the gc handles code to reuse handles
9106         when freed.
9107
9108 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9109
9110         * domain.c: fixed long standing bug in mono_string_equal() which
9111         was brought to light with the ldstr changes.
9112
9113 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9114
9115         * reflection.c: Remove warning by adding missing include for marshal.h
9116
9117 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9118
9119         * domain.c, object.c: change the ldstr_table to hold
9120         MonoString* as keys: makes the runtime isinterned lookup
9121         faster and simplifies memory management.
9122
9123 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9124  
9125         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9126         possible to add imperative security checks before calling the icall.
9127         * reflection.c: Return security attributes on the original MonoMethod
9128         (and not the wrapped one). This fix permissions on icalls.
9129
9130 2005-01-25  Dick Porter  <dick@ximian.com>
9131
9132         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9133         the check for mktime() support actually test the mktime() return
9134         value.  "Fixes" bug 71682, though the output is still different to
9135         MS.
9136
9137 2005-01-25  Martin Baulig  <martin@ximian.com>
9138
9139         * class.c (mono_class_is_assignable_from): Make this work for
9140         generic instances.
9141
9142 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9143
9144         * marshal.c (mono_string_utf8_to_builder)
9145         (mono_string_builder_to_utf16): We might not have ownership of the
9146         string. In thise case, we need to create a new buffer.
9147
9148         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9149         be null, in which case, use the default capacity.
9150
9151 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9152
9153         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9154         GC events to the profiler.
9155
9156 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9157
9158         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9159         if you don't want the GC to run.
9160
9161 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9162
9163         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9164         start providing a GC API and keeping different implementations in
9165         their own file.
9166         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9167
9168 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9169
9170         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9171         mmap rather than allocating a huge buffer.
9172         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9173         above.
9174
9175 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9176
9177         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9178         and CheckExecutionRights.
9179         * reflection.c|h: Keep the index of the declarative security to be 
9180         used, instead of the pointer, when AOT compiler is used. Also add 
9181         class initialization when requesting demands.
9182         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9183         CheckExecutionRights. Both properties are now FALSE by default, and
9184         unmodifiable, unless the --security option is used.
9185
9186 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9187
9188         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9189         reflection.c: properly refcount images and assemblies, many leaks fixed.
9190
9191 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9192
9193         * threadpool.c: increase the timeout for threads in the thread pool to
9194         10s.  Fixes bug #67159.
9195
9196 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9197
9198         * class-internals.h: Sun's compiler insists on explicit
9199         signed on bit fields to handle then correctly.
9200
9201 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9202
9203         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9204         Make the size of the array fit only the number of invalid path
9205         chars that we have.
9206
9207         * class.c (_mono_class_get): Improve the error reporting when a
9208         class referenced is not found, to assist debugging. 
9209
9210 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9211
9212         * threads.c: fix off-by-one error.
9213         * domain.c: free data allocated in the domain.
9214
9215 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9216
9217         * reflection.c (mono_method_body_get_object): Fill out exception info
9218         as well.
9219
9220         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9221         structure.
9222         
9223 2005-01-19  Martin Baulig  <martin@ximian.com>
9224
9225         * loader.c (mono_get_method_constrained): Make this work again.
9226
9227 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9228
9229         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9230         guint16 to match the managed side.
9231
9232         * reflection.c (mono_reflection_body_get_object): Fill out local
9233         variables array.
9234
9235         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9236         as well.
9237
9238         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9239         'local_var_sig_token'.
9240
9241 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9242
9243         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9244         System.Drawing.
9245
9246         * reflection.c (mono_method_body_get_object): Handle abstract and
9247         runtime methods.
9248
9249 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9250
9251         * marshal.c, loader.c, class-internals.h, reflection.c:
9252         store the emthod data for a wrapper in an array instead of a list.
9253
9254 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9255
9256         * marshal.c: change the code to allocate memory more
9257         conservatively for method wrappers.
9258
9259 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9260
9261         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9262         fields from MonoClass to the marshal info structure where they belong.
9263
9264 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9265
9266         * class.c, object.c, class-internals.h, marshal.c: rearrange
9267         some fields and tweak some types to lower memory usage.
9268
9269 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9270
9271         * threads.c (signal_thread_state_change): Handle the case when the
9272         target thread is the current thread.
9273
9274         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9275
9276         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9277         emit_ptr_to_object_conv. 
9278
9279         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9280         marshalling. Fixes #71352.
9281
9282 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9283
9284         * metadata.h, blob.h: move table enum to blob.h so it can be included
9285         in any header.
9286         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9287         cut the size of MonoImage/MonoDynamicImage.
9288
9289 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9290
9291         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9292
9293 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9294
9295         * reflection.c, reflection.h, icall.c: add a function to check
9296         if an attribute type is defined for a metadata object.
9297
9298 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9299
9300         * object-internals.h: Added some needed fields from StringBuilder class.
9301         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9302
9303 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9304
9305         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9306         threads before shutting down the runtime.
9307
9308         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9309
9310 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9311
9312         * object-internal.h, threads.c: implement stacksize and 
9313         parameterized thread start functionality (requires
9314         matching corlib). Marked broken code for later removal.
9315
9316 2005-01-12  Martin Baulig  <martin@ximian.com>
9317
9318         * class-internals.h (MonoGenericClass): Moved the `initialized'
9319         flag to MonoDynamicGenericClass, removed `init_pending'.
9320         (MonoGenericInst): Added `is_reference' flag.
9321
9322 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9323
9324         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9325         inside the MSDOS header. Fixes #71201.
9326
9327         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9328         gc thread.
9329         (mono_domain_finalize): Ditto.
9330
9331 2005-01-12  Martin Baulig  <martin@ximian.com>
9332
9333         * class.c (mono_get_shared_generic_class): Use the cache for
9334         non-dynamic generic classes.
9335
9336         * class-internals.h (mono_class_create_generic_2): Removed
9337         function prototype, this function is now static inside class.c.
9338
9339         * class.c (mono_class_create_generic_2): Made this static, only
9340         call it from mono_class_init() and mono_class_setup_parent().
9341         (collect_implemented_interfaces_aux): Call mono_class_init() on
9342         the interfaces we collect.
9343         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9344
9345 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9346
9347         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9348         it a real thread handle.
9349
9350         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9351         MonoJitExceptionInfo, since each catch clause needs its own variable.
9352         
9353 2005-01-11  Dick Porter  <dick@ximian.com>
9354
9355         * image.c (mono_pe_file_open): New variant on mono_image_open()
9356         that does not set up the CLI metadata; used for FileVersionInfo so
9357         it can get the data for windows binaries too.
9358         
9359         * process.c (process_read_string_block): Don't read off the end of
9360         the StringTable block.
9361
9362         These both fix bug 70766.
9363
9364 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9365
9366         * gc.c: set some fields to NULL at GC cleanup time.
9367         * threads.c: if we quit the main thread, call exit ().
9368
9369 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9370
9371         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9372
9373 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9374
9375         * threads.h, threads.c, object.c: added accessor and settor for
9376         main_thread. Handle it specially when exiting from it: wait
9377         for other foreground threads to exit.
9378
9379 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9380
9381         * process.c, verify.c: remove some bloat.
9382
9383 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9384
9385         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9386         the calling convention to cdecl under win32.
9387
9388 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9389
9390         * object.c (mono_object_get_size): New function to get the size of
9391         an object instance.
9392
9393         * profiler.c (simple_allocation): Use above.
9394
9395 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9396
9397         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9398         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9399         get an appdomain by it's id and we can't assume the root's id is 0).
9400         * domain-internals.h: Change the function prototype to match.
9401         * icall.c: Change the icall table for AppDomain.
9402
9403 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9404
9405         * locales.c (string_invariant_compare_char): Only compute
9406         GUnicodeTypes in the case where we need them.  Test for ordinality
9407         first and return if so.
9408
9409         From the commit:
9410
9411                 /*
9412                  * FIXME: here we must use the information from c1type and c2type
9413                  * to find out the proper collation, even on the InvariantCulture, the
9414                  * sorting is not done by computing the unicode values, but their
9415                  * actual sort order.
9416                  */
9417
9418 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9419
9420         * loader.c: for P/Invoke methods, allow the "Internal" shared
9421         library name to refer to the calling process symbol namespace.
9422
9423 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9424
9425         * Makefile.am: Add the security manager to the build.
9426         * security-manager.c|h: New. Initialization of the security manager.
9427
9428 2005-01-07  Dick Porter  <dick@ximian.com>
9429
9430         * threads.c: 
9431         * monitor.c: Update thread state during Monitor and WaitHandle
9432         waits.  Fixes bug 71031.
9433
9434 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9435
9436         * reflection.c (property_encode_signature): Correctly handle when the
9437         property has no methods.
9438
9439 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9440
9441         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9442         
9443         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9444         fields from mb, not rmb. Fixes #71017.
9445
9446         * marshal.c (emit_ptr_to_str_conv): Add support for 
9447         ByValTStr -> string conversion. Fixes #71015.
9448
9449         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9450
9451         * mempool.c (mono_mempool_contains_addr): New helper function.
9452
9453 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9454
9455         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9456         HasSematics encoded fields.
9457         
9458         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9459         invalid string marshalling.
9460
9461         * metadata.c: Fix warnings.
9462         
9463 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9464
9465         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9466         profiler support.
9467
9468 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9469
9470         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9471         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9472         tests.
9473
9474 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9475
9476         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9477         so methods containing these can be AOTed.
9478
9479 2005-01-03  Martin Baulig  <martin@ximian.com>
9480
9481         * loader.c (find_method): Removed the hack for generic instances.
9482         (method_from_memberref): If our parent is a generic instance, pass
9483         its generic type definition to find_method() and then inflate the
9484         method.
9485         (mono_get_method_constrained): Pass the generic type definition to
9486         find_method() and inflate the method later.
9487
9488         * class-internals.h (MonoStats): Added `generic_class_count'.
9489
9490         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9491         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9492
9493         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9494         generic type definitions.
9495
9496 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9497
9498         * loader.c icall.c: Fix warnings.
9499
9500 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9501
9502         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9503         blittable types. Fixes #70864.
9504
9505 2004-12-29  Martin Baulig  <martin@ximian.com>
9506
9507         * icall.c
9508         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9509
9510         * reflection.c (mono_method_get_object): Create a
9511         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9512         call mono_get_inflated_method().
9513
9514         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9515
9516 2004-12-27  Martin Baulig  <martin@ximian.com>
9517
9518         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9519         (MonoMethodInflated): Added `inflated' field.
9520
9521         * class.c (mono_class_inflate_generic_method): Don't really
9522         inflate the method here; just set the `is_inflated' flag in the
9523         MonoMethod.
9524         (mono_class_get_inflated_method): Actually inflate the method here
9525         if it's not already inflated; we use the MonoMethodInflated's new
9526         `inflated' field as a cache.
9527
9528 2004-12-26  Martin Baulig  <martin@ximian.com>
9529
9530         * class.c
9531         (inflate_generic_class): Moved some code out of inflate_generic_type().
9532         (mono_class_inflate_generic_method): If we're already inflated,
9533         inflate the context and use the declaring method; ie. make sure
9534         the declaring method of an inflated method is always the generic
9535         method definition.
9536         (mono_class_create_from_typedef): Create
9537         `class->generic_container->context->gclass'.
9538
9539 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9540
9541         * metadata-internals.h, marshal.c, reflection.c: More
9542         MonoGHashTable->GHashTable.
9543
9544         * domain-internals.h, class.c: Change MonoGHashTable's into
9545         GHashTables for some cases where no gc stuff is used
9546
9547         All users: update apis
9548
9549 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9550
9551         * metadata.c (builtin_types): Make this `const'. Makes this get
9552         put into the shareable section.
9553         (mono_metadata_init): Casts to make gcc happy.
9554
9555 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9556
9557         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9558
9559 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9560
9561         * icall.c: Added an internal call to retrieve the position and length
9562         of assembly-level declarative security attributes (RequestMinimum, 
9563         RequestOptional and RequestRefuse). This is used by the Assembly class
9564         to re-create the corresponding permission sets.
9565
9566 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9567
9568         * marshal.c: fix the stelemref wrapper to be type correct
9569         (and faster).
9570
9571 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9572
9573         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9574         to do key & 0x7fffffff. Hashtable already does this. It just
9575         results in longer code.
9576
9577 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9578
9579         * appdomain.c: Bump corlib version.
9580         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9581         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9582         * reflection.c|h: Add functions to get declarative security infos
9583         (blob position and length) for assemblies, classes and methods.
9584
9585 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9586
9587         * reflection.c: sort the constant table (bug #70693).
9588
9589 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9590
9591         * object-internals.h, threads.c, domain.c: add accessors for
9592         the MonoThread and MonoDomain tls keys.
9593
9594 2004-12-18  Martin Baulig  <martin@ximian.com>
9595
9596         * class.c (inflate_generic_type): If we're inflating a generic
9597         instance, set `ngclass->context->container = context->container';
9598         ie. the container we inflated into.
9599
9600         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9601         inflate_generic_type() changes.
9602
9603 2004-12-17  Martin Baulig  <martin@ximian.com>
9604
9605         * class-internals.h
9606         (MonoGenericClass): Replaced `MonoType *generic_type' with
9607         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9608         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9609         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9610
9611 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9612
9613         * exception.c (mono_exception_from_token): New helper function.
9614
9615 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9616
9617         * assembly.c (mono_assembly_load_with_partial_name): Call 
9618         mono_assembly_loaded before invoking the preload hooks. Fixes
9619         #70564.
9620
9621         * object-internals.h (MonoThread): Change culture_info and 
9622         ui_culture_info into an array.
9623
9624         * threads.c: Cache culture info objects from more than one appdomain.
9625
9626         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9627         current UI culture.
9628
9629 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9630
9631         * threads.h threads.c appdomain.c: Clear the culture_info field of
9632         all threads during unloading if they point to an object in the dying
9633         appdomain.
9634
9635 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9636
9637         * culture-info.h (TextInfoEntry): New struct
9638         * object-internals.h: sync with managed
9639         * locales.c: fill the `text_info_data' field
9640         * culture-info-tables.h: update
9641
9642 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9643
9644         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9645         collector.
9646
9647 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9648
9649         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9650         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9651
9652 2004-12-12  Martin Baulig  <martin@ximian.com>
9653
9654         * mono-debug-debugger.c (write_type): If we're an enum and the
9655         builtin types have already been initialized, call mono_class_init().
9656
9657 2004-12-11  Martin Baulig  <martin@ximian.com>
9658
9659         * metadata.c (mono_metadata_load_generic_params): Added
9660         `MonoGenericContainer *parent_container' argument; automatically
9661         compute `container->is_method'; pass the correct owner to
9662         get_constraints().      
9663
9664         * reflection.c (compare_genericparam): Sort the GenericParam table
9665         according to increasing owners. 
9666
9667 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9668
9669         * profiler.c: allow disabling the default profiler.
9670
9671 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9672
9673         * decimal.c, icall.c: allow disabling System.Decimal support.
9674
9675 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9676
9677         * reflection.c: Add support for null attribute arguments.
9678
9679 2004-12-09  Martin Baulig  <martin@ximian.com>
9680
9681         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9682         names to get rid of compiler warnings.
9683
9684 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9685
9686         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9687         mono_marshal_load_type_info (). Fixes #69625.
9688         (mono_marshal_get_ptr_to_struct): Likewise.
9689
9690 2004-12-08  Martin Baulig  <martin@ximian.com>
9691
9692         * mono-debug.h: Bumped version number to 47.
9693
9694         * mono-debug-debugger.c
9695         (mono_debugger_event_handler, mono_debugger_event): Take two
9696         guint64 arguments insteed of a gpointer and a guint32.  
9697
9698 2004-12-08  Martin Baulig  <martin@ximian.com>
9699
9700         * debug-mono-symfile.h
9701         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9702         `address' to `native_offset'.
9703
9704 2004-12-08  Martin Baulig  <martin@ximian.com>
9705
9706         * class.c (mono_class_create_from_typespec): Only inflate if we
9707         either have `context->gclass' or `context->gmethod'.
9708
9709 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9710
9711         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9712
9713         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9714
9715         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9716
9717         * reflection.c (mono_assembly_get_object): Remove the workaround put
9718         in for the release.
9719         
9720         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9721
9722         * appdomain.c: Bump corlib version.
9723
9724         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9725         be visible in other appdomains.
9726
9727 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9728
9729         * threads.c: Interlocked inc and dec for longs were messed up,
9730         use a KISS based impl for this. Fixes 70234
9731
9732 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9733
9734         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9735
9736 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9737
9738         * icall.c: fix to follow policy not to allow struct
9739         arguments in icalls.
9740
9741 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9742
9743         * process.c: make the patch that handles spaces in file paths work
9744         on mono/windows too.
9745
9746 2004-12-06  Martin Baulig  <martin@ximian.com>
9747
9748         * class.c (mono_class_create_generic): Call
9749         mono_class_setup_supertypes() if we're dynamic.
9750         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9751
9752 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9753
9754         * object-internals.h: Add new fields to MonoThread.
9755
9756         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9757
9758         * icall.c threads-types.h threads.c: Add new icalls.
9759
9760         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9761
9762         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9763         managed side.
9764
9765         * appdomain.c: Bump corlib version.
9766
9767         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9768         internal assemblies. Fixes #69181.
9769
9770 2004-12-05  Martin Baulig  <martin@ximian.com>
9771
9772         * class.c (mono_class_inflate_generic_signature): Make this a
9773         no-op if `context' is NULL or we don't have any type parameters;
9774         also copy `sentinelpos'.        
9775
9776 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9777
9778         * image.c: Add unbox_wrapper_cache.
9779
9780         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9781
9782         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9783         function generator.
9784         
9785         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9786         Fixes #70173.
9787
9788         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9789         
9790 2004-12-04  Martin Baulig  <martin@ximian.com>
9791
9792         * loader.c (mono_method_get_signature_full): New public function;
9793         like mono_method_get_signature(), but with an additional
9794         `MonoGenericContext *' argument.
9795
9796         * class.c (mono_class_inflate_generic_signature): Formerly known
9797         as inflate_generic_signature(); make this public.
9798
9799 2004-12-04  Martin Baulig  <martin@ximian.com>
9800
9801         * metadata.c
9802         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9803         instead of a `MonoGenericContainer *'.  
9804         (mono_metadata_parse_array_full): Likewise.
9805         (mono_metadata_parse_signature_full): Likewise.
9806         (mono_metadata_parse_method_signature_full): Likewise.
9807         (mono_metadata_parse_generic_inst): Likewise.
9808         (mono_metadata_parse_generic_param): Likewise.
9809         (mono_metadata_parse_mh_full): Likewise.
9810         (mono_type_create_from_typespec_full): Likewise.
9811
9812 2004-12-03  Martin Baulig  <martin@ximian.com>
9813
9814         * class-internals.h (MonoGenericContainer): Replaced the
9815         `MonoGenericContext * pointer with a `MonoGenericContext'
9816         structure and made it the first element.
9817
9818 2004-12-03  Martin Baulig  <martin@ximian.com>
9819
9820         * class.c
9821         (inflate_generic_type): Set the `context->container' when creating
9822         a new MonoGenericContext.
9823         (mono_class_inflate_generic_method): Likewise.
9824         (mono_class_create_from_typespec): Just use `context->container'
9825         to get the container.
9826
9827         * loader.c (method_from_methodspec): Set `context->parent' from
9828         `context->container' - and if that's a method container, use its
9829         parent.  Also set the `context->container' when creating a new
9830         MonoGenericContext.
9831         (mono_get_method_from_token): Use just `context->container' to get
9832         the container.
9833
9834         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9835         `gclass->context->container'.
9836
9837         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9838         the `context->container' when creating a new MonoGenericContext.
9839
9840 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9841
9842         * reflection.c (compare_genericparam): Sort params with identical
9843         owner by their number. Fixes gen-111 on sparc.
9844
9845 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9846
9847         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9848         around the domain changes.
9849
9850         * appdomain.c (mono_domain_unload): Handle the case when the thread
9851         calling Unload is itself being aborted during unloading. Fixes #70022.
9852
9853         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9854
9855         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9856         checkpoint_func as an icall so it gets a wrapper.
9857         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9858         in the cross-appdomain wrappers too.
9859
9860         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9861
9862         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9863
9864         * reflection.c: Fix some memory leaks.
9865         
9866 2004-12-02  Martin Baulig  <martin@ximian.com>
9867
9868         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9869
9870         * metadata.c (generic_class_cache): New static hashtable.
9871         (mono_metadata_lookup_generic_class): New public method.
9872
9873 2004-12-02  Martin Baulig  <martin@ximian.com>
9874
9875         * class.c (mono_class_create_from_typedef): Call
9876         mono_class_setup_parent() and mono_class_create_mono_type() before
9877         parsing the interfaces.
9878
9879 2004-12-02  Martin Baulig  <martin@ximian.com>
9880
9881         * metadata.c (generic_inst_cache): New static hashtable.
9882         (mono_metadata_lookup_generic_inst): New public function.
9883         (mono_metadata_inflate_generic_inst): New public function.
9884         (mono_metadata_parse_generic_inst): New public function.
9885         (do_mono_metadata_parse_generic_class): Use the new
9886         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9887         since this'll also use the cache.
9888
9889         * reflection.c (mono_reflection_bind_generic_method_parameters):
9890         Use mono_metadata_lookup_generic_inst() to use the new cache.
9891
9892         * class.c (inflate_mono_type): Use
9893         mono_metadata_inflate_generic_inst() to inflate a generic
9894         instance; this'll also use the new cache.
9895
9896         * loader.c (method_from_methodspec): Use
9897         mono_metadata_parse_generic_inst() and
9898         mono_metadata_inflate_generic_inst() rather than parsing it
9899         manually, so we can use the new cache.
9900
9901 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9902
9903         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9904         the wait times out.
9905
9906 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9907
9908         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9909         iter->args based on whether parameters are passed in registers (i.e.
9910         MONO_ARCH_REGPARMS is defined)
9911
9912 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9913
9914         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9915         the exception message. Fixes #70070.
9916         (method_from_methodspec): Fix warnings.
9917
9918 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9919
9920         * process.c: (complete_path) return the path quoted
9921
9922 2004-12-01  Martin Baulig  <martin@ximian.com>
9923
9924         * class-internals.h (MonoGenericInst): New structure.
9925         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9926         `is_open' with `MonoGenericInst *inst'.
9927         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9928         `is_open' with `MonoGenericInst *inst'.
9929
9930 2004-11-30  Martin Baulig  <martin@ximian.com>
9931
9932         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9933
9934         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9935         to `generic_class_cache'.
9936
9937         * metadata.c
9938         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9939         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9940         (mono_generic_inst_is_valuetype): Renamed to
9941         mono_generic_class_is_valuetype().
9942
9943         * class-internals.h
9944         (MonoGenericInst): Renamed to MonoGenericClass.
9945         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9946         (MonoClass): Renamed `generic_inst' to `generic_class'.
9947         (MonoGenericContext): Renamed `ginst' to `gclass'.
9948
9949         * object-internals.h
9950         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9951
9952         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9953         mono_reflection_generic_class_initialize().
9954
9955         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9956         now known as "System.Reflection.MonoGenericClass".
9957         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9958
9959 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9960
9961         * class-internals.h: Added a flag field to MonoClass to cache the
9962         declarative security attributes actions associated with the class.
9963         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9964         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9965         applicable to the JITted method.
9966         * reflection.c|h: Added functions to extract (as flags) which security
9967         actions are available (declaratively) for a method, class or assembly.
9968         * metadata.c|h: Added functions to search the declarative security
9969         table in the metadata.
9970         
9971 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9972
9973         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9974         EXPORTEDTYPES are already in the class name cache, so there is no
9975         need to add extra code here to look at them. Just removes a bit of
9976         cruft.
9977
9978         (ves_icall_System_Environment_get_TickCount): No need for #if
9979         WINDOWS. We already have the code in io-layer.
9980
9981 2004-11-28  Martin Baulig  <martin@ximian.com>
9982
9983         * loader.c
9984         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9985         Fixes gen-112.cs.
9986
9987 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9988
9989         * assembly.c (do_mono_assembly_open): Instead of having a
9990         conditional WITH_BUNDLE, incorporate support for bundles here, by
9991         having a global `bundles' variable holding a pointer to the actual
9992         bundles. 
9993
9994         (mono_register_bundled_assemblies): New API call used by the
9995         bundle code. 
9996
9997         See mkbundle.1 for details.
9998         
9999 2004-11-27  Martin Baulig  <martin@ximian.com>
10000
10001         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10002         the vtable for generic methods.
10003
10004 2004-11-26  Martin Baulig  <martin@ximian.com>
10005
10006         * metadata.c
10007         (mono_metadata_generic_method_hash): New public function.
10008         (mono_metadata_generic_method_equal): Likewise.
10009
10010         * class-internals.h
10011         (MonoGenericContainer): Added `GHashTable *method_hash'.
10012
10013         * reflection.c (ReflectionMethodBuilder): Added
10014         `MonoGenericContainer *generic_container'.
10015         (reflection_methodbuilder_to_mono_method): Don't create a new
10016         MonoGenericContainer each time we're called.
10017         (mono_reflection_bind_generic_method_parameters): Use
10018         `container->method_hash' to cache the results so we don't create a
10019         different method if we're called several times with the same
10020         arguments.
10021
10022         * loader.c (method_from_methodspec): Use the new
10023         `container->method_hash' here, too.
10024
10025 2004-11-26  Martin Baulig  <martin@ximian.com>
10026
10027         * class.c (inflate_generic_signature): Correctly compute
10028         `res->has_type_parameters'.
10029         (mono_class_vtable): Use the `has_type_parameters' flag to
10030         determine whether we're a generic method.
10031
10032         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10033
10034 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10035
10036         * object.c (mono_runtime_run_main): Fix a small memory leak.
10037
10038 2004-11-25  Martin Baulig  <martin@ximian.com>
10039
10040         * class.c (set_generic_param_owner): Fixed the loop.
10041
10042 2004-11-25  Martin Baulig  <martin@ximian.com>
10043
10044         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10045         generic methods.
10046
10047 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10048
10049         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10050         names. Fixes #69787.
10051
10052 2004-11-24  Martin Baulig  <martin@ximian.com>
10053
10054         * class.c (mono_class_create_generic_2): If we don't have a
10055         `ginst->parent', inflate `gklass->parent' to get our parent.
10056
10057 2004-11-24  Martin Baulig  <martin@ximian.com>
10058
10059         * reflection.c (compare_genericparam): Correctly sort the
10060         GenericParam table; fixes #69779.
10061
10062 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10063
10064         * reflection.c: When writing a PE file, don't create a huge
10065         buffer in memory. Just write the arrays we have to the file.
10066         This reduces memory usage.
10067
10068         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10069         globally.
10070
10071 2004-11-17  Martin Baulig  <martin@ximian.com>
10072
10073         * class.c (mono_class_init): Don't setup `class->parent' for
10074         dynamic instances; moved this to mono_class_generic_2().
10075         (mono_class_create_generic): Also set `klass->inited' for dynamic
10076         generic instances.
10077         (mono_class_create_generic_2): Don't do anything for dynamic
10078         generic instances.  Set `klass->parent' here and also call
10079         mono_class_setup_parent() here. 
10080
10081         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10082         `MonoType *parent' argument; set `ginst->parent' before calling
10083         mono_class_create_generic_2(), so we set the correct parent.
10084
10085 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10086
10087         * reflection.c: allow getting attributes from ModuleBuilder
10088         (used by ikvm).
10089
10090 2004-11-17  Martin Baulig  <martin@ximian.com>
10091
10092         * class.c (mono_class_create_from_typedef): If a type parameter is
10093         inherited from an outer class, set its owner to that class.
10094
10095 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10096
10097         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10098           for (int*) written size. This fixes bug #69592.
10099
10100 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10101
10102         * icall.c: Added IsAuthenticodePresnet internal call.
10103         * image.c|h: New function that check a MonoImage for an Authenticode
10104         signature in the certificate PE data directory.
10105         * security.c|h: New internal call to ask the runtime if an 
10106         Authenticode signature seems referenced in the PE header.
10107
10108 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10109
10110         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10111
10112         * reflection.c (mono_image_create_pefile): Free the assembly streams
10113         after writing out the assembly file.
10114
10115         * object.c (mono_runtime_run_main): Fix small memory leak.
10116
10117         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10118         property access modifiers. Fixes #69389.
10119
10120 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10121
10122         * domain.c, object.c, object-internals.h, domain-internals.h,
10123         object.h, marshal.c: keep dynamic code info per domain.
10124
10125 2004-11-15  Martin Baulig  <martin@ximian.com>
10126
10127         * class.c (mono_type_get_name_recurse): Put type arguments in
10128         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10129         see bug #68387.
10130
10131 2004-11-15  Martin Baulig  <martin@ximian.com>
10132
10133         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10134         (mono_class_setup_vtable): When computing `the_cname' for a
10135         generic instance, don't include the namespace since we'd otherwise
10136         add it twice.
10137
10138 2004-11-15  Martin Baulig  <martin@ximian.com>
10139
10140         * class.c (mono_class_create_generic): Changed return type to void.
10141         (mono_class_create_generic_2): New public function; setup
10142         `class->method', `class->field' and `class->interfaces' here
10143         instead of in mono_class_init().
10144
10145         * class.h (mono_class_create_generic): Moved to class-internals.h.
10146
10147 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10148
10149         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10150         rather than writing to memory, write to this file. Right now,
10151         we are just writting into a buffer, and copying that. However
10152         we can avoid the buffer later.
10153
10154         (mono_dynamic_stream_reset): new function
10155
10156         * icall.c, object-internals.h: update for the above.
10157
10158 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10159
10160         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10161         have been using gc'd memory. First it is slower, unlikely
10162         the comment in the source code said, secondly, it increases
10163         our footprint to do it in the gc.
10164
10165         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10166         the method so that it does not have to copy to managed code.
10167
10168 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10169
10170         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10171
10172 2004-11-12  Martin Baulig  <martin@localhost>
10173
10174         * reflection.c (mono_image_create_token): Allow generic method
10175         definitions here, since they may appear in an `.override'; see
10176         gen-98/gen-99 for an example.
10177
10178 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10179
10180         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10181         #69365.
10182
10183         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10184         descriptive.
10185
10186 2004-11-11  Martin Baulig  <martin@ximian.com>
10187
10188         * class.c (mono_class_setup_vtable): In an explicit interface
10189         implementation, the method name now includes the arity.
10190
10191 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10192
10193         * object.c (mono_array_full_copy): Fix warning.
10194
10195 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10196
10197         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10198         mono_class_get_method_from_name() instead.
10199         
10200         * class-internals.h: Added two new types of wrappers. 
10201         Added MonoRemotingTarget enum. Added new trampoline function type, which
10202         takes an additional MonoRemotingTarget value as parameter, so it is
10203         possible to request a trampoline for a specific target.
10204         
10205         * class.c: Added new mono_class_get_method_from_name() method.
10206         
10207         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10208         general remoting sinks and one specific for cross domain calls.
10209         
10210         * debug-helpers.c: Added new wrapper names.
10211         
10212         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10213         of a remote class.
10214         
10215         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10216         
10217         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10218         with several other methods (mono_marshal_get_xappdomain_dispatch,
10219         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10220         and others) can generate a fast remoting wrapper for cross domain calls.
10221         More information can be found in docs/remoting.
10222         Other changes: Removed mono_find_method_by_name, and used
10223         mono_class_get_method_from_name instead.
10224         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10225         is stored in the remoting invoke hashtable.
10226         
10227         * marshal.h: published the new method for getting the xdomain wrapper,
10228         and also added a method for getting the adequate wrapper for a given
10229         method and target.
10230         
10231         * object-internals.h, object.c: Added a couple of methods for capying and
10232         cloning arrays.
10233         Modified mono_install_remoting_trampoline, which takes the new remoting
10234         trampoline that has a remoting target as parameter.
10235         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10236         will return the most suitable vtable for the target.
10237         Added mono_remote_class_vtable, which returns the vtable of a remote class
10238         (which can be the normal remoting vtable or the xdomain vtable).
10239         
10240         * threads.c: the xdomain invoke and dispatch wrappers must also be
10241         protected against interruptions.
10242
10243 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10244
10245         * icall.c: use memmove in BlockCopyInternal when the source and
10246         destination arrays are the same.
10247
10248 2004-11-09  Martin Baulig  <martin@ximian.com>
10249
10250         * class-internals.h (MonoGenericContainer): Removed `method' and
10251         `signature', replaced them with `is_method' and `is_signature'
10252         flags.  Added `context'.
10253
10254         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10255         instead of a `MonoGenericContainer *'.
10256
10257         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10258         for dynamic type parameters.
10259         (mono_metadata_load_generic_params): Setup `container->context'.
10260
10261         * reflection.c (mono_reflection_setup_generic_class): Setup
10262         `tb->generic_container->context'.
10263         (do_mono_reflection_bind_generic_parameters): Use
10264         mono_class_inflate_generic_type() to correctly inflate types,
10265         rather than using our own hack just for MONO_TYPE_VAR.
10266
10267 2004-11-09  Martin Baulig  <martin@ximian.com>
10268
10269         * class.c (mono_class_inflate_generic_method): Small fix; don't
10270         crash here.
10271
10272         * icall.c
10273         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10274         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10275         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10276         (ves_icall_Type_BindGenericParameters): Likewise.
10277         (ves_icall_Type_get_IsGenericInstance): Likewise.
10278         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10279         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10280         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10281         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10282
10283 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10284
10285         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10286         assembly versions and public key tokens. Fixes #69113.
10287
10288 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10289
10290         * metadata.c: fix bug introduced with the type cache changes
10291         on 2004-11-06.
10292
10293 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10294
10295         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10296         the MonoClass pointer instead of the token in exception clauses.
10297         * reflection.c: updates for the above and make the code not depend
10298         on the structure of MonoExceptionClause.
10299
10300 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10301
10302         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10303         Add support for dynamic assemblies. Fixes #69114.
10304
10305         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10306
10307 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10308
10309         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10310         since most only those methods use it. the code member of
10311         MonoMethodPInvoke was dead, so that can be removed too. Also,
10312         remove inline_count (again, not used), and move slot so that it
10313         can share bits with some other flags. This saves 8 bytes in the
10314         structure and gives us about 50 kb back for mcs helloworld.cs
10315
10316         * *.[ch]: Do naming changes for the above.
10317
10318         * loader.c (mono_method_get_header): Lazily init the header
10319         on first access.
10320         (mono_get_method_from_token): don't init the header here
10321         (mono_free_method): the header may never be allocated
10322
10323         Overall, this saves 150 kb of unmanaged allocations
10324         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10325         memory at runtime.
10326         
10327         * loader.c, loader.h (mono_method_get_header): new accessor.
10328
10329         * *.[ch]: use the above method. Prepares us to lazily load
10330         the header.
10331
10332         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10333         three warnings, which are actual bugs (see 69206).
10334
10335         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10336         unused. Saves a cool 4 bytes / method.
10337
10338 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10339
10340         * metadata.c (builtin_types): Add types for System.Object here.
10341         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10342         for a class or valuetype from klass->this_arg or klass->byval_arg.
10343
10344         On mcs for a hello world, this gets us down from 21836 MonoType's
10345         to 14560.
10346
10347         (mono_metadata_free_type): Account for the above change.
10348
10349 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10350
10351         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10352         exception instead of asserting if name is null.
10353         (ves_icall_System_AppDomain_GetData): Ditto.
10354
10355 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10356
10357         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10358         EnumBuilder.
10359
10360         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10361         Return NULL when the domain does not have entry_assembly set.
10362
10363         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10364         Add a 'resource_modules' argument.
10365         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10366
10367         * reflection.c (mono_reflection_create_runtime_class): Move setting
10368         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10369         for enums too.
10370
10371         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10372         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10373         Throw an ArgumentNullException if 'ptr' is null.
10374
10375         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10376         assemblies here. Fixes #69020.
10377
10378 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10379
10380         * reflection.c (build_compressed_metadata): Fix the previous patch for
10381         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10382         the stack.
10383
10384 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10385
10386         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10387         the cultures is false. Fixes #69090.
10388
10389         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10390         detected by valgrind.
10391         
10392         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10393         TypeResolve multiple times for the same type. Fixes #65577.
10394
10395 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10396
10397         * marshal.c: Avoid using ldftn to call managed functions. It is
10398         much slower than just a call.
10399
10400         * reflection.c (mono_module_get_object): free the basename we
10401         allocate here from glib.
10402         
10403         * reflection.c (ensure_runtime_vtable): make sure to free
10404         overrides.  Also, we were allocating an array of MonoMethod not an
10405         array of MonoMethod*.
10406
10407         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10408
10409         * image.c (mono_image_close): free image->guid here.
10410
10411 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10412
10413         * reflection.c: Fix some spec conformance issues with the PE file
10414         structures so mcs compiled apps run on the Net 2.0 beta.
10415
10416 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10417
10418         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10419         Implement this. Fixes #67264.
10420
10421         * debug-helpers.h debug-helpers.c marshal.c: Move 
10422         mono_find_method_by_name to debug-helpers.c.
10423
10424 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10425
10426         * object.c (mono_release_type_locks): type_initialization_hash is
10427         a GHashTable.
10428
10429         * reflection.c object.c object-internals.h: Fix warnings.
10430
10431         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10432         without accessors. Fixes #61561.
10433
10434         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10435         application base from the root domain if not set. Fixes #65641.
10436         (mono_runtime_init): Fix warning.
10437
10438 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10439
10440         * appdomain.c: call mono_thread_pool_init.
10441         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10442         of worker threads based on the number of CPUs and the environment
10443         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10444         for non-windows (windows) systems.
10445
10446 2004-10-27  Chris Toshok  <toshok@ximian.com>
10447
10448         * mono-debug-debugger.c (write_class): don't call mono_class_init
10449         here, as even with the check for (!klass->init_pending), we get
10450         into a situation where we're hitting cycles in class
10451         initialization.  Fixes #68816.
10452
10453 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10454
10455         * image.c: Avoid overwriting values in the loaded_images_hash when an
10456         assembly is loaded multiple times. Fixes #61152.
10457
10458         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10459         so multiple satellite assemblies for the same name can be loaded.
10460         Fixes #68259.
10461
10462         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10463         not NULL.
10464
10465         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10466         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10467
10468         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10469         pending finalizers are not invoked after the appdomain has been 
10470         unloaded. Fixes #67862.
10471
10472 2004-10-22  Martin Baulig  <martin@ximian.com>
10473
10474         * mono-debug-debugger.c
10475         (mono_debugger_runtime_invoke): Don't box valuetypes.
10476
10477 2004-10-22  Chris Toshok  <toshok@ximian.com>
10478
10479         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10480         don't hide private methods.
10481
10482 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10483
10484         * icall.c: Allows the runtime to "share" (when known) the public key
10485         token of an assembly. This avoid the need to recalculate the token 
10486         (from the public key) in managed code.
10487
10488 2004-10-21  Chris Toshok  <toshok@ximian.com>
10489
10490         * debug-helpers.c (append_class_name): argh, revert last patch.
10491         
10492 2004-10-21  Chris Toshok  <toshok@ximian.com>
10493
10494         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10495         not '/', so that it matches what the debugger uses to look up
10496         methods.
10497
10498 2004-10-21  Martin Baulig  <martin@ximian.com>
10499
10500         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10501         public method; this is called each time an exception is thrown and
10502         allows the debugger to use exception catch points.
10503
10504 2004-10-21  Martin Baulig  <martin@ximian.com>
10505
10506         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10507         the stack pointer and the exception object in some struct and pass
10508         that to the debugger.
10509
10510 2004-10-21  Chris Toshok  <toshok@ximian.com>
10511
10512         * mono-debug-debugger.c (do_write_class): add instance/static
10513         event support.  We don't expose "raise" or "other" yet.
10514         (event_is_static): new method.
10515
10516 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10517
10518         * mono-debug-debugger.c
10519         (mono_debugger_handle_exception): Remove
10520         bogus return value for fussy compilers.
10521
10522 2004-10-20  Martin Baulig  <martin@ximian.com>
10523
10524         * mono-debug-debugger.c
10525         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10526         (mono_debugger_handled_exception): Likewise.
10527
10528 2004-10-20  Martin Baulig  <martin@ximian.com>
10529
10530         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10531         MONO_DEBUGGER_EVENT_EXCEPTION.
10532
10533         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10534         public function to send the debugger a notification for an
10535         exception and inform it about a catch/finally clause.
10536
10537 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10538
10539         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10540         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10541         fix 2.95 build. 
10542
10543         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10544
10545 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10546
10547         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10548         marshalled as [In,Out]. Fixes #58325.
10549
10550 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10551
10552         * reflection.c (mono_method_body_get_object): Implement some fields.
10553
10554 2004-10-12  Martin Baulig  <martin@ximian.com>
10555
10556         * reflection.c (mono_reflection_bind_generic_parameters): Small
10557         fix, correctly retrieve our parent from a generic instance.
10558
10559 2004-10-12  Martin Baulig  <martin@ximian.com>
10560
10561         * metadata.c (mono_metadata_generic_param_equal): We always have
10562         an owner.
10563
10564         * class.c
10565         (mono_class_from_generic_parameter): We need to have an owner.
10566         (my_mono_class_from_generic_parameter): Likewise.
10567
10568         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10569         mono_reflection_create_generic_class() and added a new
10570         mono_reflection_setup_generic_class().  
10571         (mono_reflection_initialize_generic_param): If we're a nested
10572         generic type and inherited from the containing class, set our
10573         owner to the outer class.
10574
10575 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10576
10577         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10578
10579         * reflection.c (mono_method_body_get_object): New function to create
10580         a MethodBody object.
10581
10582         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10583
10584 2004-10-11  Martin Baulig  <martin@ximian.com>
10585
10586         * metadata.c (_mono_metadata_type_equal): Renamed to
10587         do_mono_metadata_type_equal() and made static.
10588
10589 2004-10-11  Martin Baulig  <martin@ximian.com>
10590
10591         * appdomain.c: Bump corlib version number to 28.
10592
10593 2004-10-10  Martin Baulig  <martin@ximian.com>
10594
10595         * class-internals.h
10596         (MonoGenericInst): Added `MonoGenericContainer *container'.
10597         (MonoGenericMethod): Likewise.
10598         (MonoGenericContext): Likewise.
10599         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10600
10601         * metadata.c
10602         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10603         (do_mono_metadata_parse_generic_inst): Likewise.
10604         (mono_metadata_parse_type_full): New public method.  This is the actual
10605         mono_metadata_parse_type() implementation - with an additional
10606         `MonoGenericContainer *' argument.
10607         (mono_metadata_parse_array_full): Likewise.
10608         (mono_metadata_parse_signature_full): Likewise.
10609         (mono_metadata_parse_method_signature_full): Likewise.
10610         (mono_metadata_parse_mh_full): Likewise.
10611         (mono_type_create_from_typespec): Likewise.
10612         (mono_metadata_interfaces_from_typedef_full): New public method;
10613         this is similar to the other _full() methods, but we take a
10614         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10615         (mono_metadata_parse_generic_param): Take an additional
10616         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10617         from that container.
10618         (mono_metadata_generic_param_equal): New static method to compare
10619         two type parameters.
10620         (_mono_metadata_type_equal): New static method; takes an
10621         additional `gboolean signature_only' argument - if true, we don't
10622         compare the owners of generic parameters.
10623         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10624         with a TRUE argument - do a signature-only comparision.
10625
10626         * loader.c: Use the new _full() methods and pass the
10627         MonoGenericContainer to them.
10628
10629         * object-internals.h (MonoReflectionTypeBuilder): Added
10630         `MonoGenericContainer *generic_container' field.
10631         (MonoReflectionMethodBuilder): Likewise.
10632
10633 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10634
10635         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10636         case initial images of dynamic assemblies.
10637
10638         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10639
10640         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10641
10642         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10643         length of event->other array.
10644         (typebuilder_setup_events): Ditto.
10645
10646         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10647         'assembly_by_name' and add an 'assemblies' list.
10648
10649         * assembly.h assembly.c: Add a new search hook for determining whenever
10650         an assembly is already loaded. Use this instead of searching in the
10651         loaded_assemblies list.
10652
10653         * domain.c appdomain.c: Implement the new search hook so loaded 
10654         assemblies are now scoped by appdomain. Fixes #67727.
10655
10656 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10657
10658         * threads.c (mono_thread_attach): Initialize synch_lock field so
10659         mono_thread_detach works again.
10660
10661         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10662         'lib' too. Fixes #63130.
10663
10664 2004-10-06  Jackson Harper  <jackson@ximian.com>
10665
10666         * culture-info-tables.h: regenerated.
10667
10668 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10669
10670         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10671         implemented by other interfaces in the result. Fixes #65764.
10672         
10673         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10674         Handle unloadable modules without crashing.
10675
10676         * image.c (load_modules): Revert the previous patch since modules must
10677         have a fixed index inside the array.
10678         
10679         * image.c (load_modules): Don't include native modules in the modules
10680         array.
10681
10682 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10683
10684         * reflection.h: Add param_defaults field.
10685
10686         * reflection.c: Add support for parameter defaults in dynamic methods.
10687         Fixes #64595.
10688
10689         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10690         an empty string when a type has no namespace. Fixes #64230.
10691
10692 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10693
10694         * tabledefs.h: Added "internal" security actions to support non-CAS
10695         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10696         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10697
10698 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10699
10700         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10701         constructor of abstract class. Fixes #61689.
10702
10703 2004-10-04  Martin Baulig  <martin@ximian.com>
10704
10705         * class-internals.h (MonoGenericContainer): New type.
10706         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10707         `MonoGenericContainer *generic_container'.
10708         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10709         `MonoGenericContainer *generic_container'.
10710
10711         * metadata.c (mono_metadata_load_generic_params): Return a
10712         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10713         removed the `num' argument.
10714
10715 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10716
10717         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10718         for dynamic images.
10719
10720         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10721         machine fields.
10722
10723         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10724
10725         * reflection.c: Save pe_kind and machine values into the generated
10726         image file.
10727
10728         * appdomain.c: Bump corlib version number.
10729
10730         * object-internals.h: Reorganize layout of LocalBuilder.
10731
10732         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10733         New helper function.
10734
10735         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10736         created MonoType for dynamic types. Fixes #66180.
10737
10738 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10739
10740         * threadpool.c: the ares hashtable needs a critical section around it.
10741         this prevents some nasty segfaults
10742
10743 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10744
10745         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10746         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10747         bug 67324).
10748         
10749 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10750
10751         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10752         
10753 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10754
10755         * image.c: Always canonicalize image file names, to avoid loading
10756         the same assembly twice when referenced using a relative path.
10757
10758 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10759
10760         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10761
10762         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10763
10764         * marshal.c: Fix warnings.
10765
10766 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10767
10768         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10769         attempting to marshal the delegate_trampoline as the method_addr.
10770         This patch has a static hashtable of marshalled delegates so that 
10771         we can map delegate_trampoline addresses back to delegates.  This
10772         allows a delegate passed to managed code to be passed back into native
10773         code.  Fixes #67039
10774
10775 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10776
10777         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10778
10779         * reflection.c (method_encode_code): Align method headers properly.
10780         Fixes #66025.
10781
10782 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10783
10784         * marshal.c: In the runtime invoke wrapper, reset the abort
10785         exception if it is cached. This avoids the automatic rethrowal of 
10786         the exception after the catch of the wrapper. Also check for pending
10787         interruptions before calling the managed method. This is done using
10788         the new method emit_thread_force_interrupt_checkpoint, since the
10789         normal checkpoint method is ignored when running the invoke wrapper.
10790         * object.c: If the abort exception is rethrown, set the abort_exc
10791         field of the thread, so it will be rethrown aftere every catch.
10792         * threadpool.c: Only run an interruption checkpoint if what has been
10793         requested is a stop of the thread (aborts will be ignored).
10794         * threads.c: By default, a thread will now never be interrumped while
10795         running the runtime invoke wrapper (this ensures that runtime_invoke
10796         will always return to the caller if an exception pointer is provided).
10797         There is a new special method mono_thread_force_interruption_checkpoint()
10798         to force an interruption checkpoint even if running a protected
10799         wrapper, which is used by the same runtime invoke wrapper to do a check
10800         at a safe point.
10801
10802 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10803
10804         * object.c, object-internals.h: Implemented mono_release_type_locks,
10805         which releases the cctor locks held by a thread.
10806         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10807         by a thread. Added mono_thread_exit() method to be used to safely stop
10808         a thread.
10809
10810 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10811
10812         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10813         Move null check before dereference.  Avoid indexing beyond the end
10814         of the 'modules' array.
10815
10816 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10817
10818         * metadata-internals.h (MonoImage): Add module_count field.
10819         * image.c (load_modules): Set image->module_count.
10820         (mono_image_load_file_for_image): Use image->module_count.
10821         * reflection.c (mono_image_load_module): Append to image->modules array 
10822         of dynamic assembly.
10823         (mono_module_get_object): Fix loop to actually increment index.
10824         Use image->module_count.
10825         * assembly.c (mono_assembly_load_references): Use image->module_count.
10826         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10827         Likewise.
10828
10829 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10830
10831         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10832         Avoid assert on generic types.
10833
10834 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10835
10836         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10837
10838         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10839
10840         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10841         function to convert a MarshalSpec structure to its managed counterpart.
10842
10843         * reflection.c: Fix warnings.
10844         
10845         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10846         field.
10847
10848         * icall.c (mono_create_icall_signature): Fix build.
10849
10850 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10851
10852         * icall.c: Add MakePointType icall.
10853
10854         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10855         warnings.
10856
10857 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10858
10859         * threadpool.c: reuse allocated slots in the queue.
10860
10861 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10862
10863         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10864
10865         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10866
10867         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10868         previous change.
10869
10870         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10871         ThrowOnUnmappableChar.
10872
10873         * icall.c (ves_icall_Type_GetPacking): New icall.
10874
10875 2004-09-24  Martin Baulig  <martin@ximian.com>
10876
10877         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10878
10879 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10880
10881         * appdomain.c:
10882         (mono_domain_set): allow setting a domain that is being unloaded.
10883         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10884         being unloaded.
10885
10886 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10887
10888         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10889         the GetCustomAttributes icall.
10890
10891 2004-09-23  Martin Baulig  <martin@ximian.com>
10892
10893         * object-internals.h (MonoReflectionGenericParam): Replaced
10894         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10895         with `guint32 attrs'.
10896
10897 2004-09-23  Martin Baulig  <martin@ximian.com>
10898
10899         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10900
10901 2004-09-23  Martin Baulig  <martin@ximian.com>
10902
10903         * object-internals.h (GenericParameterAttributes): New enum.
10904
10905 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10906
10907         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10908         
10909         * class.c (init_events): Fill out event->other field.
10910
10911         * class.c: Fix warnings.
10912
10913         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10914
10915 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10916
10917         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10918         walk which doesn't supply the IL offset.
10919
10920 2004-09-22  Martin Baulig  <martin@ximian.com>
10921
10922         * reflection.c (mono_reflection_setup_internal_class): If we're
10923         System.ValueType, System.Object or System.Enum, set
10924         `klass->instance_size' and create the vtable.
10925         (mono_reflection_create_internal_class): If we're an enum type,
10926         get the base class from our current corlib.
10927
10928 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10929
10930         * reflection.h (MonoResolveTokenError): New type.
10931
10932         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10933         icall.
10934
10935         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10936
10937 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10938
10939         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10940         Support also calling constructors, but only for already allocated objects.
10941
10942 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10943
10944         * reflection.c (type_get_qualified_name): If the klass is null
10945         return the typename to avoid a NullRefEx.
10946         (encode_cattr_value): Get the qualified name of the boxed type,
10947         not the underlying enumtype.  Fixes #62984.
10948
10949 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10950
10951         * marshal.c: Fix problems with previous checkin.
10952
10953 2004-09-21    <vargaz@freemail.hu>
10954
10955         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10956         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10957
10958         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10959
10960 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10961
10962         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10963         should only return a type for pointers, arrays, and passbyref types.
10964         Fixes bug #63841.
10965
10966 2004-09-21  Martin Baulig  <martin@ximian.com>
10967
10968         * domain.c (mono_debugger_check_runtime_version): New public
10969         function.
10970
10971         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10972
10973 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10974
10975         * reflection.c: Added missing sort to the declarative security 
10976         attributes table. MS implementation stops seeing the attributes if the
10977         token number regress in the table (as shown by ildasm and permview).
10978
10979 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10980
10981         * object-internals.h (MonoReflectionModule): Add 'token' field.
10982         
10983         * reflection.c (mono_reflection_get_token): Add support for Module
10984         and Assembly.
10985         (mono_module_get_object): Set 'token' field.
10986         (mono_module_file_get_object): Set 'token' field.
10987
10988         * icall.c: Add new Assembly and Module icalls.
10989
10990         * appdomain.c: Bump corlib version.
10991
10992 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10993
10994         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10995         tokens of metadata objects.
10996
10997         * reflection.h reflection.c (mono_reflection_get_token): New function
10998         to obtain the token of a metadata object.
10999
11000         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11001
11002 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11003
11004         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11005         
11006         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11007
11008 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11009
11010         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11011         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11012         AssemblyBuilder to access the permissions set in the class lib.
11013         * reflection.c: Added security attributes encoding step in 
11014         mono_image_build_metadata.
11015         * tabledefs.h: Added new security actions defined in 2.0:
11016         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11017
11018 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11019
11020         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11021         macro parameter.
11022
11023 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11024  
11025         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11026           finalized. There where random SIGSEVs at program termination, when
11027           an object being finalized was trying to do a string comparison and
11028           the current culture was already finalized.
11029  
11030 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11031
11032         * threads.c: call thread_cleanup before finishing the thread if we get
11033         there.
11034
11035 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11036
11037         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11038         assemblies from the parent. Fixes #65665.
11039
11040 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11041
11042         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11043         modifiers.
11044
11045 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11046
11047         * reflection.h: add prototype for mono_get_dbnull_object
11048         * reflection.c: add prototypes for get_default_param_value_blobs 
11049         and mono_get_object_from_blob for fussier compilers
11050
11051 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11052  
11053         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11054         false deadlock checks in class initialization.
11055  
11056 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11057
11058         * image.c (mono_image_addref): Fix comment.
11059
11060         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11061         possible.
11062
11063 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11064
11065         * reflection.c (mono_param_get_objects): Modified to return
11066         ParameterInfo.DefaultValue object.
11067
11068         (get_default_param_value_blobs):
11069         (mono_get_object_from_blob):
11070         (mono_get_dbnull_object): New helper routines. 
11071
11072         * object.c (mono_get_constant_value_from_blob): New helper routine
11073         carved out from get_default_field_value ()
11074
11075         * object-internals.h (mono_get_constant_value_from_blob): Added
11076         function declaration.
11077
11078 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11079
11080         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11081         referenced assemblies. Fixes #62135.
11082
11083         * exception.h exception.c (mono_get_exception_file_not_found2): New
11084         helper function.
11085
11086 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11087
11088         * class.h class.c: Add mono_type_get_underlying_type ().
11089
11090 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11091
11092         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11093         Fix GetTypes() to support dynamically created assemblies.
11094
11095 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11096
11097         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11098         
11099         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11100         previous patch.
11101
11102         * reflection.h reflection.c loader.c: Allow dynamic construction of
11103         pinvoke methods. Fixes #65571.
11104         
11105         * reflection.c (mono_reflection_get_type): Revert previous change since
11106         it causes regressions.
11107
11108 2004-09-08  Martin Baulig  <martin@ximian.com>
11109
11110         * class.c (class_compute_field_layout): Don't call
11111         mono_class_layout_fields() for open generic instances.
11112
11113 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11114         * threads.c appdomain.c: fix typo in GC macro
11115
11116 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11117
11118         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11119         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11120
11121 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11122
11123         * image.c (mono_image_close): Applied patch from 
11124         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11125         assembly is loaded multiple times from data.
11126         
11127         * image.c (mono_image_open): Fix warning.
11128
11129 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11130
11131         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11132         once. Fixes #58334.
11133         
11134         * reflection.c (mono_reflection_create_runtime_class): Initialize
11135         klass->nested_classes. Fixes #61224.
11136
11137 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11138
11139         * threads.c: sched_yield() on exit, to allow threads to quit.
11140
11141 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11142
11143         * object.c (mono_unhandled_exception): Remove leftover debug code.
11144
11145 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11146
11147         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11148
11149 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11150
11151         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11152         
11153         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11154
11155 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11156
11157         * marshal.c (emit_marshal_array): Null terminate string arrays.
11158         
11159         * marshal.c (raise_auto_layout_exception): Fix warning.
11160
11161         * reflection.c (mono_param_get_objects): Initialize the default value
11162         with DBNull.Value, not null. Fixes #62123.
11163
11164 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11165
11166         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11167         throw an exception with a cute explanation.
11168
11169 2004-09-06  Dick Porter  <dick@ximian.com>
11170
11171         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11172         Close the new process's thread handle, as we don't use it.  The
11173         handle stays around forever otherwise.
11174
11175 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11176
11177         * object.c (arith_overflow): Fix warning.
11178
11179         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11180         calling conventions in method refs. Fixes #65352.
11181
11182         * reflection.c: Fix warnings.
11183
11184 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11185
11186         * icall.c: Add a new icall for Array.Clear
11187
11188 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11189
11190         * object.c: When allocating an array, we have to throw
11191         an overflow exception if any of the lengths are < 0.
11192
11193 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11194
11195         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11196         properly. Also move implementation of string array marshalling to 
11197         managed code. Fixes #42316.
11198
11199 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11200
11201         * assembly.c: provide more information when loading an assembly fails.
11202
11203 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11204
11205         * filewatcher.c: don't expect the development fam package to be
11206         installed.
11207
11208 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11209
11210         * marshal.c: Make a copy of the signature cookie since it will be
11211         freed by the caller.
11212         
11213         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11214
11215         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11216
11217         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11218         marshal specs.
11219
11220         * marshal.c: More refactoring.
11221         
11222         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11223         smaller functions.
11224
11225 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11226
11227         * object.c: In mono_message_invoke, fill the output parameter array after
11228           calling the managed method (it was done before the call). This fixes
11229           bug #59299.
11230
11231 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11232
11233         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11234         as well.
11235
11236 2004-09-02  Martin Baulig  <martin@ximian.com>
11237
11238         * class.c (mono_class_instance_size): Don't allow generic type
11239         definitions or open generic instances.
11240         (mono_class_array_element_size): If we're a value type, call
11241         mono_class_instance_size() on the original class.
11242
11243         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11244         handle generic instances.
11245
11246         * mono-debug-debugger.c (write_type): Handle generic instances
11247         like classes.
11248
11249 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11250
11251         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11252         the allocation request fails. Fixes #65089.
11253
11254         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11255         
11256         * object.c (mono_runtime_free_method): New function to free a dynamic
11257         method.
11258
11259         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11260         delegate trampoline.
11261
11262         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11263         with hasthis as dynamic,
11264
11265         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11266
11267         * domain.c (mono_jit_info_table_remove): New function to remove an
11268         entry from the jit info table.
11269
11270         * class-internals.h (MonoMethod): Add 'dynamic' field.
11271
11272         * loader.c: Fix warnings.
11273
11274 2004-09-01  Martin Baulig  <martin@ximian.com>
11275
11276         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11277         instead of mono_debugger_lock() because the latter one is a no-op
11278         unless running in the debugger.
11279
11280 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11281
11282         * class.c (class_compute_field_layout): Classes with auto-layout or
11283         reference fields are not blittable.
11284         
11285 2004-09-01  Dick Porter  <dick@ximian.com>
11286
11287         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11288         mono_image_get_filename() to get the assembly location.
11289
11290         * icall.c:
11291         * metadata.h: Fix compile warnings
11292
11293 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11294
11295         * class.c (class_compute_field_layout): System.Object is blittable.
11296
11297         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11298         as in/out. Fixes #59909.
11299
11300 2004-09-01  Martin Baulig  <martin@ximian.com>
11301
11302         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11303         mono_metadata_generic_inst_is_valuetype() if we're a generic
11304         instance to check whether our underlying type is a reference type.
11305
11306 2004-09-01  Martin Baulig  <martin@ximian.com>
11307
11308         * metadata.c (mono_type_size): If we're a generic instance, call
11309         mono_class_value_size() for value types.
11310
11311 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11312
11313         * marshal.c: Implement more custom marshalling functionality. Fixes
11314         #64915.
11315
11316 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11317
11318         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11319
11320 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11321
11322         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11323
11324         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11325
11326         * icall.c: Fix some warnings.
11327
11328         * threads.c (abort_appdomain_thread): Fix unref errors.
11329         (mono_thread_current): Fix THREAD_DEBUG define.
11330
11331 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11332
11333         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11334
11335         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11336
11337 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11338
11339         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11340         string arrays.
11341
11342 2004-08-28  Martin Baulig  <martin@ximian.com>
11343
11344         * metadata.c
11345         (mono_metadata_generic_inst_is_valuetype): New public function.
11346
11347         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11348         mono_metadata_generic_inst_is_valuetype() if we're a generic
11349         instance to check whether our underlying type is a valuetype.
11350
11351 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11352
11353         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11354         #63768.
11355
11356 2004-08-25  Martin Baulig  <martin@ximian.com>
11357
11358         * loader.c (mono_get_method_from_token): Abstract methods can also
11359         be generic and thus have type parameters.
11360
11361         * metadata-internals.h
11362         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11363
11364         * reflection.c (mono_image_get_generic_param_info): Don't create a
11365         metadata row, just add an entry to the `gen_params' array.
11366         (build_compressed_metadata): Sort the `gen_params' array and then
11367         actually create the metadata.
11368
11369 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11370
11371         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11372
11373 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11374
11375         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11376
11377 2004-08-24  Martin Baulig  <martin@ximian.com>
11378
11379         * class.cs (mono_class_is_subclass_of): Like an interface, a
11380         generic instance also derives from System.Object.
11381
11382 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11383
11384         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11385         custom modifiers to be in any order. Fixes #61990.
11386
11387 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11388
11389         * object.c: Register mono_object_new_fast icall.
11390         
11391         * object.c (mono_class_get_allocation_ftn): Return to calling
11392         mono_object_new_fast, since it seems faster to compute the object 
11393         size in unmanaged code than passing it as a parameter.
11394
11395         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11396
11397         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11398         this function with Boehm as the oom handler, so we don't have to check
11399         the result of GC_malloc.
11400
11401         * object.c: Remove checks for oom.
11402
11403         * object.h object.c (mono_class_get_allocation_ftn): New function to
11404         return the icall which can be used to allocate an instance of a given
11405         class. 
11406
11407         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11408
11409         * class-internals.h: Add 'enabled' field.
11410
11411 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11412
11413         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11414
11415 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11416         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11417         value 0x0010.
11418
11419 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11420
11421         * appdomain.c: use the Tls function for appdomain too,
11422         at Zoltan's request. Actually return in mono_context_get
11423
11424         * appdomain.c, profiler.c, threads.c: use __thread
11425
11426 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11427
11428         * appdomain.c threads.c: Call GC_CreateThread on windows.
11429
11430         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11431         multiple libraries since this don't work on windows.
11432
11433 2004-08-18  Martin Baulig  <martin@ximian.com>
11434
11435         * class-internals.h
11436         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11437         MonoMethodHeader.
11438
11439         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11440         MonoMethodNormal since we also need it for abstract and interface
11441         methods.
11442
11443         * reflection.c
11444         (build_compressed_metadata): Sort the GenericParam table.
11445         (mono_image_create_token): Added `gboolean create_methodspec'
11446         argument; this is false when generating a MethodImpl token.
11447         (reflection_methodbuilder_to_mono_method): Abstract and interface
11448         methods may also have generic parameters.
11449
11450 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11451
11452         * appdomain.c: thread local alloc
11453
11454 2004-08-17  Martin Baulig  <martin@ximian.com>
11455
11456         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11457
11458         * icall.c
11459         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11460         argument.
11461
11462         * class.c (mono_type_get_full_name): New public function.
11463         (mono_type_get_name): Don't include the type arguments.
11464
11465 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11466
11467         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11468         for inclusion into the mono executable.
11469
11470 2004-08-16  Martin Baulig  <martin@ximian.com>
11471
11472         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11473         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11474
11475 2004-08-14  Martin Baulig  <martin@ximian.com>
11476
11477         * class.c (dup_type): Also copy the `byref' field.
11478
11479 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11480
11481         * reflection.c (create_dynamic_mono_image): Revert the last change 
11482         since it breaks bootstrap.
11483
11484 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11485
11486         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11487
11488         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11489         not free them with g_free.
11490
11491 2004-08-11  Martin Baulig  <martin@ximian.com>
11492
11493         * reflection.c (mono_reflection_setup_internal_class): Also call
11494         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11495
11496 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11497
11498         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11499         called during default (first) AppDomain creation. Keep track of
11500         Evidence when loading assemblies.
11501
11502 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11503
11504         * opcodes.c, opcodes.h: reduce runtime relocations.
11505
11506 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11507
11508         * culture-info.h, locales.c: fixes and chages to sue the new
11509         optimized format of the locale data.
11510         * culture-info-tables.h: regenerated.
11511
11512 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11513         
11514         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11515
11516 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11517
11518         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11519         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11520         * domain-internals.h: icall declaration.
11521         * icall.c: icall registration.
11522         * object-internals.h: New fields in MonoAssembly for CAS.
11523
11524 2004-08-05  Duncan Mak  <duncan@ximian.com>
11525
11526         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11527         CEE_LDELEM_ANY.
11528
11529 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11530
11531         * reflection.c: fix to deal with object[] arrays in custom ctors
11532         (bug #62550).
11533
11534 2004-08-05  Martin Baulig  <martin@ximian.com>
11535
11536         * class.c (mono_class_array_element_size): Added support for
11537         generic instances and correctly handle "recursive" types.
11538
11539 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11540
11541         * assembly.c: Fix warnings.
11542
11543 2004-08-04  Martin Baulig  <martin@ximian.com>
11544
11545         * class.c
11546         (mono_type_get_name_recurse): Added `gboolean include_arity'
11547         argument specifying whether or not we should include the generic
11548         arity in the type name.
11549         (_mono_type_get_name): New static function.
11550         (mono_class_setup_vtable): If we're a generic instance, don't
11551         include the generic arity in the names of explicit method
11552         implementations.        
11553
11554 2004-08-03  Martin Baulig  <martin@ximian.com>
11555
11556         * class.c (mono_type_get_name_recurse): Enclose the generic type
11557         arguments in `<', '>'.
11558
11559 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11560
11561         * gc.c: make GC warning messages use the trace API, they are just
11562         noise to most of the users.
11563
11564 2004-08-03  Martin Baulig  <martin@ximian.com>
11565
11566         * debug-mono-symfile.c (read_string): Correctly read the string.
11567
11568 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11569
11570         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11571         
11572         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11573         icalls.
11574         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11575
11576 2004-07-30  Martin Baulig  <martin@ximian.com>
11577
11578         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11579         Reflect latest symbol writer changes.   
11580
11581 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11582
11583         * object.c: always create an object if null is passed
11584         to Invoke() where a valuetype is expected.
11585
11586 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11587
11588         * marshal.c (mono_marshal_init): make managed
11589         signatures match native ones better for 64bits.
11590
11591 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11592
11593         * appdomain.c: hack to build correctly the private bin path on windows.
11594         Fixes bug #61991.
11595
11596 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11597
11598         * assembly.c: Load mscorlib from the correct framework directory
11599           (mono/<version>/mscorlib.dll).
11600         * appdomain.h: Added prototypes for new functions.
11601         * internals.h: Added some prototypes.
11602         * domain.c: When initializing the runtime, get from the executable and
11603           the configuration files the runtime version that the app supports.
11604           Added support methods for reading app.exe.config. Added list of versions
11605           supported by the JIT. Added two new methods: mono_init_from_assembly,
11606           which initializes the runtime and determines the required version from
11607           the provided exe file, and mono_init_version, which initializes
11608           the runtime using the provided version.
11609         * icall.c: Get machine.config from version-specific directory.
11610         * reflection.c: When generating an image, embed the version number
11611           of the current runtime.
11612
11613 2004-07-28  Dick Porter  <dick@ximian.com>
11614
11615         * socket-io.c
11616         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11617         returned sockaddr size before creating the remote address object.
11618         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11619         61608.
11620
11621 2004-07-28  Dick Porter  <dick@ximian.com>
11622
11623         * locales.c (string_invariant_compare_char): Fix invariant char
11624         compares between upper and lower cases.  Fixes bug 61458.
11625
11626 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11627         
11628         * marshal.c: actually cache stelem.ref wrappers.
11629         
11630 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11631
11632         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11633         sections and remove the mono_cli_rva_map () function.
11634
11635 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11636
11637         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11638         by Geoff Norton (<gnorton@customerdna.com>).
11639
11640 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11641
11642         * class.c: fix class loads for pointer types (typeof(int) !=
11643         typeof(int*)).
11644
11645 2004-07-27  Martin Baulig  <martin@ximian.com>
11646
11647         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11648         reading the debugging information from an external ".mdb" file.
11649
11650 2004-07-24  Martin Baulig  <martin@ximian.com>
11651
11652         * reflection.c (mono_image_get_type_info): Only write a class
11653         layout entry if we actually have a size or a packing size.
11654
11655 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11656
11657         * reflection.c (type_get_fully_qualified_name): 
11658         insert cast to get type checking of ?: with non-gcc compilers
11659
11660 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11661
11662         * rand.c: use g_getenv for both lookups of
11663         MONO_EGD_SOCKET
11664
11665 2004-07-17  Martin Baulig  <martin@ximian.com>
11666
11667         * reflection.c (mono_reflection_bind_generic_method_parameters):
11668         Set `gmethod->reflection_info'.
11669
11670 2004-07-17  Martin Baulig  <martin@ximian.com>
11671
11672         * class.c (mono_class_create_from_typedef): Insert the newly
11673         created class into the hash table before computing the interfaces
11674         since we could be called recursively.
11675
11676 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11677
11678         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11679         function to implement stelem.ref in managed code
11680         * class-internals.h, debug-helpers.c: a new wrapper type
11681         for the above.
11682
11683 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11684
11685         * gc.c: allow GC handles to work even when no GC is compiled in.
11686         Fix part of bug #61134 (GetAddrOfPinnedObject).
11687
11688 2004-07-13  Peter Williams  <peter@newton.cx>
11689  
11690         * process.c (complete_path): Make sure we don't attempt to execute
11691         directories.
11692  
11693 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11694
11695         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11696           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11697           and will add/subtract the hour if needed
11698
11699 2004-07-12  Martin Baulig  <martin@ximian.com>
11700
11701         * reflection.c (mono_field_get_object): If we have
11702         `field->generic_info', take the attributes from
11703         `field->generic_info->generic_type'.    
11704
11705 2004-07-12  Martin Baulig  <martin@ximian.com>
11706
11707         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11708         This function must be called before initializing the runtime.
11709         (mono_debug_init_1): New function; call this after initializing
11710         the runtime, but before loading the assembly.  It tells the
11711         debugger to load corlib and the builtin types.
11712
11713         * mono-debug-debugger.c: Did some larger changes in the debugging
11714         code; support recursive class declarations, make sure we actually
11715         add all classes.
11716
11717 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11718
11719         * debug-helpers.c: undo my previous patch and fixed the real issue in
11720         ../mini/exceptions-x86.c
11721
11722 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11723
11724         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11725         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11726         called from other .cctors.
11727
11728 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11729
11730         * loader.c: Removed the mono_loader_wine_init hack now that we are
11731         doing a managed version of Windows.Forms.
11732
11733 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11734
11735         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11736         threadpool.c, threads.c: remove static data from rootset.
11737
11738 2004-07-09  Dick Porter  <dick@ximian.com>
11739
11740         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11741         Don't do any more processing if the matched length was 0.  It was
11742         increasing the size of the string before.  Fixes bug 61167.
11743
11744 2004-07-09  Dick Porter  <dick@ximian.com>
11745
11746         * socket-io.h:
11747         * socket-io.c
11748         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11749         Add support for SO_PEERCRED if its available.
11750
11751 2004-07-09  Peter Bartok <pbartok@novell.com>
11752         * loader.c: winelib.exe.so error message is now only displayed if
11753         MONO_DEBUG is set. To help us avoid questions when people are trying
11754         out the new Managed.Windows.Forms.
11755
11756 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11757
11758         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11759         for isinst and castclass wrappers.
11760
11761         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11762         to libmetadata from the JIT, so they could be used by the marshalling
11763         code and the interpreter.
11764
11765         * marshal.c: Register marshalling related JIT icalls here instead of
11766         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11767         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11768
11769         * metadata.h: Remove unneeded marshalling conversions.
11770
11771         * opcodes.c: Update for new opcodes.
11772         
11773 2004-07-08  Martin Baulig  <martin@ximian.com>
11774
11775         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11776         (mono_debug_get_domain_data): Make this function static.
11777
11778 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11779
11780         * gc.c, object.h: add nice GC handle API for embedders.
11781
11782 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11783
11784         * reflection.c: more changes for the new api
11785
11786         * object.c: When we reflect on a field w/ a constant value, it
11787         will not have a memory location, so we must access metadata. Also,
11788         allow easier reading of strings so that we can read them from
11789         the constant data.
11790
11791         * class.c (mono_class_layout_fields): no need for literal fields here.
11792
11793         * class-internals.h: api changes for const fields
11794
11795         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11796
11797 2004-07-06  Martin Baulig  <martin@ximian.com>
11798
11799         * mono-debug.h: Increment version number to 44.
11800
11801         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11802         now a gpointer, rewrote this whole method.
11803
11804         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11805         function.  Add information about the wrapper in a new "misc table".
11806
11807         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11808         for the new misc table.
11809
11810 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11811
11812         * metadata-internals.h image.c: Add a cache for helper signatures.
11813
11814         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11815
11816 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11817
11818         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11819         delegates from a delegate. Fixes #61033.
11820         
11821         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11822         marshalling of stringbuilder arrays. Fixes #59900.
11823
11824 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11825
11826         * icall.c: Add EnumBuilder:setup_enum_type icall.
11827
11828 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11829
11830         * icall.c: Added a new icall for the property version of
11831         OffsetOfStringData.
11832
11833 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11834
11835         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11836         it has a constant size across platforms.
11837
11838         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11839         stack trace.
11840
11841 2004-06-29  Martin Baulig  <martin@ximian.com>
11842
11843         * mono-debug.c (mono_debug_add_method): Protect the whole function
11844         in mono_debugger_lock(), not just parts of it.
11845
11846 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11847
11848         * reflection.c: make sure padding bytes in heaps are zeroed.
11849
11850 2004-06-24  David Waite  <mass@akuma.org>
11851
11852         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11853         image.c, loader.c, locales.c, marshal.c, metadata.c,
11854         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11855         string-icalls.c, threads.c: change to C90-style comments from C99 /
11856         C++ -style
11857
11858 2004-06-24  Dick Porter  <dick@ximian.com>
11859
11860         * threads.c
11861         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11862         return createdNew.  Fixes bug 60412.
11863
11864         * threads-types.h: 
11865         * icall.c: Add createdNew parameter to CreateMutex icall
11866
11867 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11868
11869         * reflection.c, object-internals.h: save default value in params.
11870
11871 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11872
11873         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11874         no need to build a new path combining that with the application base.
11875         Fixes bug #60442.
11876
11877 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11878
11879         * reflection.c: fixed minor standard compliance issues.
11880
11881 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11882
11883         * reflection.c: fixed issue with encoding some custom attributes
11884         (arrays in properties and fields, bug #60411).
11885
11886 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11887
11888         * reflection.c: fix start address when copying the public key token.
11889
11890 2004-06-23  Martin Baulig  <martin@ximian.com>
11891
11892         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11893         the `exc' object in a static object to put it into the GC's root set.
11894
11895 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11896
11897         * reflection.c: make mono_reflection_setup_internal_class ()
11898         callable a second time to setup a new parent class.
11899
11900 2004-06-23  Dick Porter  <dick@ximian.com>
11901
11902         * threads.c: Check for WAIT_IO_COMPLETION return values.
11903
11904 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11905
11906         * appdomain.c: Removed the g_free on the public key token. Now copy 
11907         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11908         * assembly.c: Added public key token string value when loading 
11909         assemblies. Fix bug #60439.
11910         * icall.c: Added missing informations (like public key) in 
11911         GetReferencedAssemblies. Fix #60519.
11912         * image.h: Changed definition for public key token from const char*
11913         public_tok_value to guchar public_key_token [17];
11914         * reflection.c: Updated for changes to public key token.
11915
11916 2004-06-22  Lluis Sanchez Gual
11917
11918         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11919         for the field in base classes.
11920
11921 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11922
11923         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11924         mark headers as not supported, they are installed only for use by the
11925         debugger.
11926
11927 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11928
11929         * *.c, *.h: avoid namespace pollution in public headers.
11930
11931 2004-06-21  Martin Baulig  <martin@ximian.com>
11932
11933         * exception.c (mono_get_exception_security): It's in
11934         "System.Security", not in "System".
11935
11936         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11937         the exception classes.
11938
11939 2004-06-21  Martin Baulig  <martin@ximian.com>
11940
11941         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11942         Protect the exception object from being finalized.
11943
11944 2004-06-21  Martin Baulig  <martin@ximian.com>
11945
11946         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11947         public function.
11948
11949 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11950
11951         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11952         if it was not loaded before. Fix parts of #60439.
11953
11954 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11955
11956         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11957         code that was broken since Ben's change: wrappers are now
11958         dependent on the method signature only again.
11959
11960 2004-06-21  Martin Baulig  <martin@ximian.com>
11961
11962         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11963         added interface support.
11964
11965 2004-06-21  Martin Baulig  <martin@ximian.com>
11966
11967         * class.c (mono_vtable_get_static_field_data): New public method.
11968
11969 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11970
11971         * filewatcher.c : Windows build fix to be compliant with API changes.
11972
11973 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11974
11975         * class.h, class.c: more accessors.
11976         * metadata.h, metadata.c: prepare for hiding MonoType and
11977         MonoMethodSignature: people should use the accessors from now on
11978         outside of the tree.
11979
11980 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11981
11982         * *.c, *.h: more API cleanups.
11983
11984 2004-06-18  Jackson Harper  <jackson@ximian.com>
11985
11986         * assembly.c: Trace loading assemblies.
11987         * loader.c: Trace loading native libraries.
11988         * mono-config.c: Trace loading config files.
11989         
11990 2004-06-18  Dick Porter  <dick@ximian.com>
11991
11992         * locales.c: Tell ICU the lengths of strings, it can cope with
11993         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11994
11995 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11996
11997         * image.c: swapped name/filename;
11998
11999 2004-06-18  Martin Baulig  <martin@ximian.com>
12000
12001         * mono-debug-debugger.c (write_class): Write the parent class at
12002         the end of the header.
12003
12004 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12005
12006         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12007
12008 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12009
12010         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12011         (bundle_obj): New conditional define.
12012         (BUILT_SOURCES): Remove.
12013         ($(bundle_srcs)): Make parallel-make safe.
12014         (libmonoruntime_la_LIBADD): Make unconditional.
12015         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12016         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12017
12018 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12019
12020         * culture-info-tables.h: It was inconsistent with the latest
12021           supp info files.
12022
12023 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12024
12025         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12026         be loaded.
12027
12028         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12029         with gcc 2.95.
12030
12031 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12032
12033         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12034         cleaned up public header threads.h.
12035
12036 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12037
12038         * Makefile.am, *.c, *.h: more API cleanups.
12039
12040 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12041
12042         * Makefile.am: removed monosn from compilation.
12043         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12044         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12045         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12046         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12047         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12048         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12049
12050 2004-06-15  Jackson Harper  <jackson@ximian.com>
12051
12052         * assembly.c: Make locales lower case when searching the GAC for
12053         assemblies. gacutil will always make locales lowercase when
12054         installing so this effectively makes them case insensitive.
12055         
12056 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12057
12058         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12059         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12060           parameter which allows to choose whether the wait can be interrupted or 
12061           not. Also added the method mono_monitor_enter(), which locks the monitor
12062           using an infinite wait and without allowing interruption.
12063           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12064           interrupted.
12065         * object.h: Added new fields in MonoThread. suspend_event holds the event
12066           used to susped/resume the thread. synch_lock is the lock object to use for
12067           modifying the thread state.
12068         * threads.c: Use the new synch_lock object for locking, instead of "this",
12069           which can generate deadlocks.
12070           Moved thread state change in Thread.Sleep and Thread.Join from managed
12071           to unmanaged code. This avoids a deadlock when the thread was suspended
12072           just after acquiring the thread lock.
12073           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12074           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12075           which is not fully implemented in the io-layer.
12076         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12077
12078 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12079
12080         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12081         threads-types.h: more API cleanups.
12082
12083 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12084
12085         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12086         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12087         threadpool.c, threads.c: first pass at the exported API cleanup.
12088
12089 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12090
12091         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12092
12093 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12094
12095         * icall.c: added internalGetHome.
12096
12097 2004-06-14  Dick Porter  <dick@ximian.com>
12098
12099         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12100         possible to return successfully when '.' or '..' were the only
12101         entries in a directory, but were skipped.  The MonoIOStat was not
12102         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12103         Fixes bug 59574.
12104
12105 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12106
12107         * reflection.c: make binaries run on .Net 1.1 by default.
12108
12109 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12110
12111         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12112
12113 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12114
12115         * marshal.c: keep track of struct size with explicit layout
12116         (bug #59979).
12117
12118 2004-06-12  Martin Baulig  <martin@ximian.com>
12119
12120         * mono-debug-debugger.c: Comment out a debugging g_message().
12121
12122 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12123
12124         * reflection.c, reflection.h: do not free custom attrs that are cached.
12125         * icall.c: use braces to make code clearer.
12126
12127 2004-06-11  Martin Baulig  <martin@ximian.com>
12128
12129         * class.h (MonoInflatedField): New type.
12130         (MonoClassField): Replaced `MonoType *generic_type' with
12131         `MonoInflatedField *generic_info'.
12132
12133         * icall.c
12134         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12135
12136 2004-06-11  Martin Baulig  <martin@ximian.com>
12137
12138         * reflection.c (mono_image_create_method_token): Correctly encode
12139         varargs methods.
12140
12141 2004-06-11  Martin Baulig  <martin@ximian.com>
12142
12143         * metadata.c (mono_metadata_parse_method_signature): When parsing
12144         a MethodDef which has VarArgs, also set sentinelpos if we don't
12145         have any parameters.
12146
12147 2004-06-11  Martin Baulig  <martin@ximian.com>
12148
12149         * verify.c (mono_method_verify): In CEE_CALL, use
12150         mono_method_get_signature() to get the method's signature, unless
12151         we're a PInvoke method.
12152
12153 2004-06-10  Jackson Harper  <jackson@ximian.com>
12154
12155         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12156         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12157         logical name as the supplied path is just a prefix to the gac not
12158         the direct path to it.
12159         
12160 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12161
12162         * reflection.c: make the token for a created method match
12163         the token of the MethodBuilder it was created from
12164         (IKVM requires this behaviour now).
12165
12166 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12167
12168         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12169         reflection.c, socket-io.c: leak fixes.
12170
12171 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12172
12173         * icall.c: handle sentinel pos in vararg methods in position different
12174         from 0.
12175
12176 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12177
12178         * culture-info-tables.h: freshly generated.
12179
12180 2004-06-09  Martin Baulig  <martin@ximian.com>
12181
12182         * loader.c (mono_get_method_constrained): Call `mono_class_init
12183         (constrained_class)'.   
12184
12185 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12186
12187         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12188         any methods. Fixes #59629.
12189
12190 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12191
12192         * culture-info-tables.h: reflecting locale-builder updates.
12193
12194 2004-06-08  Dick Porter  <dick@ximian.com>
12195
12196         * object.h:
12197         * locales.c: Fixed compile warnings, including a real bug in
12198         CompareInfo_internal_compare.
12199         
12200 2004-06-08  Dick Porter  <dick@ximian.com>
12201
12202         * locales.c
12203         (ves_icall_System_Globalization_CompareInfo_internal_index):
12204         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12205         Double-check the resuls of usearches, because ICU currently
12206         ignores most of the collator settings here.  Fixes bug 59720.
12207         
12208 2004-06-08  Dick Porter  <dick@ximian.com>
12209
12210         * locales.c
12211         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12212         Fix memory leak and segfault-causing typo.  No idea how this one
12213         lasted so long without being noticed.
12214
12215 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12216
12217         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12218         any methods. Fixes #59629.
12219
12220 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12221
12222         * assembly.c:
12223         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12224         own the critical section before). Removed dead code (that's done
12225         in the preload hook).
12226
12227         (mono_assembly_load_with_partial_name): call the preload hook.
12228
12229 2004-06-08  Martin Baulig  <martin@ximian.com>
12230
12231         * metadata.c (mono_metadata_signature_alloc): Default
12232         `sentinelpos' to -1.
12233
12234         * reflection.c (mono_image_get_array_token): Likewise.
12235
12236 2004-06-08  Martin Baulig  <martin@ximian.com>
12237
12238         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12239
12240         * metadata.c (mono_metadata_parse_method_signature): When parsing
12241         a MethodDef which has VarArgs, set sentinelpos.
12242
12243         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12244         `gint16' since we're using -1 for non-varargs methods.
12245
12246         * reflection.c
12247         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12248         (method_encode_signature): Added varargs support.
12249         (method_builder_encode_signature): Likewise.
12250         (mono_image_get_varargs_method_token): New static method.
12251         (mono_image_create_method_token): New public method; this is
12252         called via an icall instead of mono_image_create_token() when
12253         calling a varargs method.       
12254
12255 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12256
12257         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12258
12259 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12260
12261         * culture-info-tables.h : Reflecting the latest locale-builder that
12262           fixed empty array representation ({} to {0}).
12263
12264 2004-06-07  Jackson Harper  <jackson@ximian.com>
12265
12266         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12267         looking up extra gac paths. This allows MONO_GAC_PATH to act
12268         exactly like a prefix.
12269         
12270 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12271
12272         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12273         type name before modifying it. Fixes #59405.
12274
12275 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12276
12277         * culture-info.h: added fields for "all datetime patterns".
12278         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12279           _construct_datetime_format ()): fill xxx_patterns fields.
12280         * object.h: added fields for "all datetime patterns" to
12281           MonoDateTimeFormatInfo.
12282         * culture-info-tables.h: reflecting locale-builder updates.
12283
12284 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12285
12286         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12287         the event has no add and remove methods. Fixes #59629.
12288
12289 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12290
12291         * object.c: Fixed possible integer overflow when allocating large
12292         strings.
12293
12294 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12295
12296         * culture-info-tables.h: reflecting locale-builder updates.
12297
12298 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12299
12300         * culture-info-tables.h: reflecting locale-builder updates.
12301
12302 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12303
12304         * culture-info-tables.h: reflecting locale-builder updates.
12305
12306 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12307
12308         * threads.c: Made Thread.Sleep abortable.
12309
12310 2004-06-02  Martin Baulig  <martin@ximian.com>
12311
12312         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12313
12314         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12315
12316 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12317
12318         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12319
12320 2004-05-30  Jackson Harper  <jackson@ximian.com>
12321
12322         * reflection.c: Do not hardcode assembly versions or public key
12323         tokens anymore. All of this except the corlib section was dead
12324         code anyways.
12325         
12326 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12327
12328         * object.c (mono_runtime_invoke_array): Automatically create boxed
12329         objects for byref valuetypes if needed. Fixes #59300.
12330         
12331         * object.c (mono_method_return_message_restore): Handle 
12332         MONO_TYPE_OBJECT as well.
12333
12334 2004-05-28  Jackson Harper  <jackson@ximian.com>
12335
12336         * reflection.c: The modified type encoding was causing build
12337         problems. Reverted for now.
12338         
12339 2004-05-28  Jackson Harper  <jackson@ximian.com>
12340
12341         * reflection.c/h: Take an assembly ref so that we dont create
12342         fully qualified names when encoding types in the same assembly as
12343         the custom attribute being emitted.
12344         * appdomain.c: Increment version number.
12345         
12346 2004-05-26  Duncan Mak  <duncan@ximian.com>
12347
12348         * icall.c
12349         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12350         Set the full version number (major, minor, build, revision).
12351
12352 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12353
12354         * marshal.c (emit_struct_conv): increment src/dst after blit
12355         (mono_marshal_get_managed_wrapper,
12356         mono_marshal_get_native_wrapper): make sure we have marshalling
12357         info before marshalling params (info computation affects
12358         blittable)
12359
12360         * class.c (class_compute_field_layout): correctly deal with
12361         blittable
12362         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12363         value types (as per what windows dows by default)
12364         (mono_class_setup_mono_type): System.ValueType is blittable
12365         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12366         blittable
12367
12368         * marshal.c (mono_marshal_load_type_info): flag types  as
12369         non-blittable if the native layout doesn't match the managed
12370         layout
12371
12372 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12373
12374         * appdomain.c: don't add stuff in the private search path that is
12375         above the application base. If application base is not set, there's
12376         no private search path.
12377
12378 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12379
12380         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12381         byref struct arguments in native->managed marshalling.
12382
12383 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12384
12385         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12386         cache methods using signature (special case for methods
12387         that are value type or string class)
12388         
12389         * image.c (mono_image_close): clean up allocated GSList's
12390         in runtime_invoke_cache.
12391
12392 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12393
12394         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12395         there's no MONO_CFG_DIR environment variable defined.
12396
12397 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12398
12399         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12400
12401 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12402
12403         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12404           is interrumped.
12405         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12406           before waiting for it, and call CloseHandle after the wait to unref it.
12407           This will make sure that handles are not disposed too early.
12408
12409 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12410
12411         * appdomain.c:
12412         * appdomain.h:
12413         * icall.c: removed
12414         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12415         needed now.
12416
12417         * object.c: se the application_base only for the domain that runs
12418         Main. Fixes bug #59216,
12419
12420 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12421
12422         * appdomain.c:
12423         * object.c: only the domain in which Main is run have
12424         SetupInformation.ConfigurationFile set, so moved a few lines from
12425         appdomain.c to object.c.
12426
12427 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12428
12429         * appdomain.c: we tried to load [name].(dll|exe), but according
12430         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12431         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12432         There's a test case attached to bug #58922.
12433
12434 2004-05-27  Dick Porter  <dick@ximian.com>
12435
12436         * icall.c:
12437         * file-io.c: Implemented icalls for locking and unlocking regions
12438         in a file.
12439         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12440         FALSE on error (fixes both compiler warning and real bug.)
12441
12442 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12443
12444         * culture-info-tables.h: reflecting locale-builder updates.
12445
12446           (Added missing ChangeLog entry for 05/26)
12447
12448 2004-05-27  Jackson Harper  <jackson@ximian.com>
12449
12450         * locales.c: Fix some cut and paste errors.
12451         
12452 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12453
12454         * mono-config.c: set the correct path for config. directory on windows.
12455
12456 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12457
12458         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12459           on win32.
12460
12461 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12462
12463         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12464         from pinvoke functions.
12465         
12466         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12467
12468 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12469
12470         * culture-info-tables.h: reflecting locale-builder updates.
12471
12472 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12473
12474         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12475         #59086.
12476
12477 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12478
12479         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12480         * icall.c: Modified icalls for RNG.
12481         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12482         Windows (CryptoAPI).
12483
12484 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12485
12486         * locales.c: Fix build.
12487
12488 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12489
12490         * culture-info-tables.h: reflecting locale-builder updates.
12491
12492 2004-05-25  Jackson Harper  <jackson@ximian.com>
12493
12494         * locales.c: When creating the current culture use the $LANGs
12495         specific culture. So DateTimeFormat and NumberFormat entries are created.
12496         
12497 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12498
12499         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12500         a char array as parameter.
12501
12502 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12503
12504         * image.c: In mono_image_open(), always use an absolute path name to
12505           look for already loaded images.
12506
12507 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12508
12509         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12510         missing in the windows build (like older cygwin include files).
12511
12512 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12513
12514         * icall.c: Fixed check for possible integer overflow in Buffer_
12515         BlockCopy icall. Replaced comments style // by /* */.
12516
12517 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12518
12519         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12520         
12521         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12522         check after MONO_VTADDR. Fixes pinvoke2.exe.
12523
12524         * marshal.h marshal.c metadata.h: Add beginnings of support for
12525         ftnptr -> delegate marshalling.
12526
12527 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12528
12529         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12530         * threads.c: Fix warnings.
12531
12532 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12533
12534         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12535         * icall.c: Registered icalls for Suspend and Resume.
12536         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12537           Thread.Abort.
12538         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12539         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12540         * process.c: Use WaitForSingleObjectEx.
12541         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12542           checkpoints.
12543         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12544           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12545           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12546           background threads. Added basic support for Abort in Windows.
12547           Start new threads using a managed delegate invoke wrapper. This wrapper
12548           has an interruption checkpoint that is needed since an interruption
12549           can be requested before the thread leaves the unmanaged code that starts 
12550           the thread.
12551         * marshal.c: Added interruption checkpoint after every native call, and
12552           also before managed calls for wrappers called from unmanaged code to
12553           go into managed code.
12554         * object.h: Added new field in MonoThread to keep track of interruption
12555           requests.
12556
12557 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12558
12559         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12560         calls.
12561
12562 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12563
12564         * appdomain.c:
12565         * assembly.c:
12566         * gc.c:
12567         * locales.c:
12568         * mono-config.c:
12569         * rand.c: getenv -> g_getenv (windows!)
12570
12571         * process.c: complete_path is also used on non-windows platforms.
12572
12573 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12574
12575         * icall.c: new signature for Process_Start.
12576
12577         * process.[ch]: new signature for Process_Start. If we're on windows
12578         and UseShellExecute is false, we have to search for the program by
12579         ourselves if we don't get a full path.
12580
12581 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12582
12583         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12584         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12585
12586 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12587
12588         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12589         Fixes bug #58373.
12590
12591 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12592
12593         * process.c: use double quotes to quote program name and arguments on
12594         windows. Fixes bug #58575.
12595
12596 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12597
12598         * file-io.c: don't return "." and ".." when using windows Find*File.
12599
12600 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12601
12602         * marshal.c: Don't pass wrappers to message init because method 
12603         addressed used to lookup metadata. part of remoting[2|3] fix.
12604
12605 2004-05-15  Jackson Harper  <jackson@ximian.com>
12606
12607         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12608         path is essentially the same as MONO_PATH except that it points to
12609         GACs instead of lib directories.
12610         * loader.h: The user gac is gone so we dont need function to
12611         enable/disable it.
12612         * mono-config.c: user gac option is now gone.
12613         
12614 2004-05-15  Jackson Harper  <jackson@ximian.com>
12615
12616         * culture-info.h: Make defines more consistent, add calendar data
12617         to the culture info table.
12618         * culture-info-tables.h: Add basic calendar data. Basically
12619         everyone gets default gregorian until all the data is
12620         updated.
12621         * locales.c: Use the new consistent defines. Set calendar data for
12622         culture info objects.
12623         * object.h: add a field for calendar data to CultureInfo
12624         
12625 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12626
12627         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12628         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12629         a signature.
12630         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12631         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12632         an extra param that is the pointer of the method to invoke. The IL for
12633         the invoke method is no longer specific to the method, but to the
12634         signature of the method. Thus, we can share the same code for multiple
12635         methods. This reduces the number of methods that have to be compiled.
12636
12637 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12638
12639         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12640
12641         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12642
12643         * icall.c: Optimize Buffer.BlockCopy.
12644
12645 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12646
12647         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12648         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12649         quote). Changed them to "MMMM yyyy".
12650
12651 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12652
12653         * rand.c
12654         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12655
12656 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12657
12658         * reflection.h: Updated after changes to managed structures.
12659
12660         * appdomain.c: Bump corlib version.
12661
12662 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12663
12664         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12665         windows.
12666
12667 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12668
12669         * Makefile.am: link to ../os/libmonoos.la on windows.
12670
12671         * assembly.c:
12672                 -If MONO_DEBUG, warn about non-existing directories in
12673                 MONO_PATH.
12674                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12675                 compile time variable.
12676                 -Removed init_default_path and call mono_set_rootdir from
12677                 libmonoos.a instead (windows only).
12678
12679         * assembly.h: declare mono_assembly_getrootdir().
12680
12681         * domain.c:
12682         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12683
12684         * loader.c: s/getenv/g_getenv/
12685
12686 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12687
12688         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12689
12690         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12691
12692         * metadata.h: Add new marshalling conversions.
12693
12694         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12695         function.
12696
12697         * reflection.c (mono_reflection_get_type): Lookup the type in all
12698         modules of a multi-module assembly. Fixes #58291.
12699
12700 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12701
12702         * threads.c: Before aborting a background, set the StopRequested
12703         state.  This avoids throwing the Abort exception.
12704         In mono_thread_manage, don't continue with the shutdown until all
12705         aborted threads have actually stopped.
12706
12707 2004-05-10  Jackson Harper  <jackson@ximian.com>
12708
12709         * locales.c: Remove the modifier from culture names.
12710         
12711 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12712
12713         * Makefile.am: monosn is not installed any more. It has been deprecated
12714         in favor of sn.
12715
12716 2004-05-07  Jackson Harper  <jackson@ximian.com>
12717
12718         * locales.c
12719         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12720         Fix array construction, add bailout if the length is 0.
12721
12722 2004-05-07  Dick Porter  <dick@ximian.com>
12723
12724         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12725         machine doesn't have a DNS entry.  Patch by Urs Muff
12726         (umuff@quark.com), fixes bug 57928.
12727
12728 2004-05-06  Jackson Harper  <jackson@ximian.com>
12729
12730         * reflection.c: Handle null PublicTokens properly. alloc mem for
12731         assembly names culture so we dont crash when freeing it.
12732         
12733 2004-05-06  Jackson Harper  <jackson@ximian.com>
12734
12735         * assembly.c: Check the usergac when loading with partial names.
12736         
12737 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12738
12739         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12740         does nothing for now (not required for Linux/Windows) but the class
12741         library can call it (and a newer or modified runtime could need it).
12742         * icall.c: Registred icall.
12743
12744 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12745
12746         * loader.c: prints a message on module loading error we set MONO_DEBUG
12747         environment variable.
12748
12749 2004-05-05  Jackson Harper  <jackson@ximian.com>
12750
12751         * appdomain.c: Handle PublicKeyToken=null properly.
12752         
12753 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12754
12755         * environment.c|h: Added icall ves_icall_System_Environment_
12756         GetOSVersionString to get the current OS version as a string.
12757         * icall.c: Registred icall.
12758
12759 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12760
12761         * object.c: in mono_object_get_virtual_method(), take into account that
12762         non-virtual methods don't have a slot in the vtable. Check needed when
12763         the object is a proxy.
12764
12765 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12766
12767         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12768         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12769
12770         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12771
12772         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12773         passed when a valuetype is expected.
12774
12775         * object.c (mono_unhandled_exception): Only set the exit code if the
12776         exception happens in the main thread. Fixes thread5.exe.
12777
12778         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12779         invalid names. Fixes #58047.
12780
12781 2004-05-03  Jackson Harper  <jackson@ximian.com>
12782
12783         * assembly.c: This line was committed accidently and is unneeded.
12784         
12785 2004-05-03  Jackson Harper  <jackson@ximian.com>
12786
12787         * icall.c: Add new icall for Assembly::LoadWithPartialName
12788         * assembly.c/.h: new function that probes the GAC to load partial
12789         assembly names by Paolo Molaro.
12790         
12791 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12792
12793         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12794         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12795         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12796         full type name.
12797
12798 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12799
12800         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12801         * reflection.c: fix bug when parsing a full type name and Version is not
12802         the last thing in the string.
12803
12804 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12805
12806         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12807         crashes when it is freed.
12808
12809 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12810
12811         * assembly.c: print the compat warning to stderr.
12812
12813 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12814
12815         * assembly.c (mono_assembly_load_references): Add a compatibility
12816         hack to run old applications that might be still referencing the
12817         3300-based assemblies, only do this for System.xxx.
12818
12819 2004-05-01  Jackson Harper  <jackson@ximian.com>
12820
12821         * appdomain.c: If the culture is neutral we set it to "".
12822         
12823 2004-04-29  Jackson Harper  <jackson@ximian.com>
12824
12825         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12826
12827 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12828  
12829         * string-icalls.c: added low overhead function for copying chars
12830         * icall.c: added needed icall for the above function
12831  
12832 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12833
12834         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12835         Environment.GetLogicalDrives.
12836
12837 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12838
12839         * rand.c: try and talk to egd or prngd
12840         for random bytes if opening devices fail.
12841
12842 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12843
12844         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12845         alignment for the type using the native alignment of its members 
12846         instead of using klass->min_align.
12847
12848         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12849
12850 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12851
12852         * file-io.c:
12853         * socket-io.c: added check for sys/aio.h.
12854
12855 2004-04-28  Dick Porter  <dick@ximian.com>
12856
12857         * threads.c: Don't abort a thread thats already aborting, when
12858         terminating everything.
12859
12860 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12861
12862         * icall.c: added 2 new async calls for Socket.
12863
12864         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12865         IO on *nix systems.
12866
12867         * threadpool.c: removed unused variable.
12868
12869 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12870
12871         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12872
12873 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12874
12875         * locales.c: put back string_invariant_tolower () and
12876         string_invariant_toupper ().
12877
12878 2004-04-26 David Waite <mass@akuma.org>
12879
12880         * file-io.h:
12881         * socket-io.h:
12882         * threads.h:
12883         * unicode.h: remove comma from end of enumeration declarations
12884
12885 2004-04-26 David Waite <mass@akuma.org>
12886
12887         * debug-mono-symfile.h:
12888         * decimal.c:
12889         * mono_debug.h:
12890         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12891
12892
12893 2004-04-26  Jackson Harper  <jackson@ximian.com>
12894
12895         * appdomain.c: Increment version number.
12896         
12897 2004-04-26  Jackson Harper  <jackson@ximian.com>
12898
12899         * appdomain.c: Set assembly references public token value when
12900         PublicKeyToken is specified, not the hash_value. Free public token
12901         values when free assembly name data. Previously the public key
12902         token was hex decoded, however we are using hex encoded public key
12903         tokens, so this is not neccasary.
12904         * assembly.c: Lookup assemblies in the gac if their public token
12905         value is set. Add function to allow enabling user gac
12906         lookups. Specify whether or not the assembly was loaded from the
12907         GAC. Compare full assembly names when checking the cache for
12908         assemblies (Temporarily disabled see comment in code). Remove
12909         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12910         specifies trace-loader they get extra info to stdout on the
12911         loading of assemblies.
12912         * image.h: Add a field for an assembly references public token
12913         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12914         whether an assembly has been loaded from the GAC.
12915         * image.c: Remove a corlib -> mscorlib name mapping.
12916         * loader.h: Add function to enable/disable the user gac.
12917         * mono-config.c: Check if the usergac is enabled in the config
12918         file.
12919         * icall.c: New icall to determine whether or not an assembly has
12920         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12921         * tabldefs.h: Add constant for assemblyref flag that specifies a
12922         full public key is used instead of a public token.
12923         * reflection.c: Remove mscorlib -> corlib mappings. Set
12924         PublicTokenValue instead of hash value. This value is a hex
12925         string so it does not need to be expanded.
12926
12927 2004-04-26  Martin Baulig  <martin@ximian.com>
12928
12929         * mono-debug-debugger.c (mono_debugger_initialize): Set
12930         `mono_debugger_initialized' before calling mono_debug_lock().
12931
12932 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12933
12934         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12935           InternalToUpper/InternalToLower.
12936         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12937           removed invariant culture shortcut.  This is now done in managed code.
12938         * locales.c: (string_invariant_toupper/tolower) removed.
12939
12940 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12941
12942         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12943         Added Poll internal call.
12944
12945         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12946         call for Poll. Select was too heavy for polling a single socket.
12947
12948         * threadpool.[ch]: added mono_threadpool_cleanup.
12949         * threads.c: use it. Don't use Thread_Abort on windows.
12950
12951 2004-04-23  Martin Baulig  <martin@ximian.com>
12952
12953         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12954
12955 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12956
12957         * icall.c: Registred new icalls for key pair protection and added an
12958         icall for Environment.GetFolderPath on Windows.
12959         * security.c|h: Added new icalls for key pair protection.
12960
12961 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12962
12963         * socket-io.c: don't display the non-supported family warning for known
12964         families. Now this is not displayed on windows when checking support
12965         for IPv4/IPv6.
12966
12967 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12968
12969         * class.c: don't display the layout warning for static fields.
12970
12971 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12972
12973         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12974         * locales.c, locales.h: Added new icalls for culture-specific
12975         Char.ToLower and Char.ToUpper.
12976
12977 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12978
12979         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12980         by David Waite.
12981
12982 2004-04-20  Martin Baulig  <martin@ximian.com>
12983
12984         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12985         of the type name before passing it to mono_reflection_type_from_name().
12986
12987 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12988
12989         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12990         encodings here. Fixes #56965.
12991
12992 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12993
12994         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12995         fix test on strstr result not that I can see anything that
12996         relies on the result.
12997
12998 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12999
13000         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13001         Fixes #57081.
13002
13003         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13004
13005         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13006         function to determine which marshalling to use for strings. Fixes
13007         #56965.
13008
13009         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13010
13011         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13012
13013 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13014
13015         * icall.c: #include mono-config.h
13016
13017 2004-04-15  Jackson Harper  <jackson@ximian.com>
13018
13019         * culture-info-tables.h: Fix date formats for en-US culture.
13020         
13021 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13022
13023         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13024         ThreadPool.SetMinThreads.
13025         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13026         ThreadPool.SetMinThreads.
13027
13028 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13029
13030         * mono-config.c: also load the .config file in the directory
13031         where the assembly was found.
13032
13033 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13034
13035         * assembly.c: load per-assembly config files.
13036         * icall.c: decrapified code to get the config dir and moved to
13037         mono-config.c.
13038         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13039         per-assembly config files. When doing a dll map lookup give precedence
13040         to the per-assembly data.
13041
13042 2004-04-14  Martin Baulig  <martin@ximian.com>
13043
13044         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13045         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13046         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13047
13048         * mono-debugger-debugger.c: While the debugger is locked, remember
13049         whether the symbol tables have changes and send one single
13050         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13051
13052 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13053
13054         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13055
13056         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13057         function.
13058
13059         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13060         account when marshalling string arrays. Fixes #56965.
13061
13062 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13063
13064         * icall.c: Add new icalls mapping for security.
13065         * security.c|h: Add internal calls for WindowsIdentity,
13066         WindowsImpersonationContext and WindowsPrincipal.
13067
13068 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13069
13070         * class.c: Added comment to ensure the System.MonoDummy class
13071         is removed when no longer necessary
13072
13073 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13074
13075         * appdomain.c: Pass arguments to the bootstraping exceptions to
13076         minimize JITed methods at boot
13077
13078         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13079         second string to be null.
13080
13081         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13082         Change the protocol to minimize the JIT methods at startup.  Now
13083         it Returns the internal codepage, if the value of "int_code_page"
13084         is 1 at entry, and we can not compute a suitable code page
13085         number, returns the code page as a string.
13086
13087 2004-04-13  Jackson Harper  <jackson@ximian.com>
13088
13089         * culture-info-tables.h: Fix number of decimal digits for all
13090         english locales.
13091
13092 2004-04-13  Jackson Harper  <jackson@ximian.com>
13093
13094         * icall.c: Clairfy out of sync error message. It is not always
13095         your corlib that is out of sync.
13096
13097 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13098
13099         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13100         properties when only the set accessor is overriden. Fixes #55874.
13101
13102 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13103
13104         * assembly.c (mono_assembly_load_references): Make this thread safe.
13105         Fixes #56327.
13106
13107 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13108
13109         * monosn.c: Add missing initialization calls.
13110
13111 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13112
13113         * locales.c:
13114         ves_icall_System_Globalization_CultureInfo_construct_number_format
13115         Fix g_assert so it compiles on fussier compilers re int/ptr
13116         mismatch
13117
13118 2004-04-08  Dick Porter  <dick@ximian.com>
13119
13120         * socket-io.h:
13121         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13122         53992.  Also rearrange the code so that the internal calls return
13123         an error value and exceptions are thrown from managed code.
13124
13125         * icall.c: Add type info to the socket icalls.
13126
13127 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13128
13129         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13130         owes me a beer.
13131
13132 2004-04-07  Martin Baulig  <martin@ximian.com>
13133
13134         * class.c (mono_class_from_generic_parameter): Don't default
13135         `klass->parent' to `mono_defaults.object_type'.
13136
13137 2004-04-07  Martin Baulig  <martin@ximian.com>
13138
13139         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13140         `param->pklass->reflection_info'.       
13141
13142 2004-04-07  Jackson Harper  <jackson@ximian.com>
13143
13144         * culture-info-tables.h: Fix date separator symbol.
13145         
13146 2004-04-07  Martin Baulig  <martin@ximian.com>
13147
13148         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13149         from System.Type to System.MonoType.
13150
13151 2004-04-07  Martin Baulig  <martin@ximian.com>
13152
13153         * reflection.h
13154         (MonoReflectionGenericParam): Added `has_reference_type' and
13155         `has_value_type' fields.
13156
13157         * reflection.c (mono_image_get_generic_param_info): Encode the
13158         correct flags if we have the `class' or `struct' constraint.
13159
13160 2004-04-07  Martin Baulig  <martin@ximian.com>
13161
13162         * reflection.h
13163         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13164
13165 2004-04-07  Jackson Harper  <jackson@ximian.com>
13166
13167         * appdomain.c: Revert extra patches, just wanted to bump the
13168         version number.
13169         
13170 2004-04-07  Jackson Harper  <jackson@ximian.com>
13171
13172         * Makefile.am: Add culture-info private headers.
13173         * icall.c: Add new icalls for contructing locales.
13174         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13175         * locales.h: Declare new culture info construction methods.
13176         * object.h: Add new fields used to avoid the CultureMap to
13177         MonoCultureInfo.
13178         * culture-info.h: Definition of structs used in the culture info
13179         tables.
13180         * culture-info-tables.h: Autogenerated tables that contain culture
13181         info data. This file was generated with the locale-builder tool.
13182         * appdomain.c: Incement corlib version number.
13183         
13184 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13185
13186         * appdomain.c: (mono_runtime_init) move mono_thread_init
13187         to before mono_object_new calls so critical sections
13188         are initialized before use.
13189
13190 2004-04-07  Martin Baulig  <martin@ximian.com>
13191
13192         * icall.c
13193         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13194         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13195         (ves_icall_MonoGenericParam_initialize): Removed.
13196         (monogenericparam_icalls): Removed.
13197         (generictypeparambuilder_icalls): Added new table for
13198         System.Reflection.Emit.GenericTypeParameterBuilder.
13199
13200         * reflection.c
13201         (mono_reflection_define_generic_parameter): Removed.
13202         (mono_reflection_initialize_generic_parameter): This is now called
13203         from GenericTypeParameterBuilder's .ctor.
13204
13205 2004-04-06  Martin Baulig  <martin@ximian.com>
13206
13207         * class.c (mono_class_init): Don't inflate nested classes in a
13208         generic instance.
13209         (mono_type_get_name_recurse): Include the generic arguments for
13210         generic instances and generic type declarations.
13211         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13212         (_mono_class_get_instantiation_name): Removed.
13213         (mono_class_create_generic): Always use `gklass->name' as our name.
13214
13215         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13216
13217         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13218         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13219         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13220         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13221         closed generic methods here.
13222
13223         * reflection.c
13224         (mono_reflection_generic_inst_get_nested_types): Removed.
13225         (inflate_mono_method): Copy the generic parameters from the
13226         MonoMethodHeader into out MonoGenericMethod.
13227
13228 2004-04-06  Martin Baulig  <martin@ximian.com>
13229
13230         * row-indexes.h
13231         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13232
13233         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13234
13235         * reflection.c (build_compressed_metadata): If we have any entries
13236         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13237         set the header version to 1.1.
13238
13239 2004-04-06  Martin Baulig  <martin@ximian.com>
13240
13241         * class.c (mono_class_init): If we're a generic instance,
13242         initialize our nested classes, too.
13243         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13244         suffix. 
13245
13246 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13247
13248         * process.c: quote the argument passed to the shell on windows.
13249
13250 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13251
13252         * threads.c (mono_alloc_special_static_data): Allow this to be
13253         called during startup.
13254
13255 2004-04-02  Martin Baulig  <martin@ximian.com>
13256
13257         * icall.c
13258         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13259
13260 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13261
13262         * icall.c: Fix build.
13263
13264 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13265
13266         * Makefile.am: Added security.c|h.
13267         * icall.c: Added icall for get_UserName;
13268         * security.c: New file for security related icalls. Added function
13269         get_UserName for System.Environment (fix #56144).
13270         * security.h: New. Header file for security.c
13271
13272 2004-04-02  Dick Porter  <dick@ximian.com>
13273
13274         * icall.c: Deleted the icalls that were obsoleted some time ago
13275         by the ICU string code, and which were mixed into the icall
13276         rearranging.  Fixes bug 55969.
13277
13278         * string-icalls.h: 
13279         * string-icalls.c: Deleted the code that those icalls reference.
13280
13281 2004-04-01  Martin Baulig  <martin@ximian.com>
13282
13283         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13284
13285         * class.c (mono_class_from_generic_parameter): Don't set 
13286         TYPE_ATTRIBUTE_INTERFACE.
13287         (my_mono_class_from_generic_parameter): Likewise.
13288
13289 2004-04-01  Martin Baulig  <martin@ximian.com>
13290
13291         * loader.c (find_method): Added an optional `MonoClass *ic'
13292         argument to search in a specific interface.
13293         (mono_get_method_constrained): New public function.
13294
13295 2004-04-01  Martin Baulig  <martin@ximian.com>
13296
13297         * reflection.c (mono_image_get_generic_field_token): Use the
13298         `handleref' cache here.
13299
13300 2004-04-01  Martin Baulig  <martin@ximian.com>
13301
13302         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13303
13304         * reflection.c (create_generic_typespec): Use the `typespec' hash
13305         here, not the `typeref' one.    
13306
13307 2004-04-01  Martin Baulig  <martin@ximian.com>
13308
13309         * class.c (mono_class_inflate_generic_type): Moved the
13310         functionality into a new static inflate_generic_type() which
13311         returns NULL if it didn't do anything.  Only increment the
13312         `mono_stats.inflated_type_count' if we actually inflated
13313         something.
13314         (mono_class_get_full): Check the classes type to see whether we
13315         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13316
13317 2004-04-01  Jackson Harper  <jackson@ximian.com>
13318
13319         * reflection.c: Set culture for assembly references.
13320         
13321 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13322
13323         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13324
13325 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13326
13327         * assembly.c:
13328         (do_mono_assembly_open): the critical section also covers
13329         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13330
13331 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13332
13333         * threads.c:
13334         (mono_manage_threads): abort the background threads when finishing.
13335         Fixes bug #47232.
13336
13337 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13338
13339         * gc.c: only close the done_event handle if there was no timeout.
13340         C-ified comments.
13341
13342 2004-03-30  Martin Baulig  <martin@ximian.com>
13343
13344         * icall.c (icall_entries): It's called "System.Activator", not
13345         "System.Activation".    
13346
13347 2004-03-30  Martin Baulig  <martin@ximian.com>
13348
13349         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13350         (mono_class_create_from_typespec): Likewise.
13351
13352 2004-03-30  Martin Baulig  <martin@ximian.com>
13353
13354         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13355         `has_ctor_constraint' and `initialized'.
13356
13357 2004-03-30  Martin Baulig  <martin@ximian.com>
13358
13359         * reflection.c (encode_new_constraint): New static function to add
13360         the constructor constraint attribute to a type parameter.
13361         (encode_constraints): Call encode_new_constraint() if necessary.
13362
13363         * reflection.h
13364         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13365
13366         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13367         
13368 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13369
13370         * reflection.c, icall.c: add support for pinning variables. 
13371
13372 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13373
13374         * marshal.c (mono_marshal_get_managed_wrapper):
13375         init bool local with zero rather than null.
13376
13377 2004-03-29  Martin Baulig  <martin@ximian.com>
13378
13379         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13380         the "official" behavior here.
13381         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13382
13383 2004-03-29  Martin Baulig  <martin@ximian.com>
13384
13385         * icall.c: Reflect latest API changes.
13386
13387 2004-03-29  Martin Baulig  <martin@ximian.com>
13388
13389         * loader.c (mono_get_method_from_token): Also call
13390         mono_metadata_load_generic_params () for abstract and interface
13391         methods; replace the type arguments in the method signature with
13392         the ones which are loaded from the metadata.
13393
13394 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13395
13396         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13397         of the lock is not the current thread. MS.NET don't do it, in spite of
13398         what the documentation says. See bug #56157.
13399
13400 2004-03-28  Martin Baulig  <martin@ximian.com>
13401
13402         * class.c (mono_class_init): Don't call init_properties() and
13403         init_events() for generic instances; set `prop->parent' when
13404         inflating properties.
13405
13406         * reflection.c (mono_generic_inst_get_object): Call
13407         `mono_class_init (ginst->klass)'.
13408         (mono_type_get_object): Only create a MonoGenericInst if your
13409         generic type is a TypeBuilder.
13410         (do_mono_reflection_bind_generic_parameters): Only set
13411         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13412
13413 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13414
13415         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13416         Fixes #56091.
13417
13418 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13419
13420         * icall.c: added Kill_internal icall.
13421         * process.[ch]: added Kill_internal icall.
13422
13423 2004-03-25  Martin Baulig  <martin@ximian.com>
13424
13425         * class.h (MonoStats): Added `generic_instance_count',
13426         `inflated_method_count', `inflated_type_count' and
13427         `generics_metadata_size'.       
13428
13429 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13430
13431         * reflection.c: no warnings now.
13432
13433 2004-03-25  Martin Baulig  <martin@ximian.com>
13434
13435         * class.c (mono_class_get_full): New public function; does a
13436         mono_class_get(), but also takes a `MonoGenericContext *'.
13437
13438         * loader.c (mono_field_from_memberref): Renamed to
13439         `field_from_memberref', made static and added `MonoGenericContext *'
13440         argument.
13441         (mono_field_from_token): Added `MonoGenericInst *' argument.
13442         (method_from_memberef): Likewise.
13443         (mono_get_method_from_token): Likewise.
13444         (mono_get_method_full): New public function; does a
13445         mono_get_method(), but also takes a `MonoGenericContext *'.
13446
13447         * verify.c (mono_method_verify): Get the method's generic context
13448         and pass it to mono_field_from_token(), mono_get_method_full() and
13449         mono_class_get_full().
13450
13451 2004-03-25  Martin Baulig  <martin@ximian.com>
13452
13453         * class.c (mono_class_inflate_generic_type): Take a
13454         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13455         `MonoGenericMethod *'.
13456
13457 2004-03-25  Martin Baulig  <martin@ximian.com>
13458
13459         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13460         instead of the MonoGenericMethod here.
13461
13462 2004-03-25  Martin Baulig  <martin@ximian.com>
13463
13464         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13465         each time we create a new MonoGenericInst, we also create a new
13466         context which points back to us.
13467
13468         * class.c (inflate_method): Use `ginst->context' instead of
13469         creating a new context.
13470
13471         * loader.c (method_from_memberref): Use
13472         `klass->generic_inst->context' instead of creating a new context.
13473
13474 2004-03-25  Martin Baulig  <martin@ximian.com>
13475
13476         * class.h (MonoGenericContext): New struct.
13477         (MonoGenericMethod): Removed `generic_inst'.
13478
13479         * class.c (mono_class_inflate_generic_method): Take a
13480         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13481
13482 2004-03-25  Martin Baulig  <martin@ximian.com>
13483
13484         * loader.h (MonoMethodInflated): New typedef.
13485
13486         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13487         `generic_param_count' consume just 30 bits, added `is_inflated'
13488         and `has_type_parameters' flags (one bit each).
13489
13490         * class.c (mono_class_inflate_generic_method): Create a
13491         MonoMethodInflated instead of a MonoMethodNormal and set
13492         `is_inflated' in the method signature.
13493
13494         * class.h (MonoGenericMethod): Removed `generic_method'.
13495
13496 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13497
13498         * image.c: Make sure the name of a MonoImage is always an absolute path.
13499           This fixes bug #54415.
13500
13501 2004-03-24  Martin Baulig  <martin@ximian.com>
13502
13503         * class.c (mono_class_setup_vtable): If we're a generic instance,
13504         use our generic type's vtable size.
13505
13506 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13507
13508         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13509         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13510         problems.
13511
13512 2004-03-23  Martin Baulig  <martin@ximian.com>
13513
13514         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13515         `MonoEvent *events'.
13516
13517         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13518         (typebuilder_icalls): Added "get_event_info"; calls
13519         mono_reflection_event_builder_get_event_info(). 
13520
13521         * reflection.c (mono_reflection_generic_inst_initialize): Added
13522         `MonoArray *events'.
13523         (mono_reflection_event_builder_get_event_info): New function.
13524
13525 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13526
13527         * object.h: add mono_type_initialization_init
13528
13529         * object.c (mono_runtime_class_init): 
13530         implement class constructor synchronization rules
13531         to cope with threading issues.  
13532         add mono_type_initialization_init
13533
13534         * appdomain.c (mono_runtime_init): call 
13535         mono_type_initialization_init
13536
13537         * class.h: removing initializing field from MonoVTable
13538
13539 2004-03-23  Martin Baulig  <martin@ximian.com>
13540
13541         * class.c (my_mono_class_from_generic_parameter): Use
13542         `param->name' if it's not NULL. 
13543
13544 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13545
13546         * class.c: do not insert non-virtual methods in the vtable.
13547         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13548         that means the method is non-virtual. This never would have
13549         happened before.
13550
13551 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13552
13553         * profiler.c: Added lock for accessing coverage_hash.
13554
13555 2004-03-22  Martin Baulig  <martin@ximian.com>
13556
13557         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13558         `method->method->signature->generic_param_count != 0' to make it
13559         work for interface methods.
13560
13561 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13562
13563         * process.c: quote the string passed to the shell using g_shell_quote.
13564
13565 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13566
13567         * threads.c:
13568         (mono_threads_manage): don't remove the finalizer thread and self
13569         from the threads hash table so that mono_thread_manage can be called
13570         more than once.
13571
13572 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13573
13574         * process.c: quote the arguments when UseShellExecute is true. Fixes
13575         bug #55790.
13576
13577 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13578
13579         * threads.c: set mono_thread_detach as a cleanup routine for every
13580         thread. This way it's always executed upon thread termination, either
13581         aborted or finished normally. No more xsp hangs!
13582
13583 2004-03-17  Martin Baulig  <martin@ximian.com>
13584
13585         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13586         `int count_nested' and a `MonoType **nested'.
13587
13588         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13589         most of the functionality into a new static
13590         do_mono_reflection_bind_generic_parameters() and don't take a
13591         `MonoType *nested_in' argument any more.  Don't compute nested
13592         types here.
13593         (mono_reflection_generic_inst_get_nested_types): New public method
13594         to get nested types.
13595
13596         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13597         we're a nested class.
13598
13599         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13600         mono_reflection_generic_inst_get_nested_types() to compute the
13601         nested types.
13602
13603 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13604
13605         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13606         descriptive error message under windows.
13607         
13608 2004-03-17  Martin Baulig  <martin@ximian.com>
13609
13610         * class.c (dup_type): Added `const MonoType *original' argument;
13611         copy the attrs from the original type.
13612
13613 2004-03-17  Martin Baulig  <martin@ximian.com>
13614
13615         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13616         `m->generic_inst_cache' here.
13617
13618 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13619
13620         * exception.h exception.c: Add stack_overflow_exception.
13621
13622 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13623
13624         * threadpool.c:
13625         (overlapped_callback): call SetEvent *after* invoking the callback.
13626         No need to call CloseHandle.
13627
13628 2004-03-16  Martin Baulig  <martin@ximian.com>
13629
13630         * reflection.c (mono_image_get_fieldref_token): Take a
13631         `MonoReflectionField *' instead of a `MonoClassField *' and a
13632         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13633
13634 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13635
13636         * appdomain.c: don't add the culture to the filename we're looking for
13637         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13638
13639 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13640
13641         * locales.c: don't ignore symbols when doing case insensitive compares.
13642         Thanks Dick! Fixes bug #54046.
13643
13644         * threads.c: surround 'threads' usage with enter/leave in
13645         mono_thread_manage.
13646
13647 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13648
13649         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13650         implicitly marshalled as [Out]. Fixes #55450.
13651
13652         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13653         an exception.
13654
13655 2004-03-16  Martin Baulig  <martin@ximian.com>
13656
13657         * class.c (mono_class_from_generic_parameter): Use the actual
13658         parameter name. 
13659
13660 2004-03-16  Martin Baulig  <martin@ximian.com>
13661
13662         * reflection.c (type_get_signature_size): New static function.
13663         Compues the size of the type in a method signature.
13664         (method_get_signature_size): New static function; calls
13665         type_get_signature_size() to compute the actual size of the
13666         method's signature.
13667         (method_encode_signature): Use method_get_signature_size() to get
13668         the signature's size rather than using `nparams * 10'.
13669
13670 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13671
13672         * file-io.h: define here WapiOverlapped on windows. I don't want the
13673         regular OVERLAPPED one.
13674
13675         * file-io.c:
13676         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13677         Disabling AIO on windows.
13678
13679 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13680
13681         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13682         bug #55385.
13683
13684 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13685
13686         * appdomain.c: upgraded corlib version.
13687
13688         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13689         and BeginWrite. Allow opening files for asynchrnous operations.
13690
13691         * file-io.h: new struct that maps FileStreamAsyncResult.
13692         * icall.c: added new icalls.
13693         * process.[ch]: support setting child process environment variables
13694         and use the SHELL or COMSPEC when UseShellExecute is true.
13695
13696         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13697         callback for async. IO is here and also BindHandle.
13698
13699         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13700         from here.
13701
13702 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13703
13704         * reflection.c (create_custom_attr): Allow len == 0.
13705
13706         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13707         computation on big-endian machines.
13708
13709 2004-03-13  Martin Baulig  <martin@ximian.com>
13710
13711         * class.h (MonoGenericInst): Added `int count_ifaces'.
13712
13713         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13714         `ginst->count_ifaces' instead `klass->interface_count' since we
13715         may get called before the vtable is created.
13716
13717         * loader.c (mono_method_get_param_names): If we're a generic
13718         instance, return and don't initialize the class.
13719
13720         * reflection.c (mono_reflection_setup_generic_class): Don't call
13721         ensure_runtime_vtable().
13722         (mono_reflection_bind_generic_parameters): Set
13723         `ginst->count_ifaces'.
13724
13725 2004-03-11  Jackson Harper <jackson@ximian.com>
13726
13727         * icall.c:
13728         * unicode.c:
13729         * unicode.h: Remove unused System.Char icalls.
13730         
13731 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13732
13733         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13734         code when we P/Invoke the first library in Windows.Forms, instead
13735         of when we first open the assembly.
13736
13737         * assembly.c: Drop the lookup from here.
13738
13739 2004-03-10  Martin Baulig  <martin@ximian.com>
13740
13741         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13742         class for properties, fields and events.  Finally fixes #54945.
13743
13744 2004-03-10  Martin Baulig  <martin@ximian.com>
13745
13746         * metadata.c (mono_metadata_class_equal): New static function;
13747         checks whether two generic instances or two generic parameters are
13748         equal.
13749         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13750         compare classes.        
13751
13752 2004-03-10  Martin Baulig  <martin@ximian.com>
13753
13754         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13755
13756         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13757         argument and write it into the `reflection_info' field.
13758
13759         * icall.c
13760         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13761         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13762
13763 2004-03-09  Jackson Harper  <jackson@ximian.com>
13764
13765         * char-conversions.h: use 8 bits for numeric data its all we need
13766         * icall.c: numeric data is only 8 bits now.
13767
13768 2004-03-09  Martin Baulig  <martin@ximian.com>
13769
13770         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13771
13772         * class.c (init_properties, init_events): Initialize the new
13773         `parent' field.
13774
13775         * reflection.c (typebuilder_setup_properties): Likewise.
13776         (typebuilder_setup_events): Likewise.
13777
13778         * reflection.h (MonoEventInfo): Replaced `parent with
13779         `declaring_type' and `reflected_type'.
13780
13781         * icall.c (ves_icall_get_property_info): Distinguish between
13782         declaring and reflected type.
13783         (ves_icall_get_event_info): Likewise.
13784
13785 2004-03-09  Martin Baulig  <martin@ximian.com>
13786
13787         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13788         (ves_icall_Type_GetField): Correctly set field->klass.
13789
13790 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13791
13792         * loader.h: Fix warning.
13793
13794 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13795
13796         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13797         library routine if present.  Notice that it will still continue
13798         executing even if its missing, for those working on the Gtk#
13799         edition of Windows.Forms.
13800
13801         * assembly.c (do_mono_assembly_open): If loading the
13802         System.Windows.Forms call mono_loader_wini_init.
13803
13804 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13805
13806         * class.h: Added MonoRemoteClass struct.
13807         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13808         function for MonoStrings.
13809         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13810         Added internal call for getting the proxy type.
13811         * marshal.c: Get the type of transparent proxies from its remote_class.
13812         Added methods that generate the IL for type checks and casts:
13813         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13814         mono_marshal_get_proxy_cancast.
13815         * marshal.h: Declaration of the previous new methods.
13816         * object.c: Added new moethods for creating and updating MonoRemoteClass
13817         instances: mono_remote_class, mono_upgrade_remote_class, 
13818         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13819         * verify.c: FIx transparent_proxy_fields layout.
13820         * appdomain.c: Bump corlib version.
13821
13822 2004-03-04  Jackson Harper  <jackson@ximian.com>
13823
13824         * icall.c: Add icall to access char conversion tables.
13825         * char-conversions.h: Character conversion tables.
13826         * Makefile.am: Add char-conversions.h private header file.
13827         
13828 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13829
13830         * appdomain.c (unload_thread_main): Increase unloading timeout to
13831         10 sec as a temporary workaround for Nant problems.
13832
13833 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13834
13835         * gc.c: Add checks for GC_enable and GC_disable.
13836
13837         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13838         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13839         (bug #54988).
13840         
13841 2004-02-27  Martin Baulig  <martin@ximian.com>
13842
13843         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13844         `MonoReflectionType *' instead of a `MonoType *'.
13845
13846 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13847
13848         * gc.c (run_finalize): Avoid finalizing the object representing the
13849         finalizer thread.
13850         (finalizer_thread): Fix warning.
13851
13852 2004-02-25  Martin Baulig  <martin@ximian.com>
13853
13854         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13855         argument for nested types.
13856         (mono_class_create_generic): Added support for nested generictypes.
13857
13858         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13859         `GList *nested'.
13860
13861         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13862
13863         * reflection.c (method_encode_signature): Increase the minimum
13864         value of `size' from 10 to 11.
13865         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13866         and `MonoType **types' arguments instead of the `MonoArray
13867         *types'; added `MonoType *nested_in'.  Recursively instantiate
13868         nested classes. 
13869
13870 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13871
13872         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13873         stack_overflow_ex members which are used by exception handling.
13874
13875         * appdomain.c (mono_runtime_init): Initialize the new members.
13876
13877         * gc.c (mono_gc_enable): New helper function.
13878         * gc.c (mono_gc_disable): New helper function.
13879
13880 2004-02-23  Martin Baulig  <martin@ximian.com>
13881
13882         * icall.c: I must have been really stupid - make it actually work
13883         this time ;-)
13884
13885 2004-02-23  Martin Baulig  <martin@ximian.com>
13886
13887         * loader.c (method_from_memberref): Only inflate the method if
13888         it's in another klass.
13889
13890 2004-02-23  Martin Baulig  <martin@ximian.com>
13891
13892         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13893         (mono_class_init): If we're a generic instance and an interface,
13894         compute `class->interface_id'; also create `class->interfaces'
13895         here and inflate them.
13896
13897         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13898         `ginst->is_open'.
13899         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13900
13901         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13902
13903 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13904
13905         * reflection.c (method_encode_code): Improved the error message
13906         generated by the exception.
13907
13908 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13909
13910         * icall.c: Martin did not do what he said in the ChangeLog for
13911         2004-02-18, but put back the changes for properties and events.
13912         Commenting those changes out again and adding comment to bug #54518.
13913         
13914         * process.c: removed warning.
13915
13916 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13917
13918         * marshal.c (emit_struct_conv): Print an error message instead of
13919         asserting when a type does not have the StructLayout attribute.
13920
13921 2004-02-20  Martin Baulig  <martin@ximian.com>
13922
13923         * reflection.c (mono_type_get_object): Also use the cache for
13924         generic instances.
13925         (mono_reflection_bind_generic_parameters): Always compute
13926         `ginst->ifaces'.        
13927
13928 2004-02-20  Martin Baulig  <martin@ximian.com>
13929
13930         * class.h (MonoGenericMethod): Removed `klass'.
13931
13932         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13933         *klass' argument.
13934
13935 2004-02-20  Martin Baulig  <martin@ximian.com>
13936
13937         * reflection.c (method_encode_methodspec): Actually use the
13938         uninflated signature for the memberref.
13939
13940 2004-02-20  Martin Baulig  <martin@ximian.com>
13941
13942         * class.h (MonoGenericMethod): Removed `declaring'.
13943
13944         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13945         is NULL, compute it here.
13946
13947 2004-02-20  Martin Baulig  <martin@ximian.com>
13948
13949         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13950
13951         * metadata.c (mono_metadata_generic_inst_hash): New method.
13952         (mono_metadata_generic_inst_equal): New method.
13953
13954         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13955         `klass->image->generic_inst_cache' cache to avoid creating
13956         duplicate MonoGenericInst's.
13957
13958         * class.c (mono_class_inflate_generic_type): Use the cache.
13959
13960 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13961
13962         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13963
13964 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13965
13966         * icall.c: added Socket.WSAIoctl icall.
13967
13968         * socket-io.[ch]: implemented
13969         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13970
13971 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13972
13973         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13974
13975 2004-02-18  Urs C Muff  <umuff@quark.com>
13976
13977         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13978         this work on PPC and other big-endian architectures.
13979
13980         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13981         fields with an underscore to make sure they're only accessed by
13982         the read32() macro.
13983
13984 2004-02-18  Martin Baulig  <martin@ximian.com>
13985
13986         * icall.c: Put the klass->refclass changes back for methods and
13987         fields, but not for properties and events.  We're currently not
13988         distinguishing between DeclaringType and ReflectedType for
13989         properties and events, that's what caused the regressions.
13990
13991 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13992
13993         * object.c:
13994         (mono_async_result_new): the handle can be NULL.
13995
13996         * threadpool.c: Use an event instead of a semaphore, don't initialize
13997         it until needed. This saves quite a few semaphores from being created
13998         when using the threadpool.
13999
14000 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14001
14002         * object.c (mono_string_is_interned_lookup): Fix interning of long
14003         strings. Fixes #54473.
14004
14005         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14006
14007         * icall.c: Revert the klass->refclass changes since they introduce
14008         regressions (bug #54518).
14009
14010 2004-02-18  Martin Baulig  <martin@ximian.com>
14011
14012         * class.c (mono_class_init): If we're a generic instance and don't
14013         come from a TypeBuilder, inflate our members here.
14014         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14015         (mono_class_create_generic): New public method.
14016         (mono_class_initialize_generic): Removed.
14017         (get_instantiation_name): Renamed to
14018         _mono_class_get_instantiation_name() and made it public.
14019
14020 2004-02-18  Martin Baulig  <martin@ximian.com>
14021
14022         * class.c (mono_class_inflate_generic_type): Clear the new
14023         instance's `nginst->klass' when inflating a generic instance.
14024         (mono_class_is_subclass_of): Added (basic) support for generic
14025         instances.
14026
14027 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14028
14029         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14030         MonoMempool to hold compiled native code.
14031
14032 2004-02-17  Martin Baulig  <martin@ximian.com>
14033
14034         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14035         `properties'.
14036
14037         * reflection.c (mono_reflection_generic_inst_initialize): Added
14038         `MonoArray *properties' argument.
14039
14040         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14041
14042 2004-02-17  Martin Baulig  <martin@ximian.com>
14043
14044         * icall.c (ves_icall_Type_GetFields): Renamed to
14045         ves_icall_Type_GetFields_internal() and added a
14046         `MonoReflectionType *rtype' argument; pass it to
14047         mono_field_get_object() to set the field's "reflected" type.
14048         (ves_icall_Type_GetConstructors): Likewise.
14049         (ves_icall_Type_GetEvents): Likewise.
14050         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14051         argument; pass it to mono_method_get_object() to set the method's
14052         "reflected" type.       
14053
14054 2004-02-17  Martin Baulig  <martin@ximian.com>
14055
14056         * class.h (MonoDynamicGenericInst): New type.
14057         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14058
14059         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14060         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14061         (ves_icall_MonoGenericInst_GetFields): New interncall.
14062
14063         * class.c (mono_class_from_generic): Don't call
14064         mono_class_initialize_generic() if this is a dynamic instance;
14065         ie. it's being created from a TypeBuilder.
14066         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14067         `class->byval_arg.type'.
14068
14069         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14070         to `inflate_method' and made static.
14071         (mono_reflection_inflate_field): Removed.
14072         (mono_reflection_generic_inst_initialize): New public method.
14073
14074         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14075         `ctors' and `fields'; added `initialized'.
14076
14077 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14078
14079         * debug-helpers.c (mono_method_full_name): Fix output for empty
14080         namespaces.
14081
14082 2004-02-12  Martin Baulig  <martin@ximian.com>
14083
14084         * class.h (MonoClassField): Added `MonoType *generic_type'.
14085
14086         * reflection.c (mono_image_get_fieldref_token): Added support for
14087         instantiated generic types.
14088         (field_encode_inflated_field): Removed.
14089         (mono_image_get_inflated_field_token): Removed.
14090         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14091
14092         * reflection.h (MonoReflectionInflatedField): Removed.
14093
14094 2004-02-12  Martin Baulig  <martin@ximian.com>
14095
14096         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14097         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14098
14099         * reflection.c (mono_image_get_methodspec_token): Take a
14100         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14101         (mono_image_create_token): Check whether we have a
14102         `method->signature->gen_method' and call
14103         mono_image_get_methodspec_token() if appropriate.
14104         (inflated_method_get_object): Removed.
14105         (mono_reflection_bind_generic_method_parameters): Return a
14106         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14107         (mono_reflection_inflate_method_or_ctor): Likewise.
14108
14109         * reflection.h (MonoReflectionInflatedMethod): Removed.
14110
14111 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14112
14113         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14114         for custom valuetype marshalling.
14115
14116         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14117
14118 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14119
14120         * icall.c: fixed WSAGetLastError_internal name.
14121
14122 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14123
14124         * threads.c (mono_thread_attach): Allow this to be called multiple
14125         times for a thread.
14126         
14127         * threads.c (build_wait_tids): Do not wait for ourselves.
14128
14129         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14130         appdomain list is empty.
14131
14132         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14133         memory returned by mono_string_builder_to_utf16, since it points into
14134         managed memory. Thanks to Bernie Solomon for noticing this.
14135
14136         * icall.c: Add AppDomainSetup icalls.
14137
14138         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14139
14140         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14141         types.
14142
14143         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14144         custom attributes to the method_aux struct. Also fix array indexes etc.
14145
14146         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14147         
14148 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14149
14150         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14151         (both static and runtime) and reduce startup time.
14152
14153 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14154
14155         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14156         AsAny marshalling conversion instead of crashing.
14157
14158         * marshal.c: Fix warnings.
14159
14160 2004-02-09  Martin Baulig  <martin@ximian.com>
14161
14162         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14163
14164         * reflection.h (MonoReflectionInflatedMethod): Removed the
14165         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14166
14167         * reflection.c (method_encode_methodspec): Removed the `method'
14168         argument; we get it from `gmethod->declaring'.
14169         (inflated_method_get_object): Removed the `declaring' argument.
14170
14171 2004-02-09  Martin Baulig  <martin@ximian.com>
14172
14173         * class.h (MonoGenericMethod): New type.
14174         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14175         `generic_method'.
14176
14177         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14178         a `MonoGenericMethod *gen_method' one.
14179
14180         * class.c (mono_class_inflate_generic_type): Take an additional
14181         `MonoGenericMethod * argument.  This is only non-NULL if we're
14182         inflating types for a generic method.   
14183         (mono_class_inflate_generic_signature): Renamed to
14184         inflate_generic_signature() and made static; take a
14185         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14186         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14187         instead of a `MonoGenericInst *' one.
14188         (mono_class_inflate_generic_method): Likewise.
14189
14190         * reflection.c (encode_generic_method_sig): Take a
14191         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14192         (method_encode_methodspec): Likewise.
14193         (inflated_method_get_object): Likewise. 
14194
14195         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14196         field with a `MonoGenericMethod *gmethod' one.  
14197
14198 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14199
14200         * class.h (mono_class_has_parent): add parens to expansion
14201         so you can ! this.
14202
14203 2004-02-08  Martin Baulig  <martin@ximian.com>
14204
14205         * image.h (MonoImage): Removed `generics_cache'.
14206
14207         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14208         instead of a `MonoType *' argument; removed the `inflate_methods'
14209         argument.  Don't inflate methods here.
14210
14211         * loader.c (find_method): If it's a generic instance, call
14212         mono_class_init() on the `sclass->generic_inst->generic_type'.
14213
14214         * metadata.c (mono_type_size): Make this work on uninitialized
14215         generic instances; call it on the `ginst->generic_type's class.
14216
14217         * reflection.c (mono_reflection_bind_generic_parameters): Call
14218         mono_class_from_generic() to create the `ginst->klass'.
14219
14220 2004-02-08  Martin Baulig  <martin@ximian.com>
14221
14222         * class.h (MonoClass): Changed type of `generic_inst' from
14223         `MonoType *' to `MonoGenericInst *'.
14224
14225 2004-02-08  Martin Baulig  <martin@ximian.com>
14226
14227         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14228         mono_type_get_object(), this is now creating a `MonoGenericInst'
14229         for MONO_TYPE_GENERICINST.
14230         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14231         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14232
14233         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14234         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14235         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14236         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14237         and reflected type.
14238
14239         * reflection.h (MonoReflectionInflatedMethod): Removed
14240         `declaring_type' and `reflected_type'.
14241
14242 2004-02-08  Martin Baulig  <martin@ximian.com>
14243
14244         * class.h (MonoGenericInst): Added `MonoType *parent' and
14245         `MonoType **ifaces'.
14246
14247         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14248         `parent' and `interfaces'.
14249
14250         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14251         `MonoType *' argument and return a `MonoType *'.
14252
14253         * icall.c
14254         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14255         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14256
14257 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14258
14259         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14260         valuetype marshalling.
14261
14262 2004-02-06  Martin Baulig  <martin@ximian.com>
14263
14264         * class.c
14265         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14266         (my_mono_class_from_generic_parameter): Likewise.
14267
14268 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14269
14270         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14271         contents of the symbol files lazily.
14272
14273         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14274
14275         * threads.h threads.c icall.c: New icalls for getting and setting the
14276         threads name.
14277
14278 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14279
14280         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14281         Raise an exception when the domain is not found.
14282
14283 2004-02-03  Martin Baulig  <martin@ximian.com>
14284
14285         * reflection.c (mono_image_get_methodspec_token): Use the
14286         uninflated signature; fixes gen-33.
14287
14288 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14289
14290         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14291         the finalizer code can use thread functionality.
14292
14293         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14294         the finalizer thread.
14295
14296         * threads.c: Make some functions more robust.
14297
14298         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14299
14300         * metadata.h: Add new marshalling conventions.
14301
14302         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14303         stringbuilder marshalling. Fixes #53700.
14304
14305         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14306
14307         * reflection.c (mono_image_get_type_info): Save declarative security
14308         info.
14309
14310         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14311         unmanaged fields as well.
14312
14313         * appdomain.c: Bump corlib version.
14314
14315 2004-02-01  Martin Baulig  <martin@ximian.com>
14316
14317         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14318         method type arguments.  
14319
14320 2004-01-30  Duncan Mak  <duncan@ximian.com>
14321
14322         * marshal.h: Add prototype for
14323         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14324         and
14325         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14326         fix the build.
14327
14328 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14329
14330         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14331         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14332
14333 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14334
14335         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14336         custom marshalling of valuetypes.
14337
14338         * marshal.c: Fix some warnings.
14339
14340 2004-01-29  Martin Baulig  <martin@ximian.com>
14341
14342         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14343         for generic method parameters.
14344
14345         * reflection.c (method_encode_methodspec): Write the uninflated
14346         signature into the methodspec table.
14347         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14348         is always the uninflated method.
14349         (reflection_methodbuilder_to_mono_method): Copy the generic
14350         parameters from the MethodBuilder into `header->gen_params'.
14351
14352 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14353
14354         * class.c (mono_class_from_generic_parameter): Fix warning.
14355
14356 2004-01-27  Martin Baulig  <martin@ximian.com>
14357
14358         * class.c (mono_class_from_generic_parameter): Don't create
14359         `klass->methods' here.  
14360
14361 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14362
14363         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14364         extension since it does not work with libraries named lib<FOO>.dll.so.
14365
14366 2004-01-25  Martin Baulig  <martin@ximian.com>
14367
14368         * class.c (mono_class_inflate_generic_type): Added support for
14369         MONO_TYPE_GENERICINST.
14370
14371         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14372         inflate methods on open constructed types.      
14373
14374 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14375
14376         * object.c: fire ProcessExit event in the root AppDomain after running
14377         Main. Fixes bug #53299.
14378
14379 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14380
14381         * socket-io.c: include the new socket-wrappers.h header.
14382         Use the wrappers instead of the unix socket functions to make the code
14383         more clear.
14384
14385 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14386
14387         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14388
14389         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14390         Fixes #22532.
14391
14392 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14393
14394         * reflection.c (mono_image_create_pefile): Handle the case when the
14395         entry point is not a MethodBuilder.
14396
14397         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14398         field to ReflectionMethod since it is not allways a builder.
14399
14400         * reflection.c (type_get_fully_qualified_name): New helper function to
14401         return the fully qualified name of a type.
14402
14403         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14404         type name for custom marshallers.
14405
14406         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14407
14408         * class.c (mono_class_setup_vtable): If a parent class already 
14409         implements an interface, use the implementing methods from that class.
14410         Fixes #53148.
14411
14412 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14413
14414         * threadpool.c: just return instead of ExitThread to allow for thread
14415         clean up earlier.
14416
14417 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14418
14419         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14420         when closing resource modules.
14421
14422         * reflection.c (mono_image_create_pefile): Handle the case when the
14423         entry point is not a MethodBuilder.
14424
14425         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14426         field to ReflectionMethod since it is not allways a builder.
14427
14428 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14429
14430         * marshal.c (mono_marshal_get_managed_wrapper): 
14431         mono_marshal_alloc takes native int so CONV_I
14432         the arg for 64bits.
14433
14434 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14435
14436         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14437         tokens in the cattr table. Fixes #53108.
14438
14439 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14440
14441         * loader.c: don't trim ".dll" before looking up in the config file.
14442         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14443
14444 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14445
14446         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14447         Return the module which contains the resource as well.
14448         (ves_icall_System_Reflection_Module_Close): New icall.
14449
14450         * appdomain.c: Bump corlib version number.
14451
14452         * image.c (mono_image_addref): New public function.
14453
14454         * assembly.c: Call mono_image_addref.
14455
14456         * reflection.c (mono_module_get_object): Increase reference count of 
14457         the image.
14458
14459         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14460         Fixes #22532.
14461
14462         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14463         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14464         proper exceptions on DllImport problems.
14465
14466 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14467
14468         * class.c, metadata.c: eliminate CSIZE macro.
14469
14470 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14471
14472         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14473         * object.h: Added async_callback field in MonoAsyncResult.
14474         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14475         * verify.c: Added async_callback in MonoAsyncResult layout.
14476
14477 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14478
14479         * reflection.c (mono_reflection_get_custom_attrs): Add support
14480         for Modules.
14481
14482 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14483
14484         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14485         marshalling.
14486         (mono_marshal_method_from_wrapper): Add null pointer check.
14487
14488 2004-01-16  Martin Baulig  <martin@ximian.com>
14489
14490         * debug-mono-symfile.h: Set version number to 36 and reflect
14491         latest symbol writer changes.
14492
14493 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14494
14495         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14496         multi-dimensional arrays.
14497         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14498         (mono_class_from_mono_type): Use bounded_array_class_get.
14499         
14500         * class.c (mono_bounded_array_class_get): New function which takes
14501         a 'bounded' bool argument to distinguish vectors from one dimensional
14502         arrays.
14503
14504         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14505         bounded_array_class_get if the array has bounds.
14506
14507         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14508         Search modules loaded using AssemblyBuilder:AddModule as well.
14509
14510 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14511
14512         * appdomain.c: increased corlib version.
14513         * filewatcher.c: removed g_print.
14514         * icall.c:
14515         (get_property_info): only allocate what is actually requested.
14516         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14517
14518 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14519
14520         * Makefile.am: added filewatcher.[ch]
14521         * filewatcher.[ch]: FileSystemWatcher runtime support.
14522         * icall.c: added new FSW icalls.
14523
14524 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14525
14526         * string-icalls.c: fix stringbuilder regression as suggested by
14527         Iain McCoy <iain@mccoy.id.au>.
14528
14529 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14530
14531         * process.c (process_read_stringtable_block): Recognize '007f' as
14532         a language neutral stringtable block.
14533
14534 2004-01-12  Patrik Torstensson
14535
14536         * object.h (MonoStringBuilder) : Changed layout to support our
14537         new stringbuilder class.
14538         * marshal.c: Change marshalling to support the new layout of 
14539         string builder.
14540         * appdomain.c: increased version number because new layout of
14541         string builder.
14542
14543 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14544
14545         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14546         assembly name as an string instead of an AssemblyName, since it is
14547         easier to extract info from it.
14548
14549         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14550         the culture subdirectories too. Fixes #52231.
14551
14552 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14553
14554         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14555         It takes 2 new parameters with an optional name for the method to look
14556         for and case ignoring info.
14557
14558         * threadpool.c: removed unused variable.
14559
14560 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14561
14562         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14563         It takes 2 new parameters with an optional name for the property to look
14564         for and case ignoring info.
14565         Fixes bug #52753.
14566
14567 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14568
14569         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14570         Fix #52451.
14571
14572 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14573
14574         * appdomain.c:
14575         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14576         Fixes bug #52630.
14577
14578 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14579
14580         * reflection.c: Add support for more than one unmanaged resource.
14581
14582         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14583         in field->def_value, as done in all other cases.
14584
14585         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14586         TypeBuilders.
14587
14588         * reflection.c (mono_reflection_create_runtime_class): Remove 
14589         errorneous assignment to klass->element_class, since it is already
14590         done in mono_reflection_setup_internal_class.
14591
14592 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14593
14594         * gc.c: added missing LeaveCriticalSection.
14595         * icall.c: indented a couple of lines.
14596         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14597         if we call EndInvoke inside a callback. Fixes bug #52601.
14598
14599 2004-01-07  Martin Baulig  <martin@ximian.com>
14600
14601         * mono-debug-debugger.h
14602         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14603
14604 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14605
14606         * appdomain.c: Use messages in NotImplementedException.
14607
14608         * exception.c (mono_get_exception_not_implemented): Now this takes
14609         a message argument.
14610
14611         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14612         exception instead of g_asserting an aborting when something is not
14613         implemented.
14614
14615         Add some inline docs.
14616
14617 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14618
14619         * reflection.h: Update after changes to object layout.
14620
14621         * reflection.c: Implement saving of unmanaged aka win32 resources.
14622
14623         * appdomain.c: Bump version number.
14624
14625         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14626         Handle missing domains gracefully.
14627
14628 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14629
14630         * file-io.c : On Windows, there are much more invalid_path_chars.
14631
14632 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14633
14634         * class.h, object.c: prepare for GetType () speedup.
14635
14636 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14637
14638         * profiler.c: workaround for --profile null reference exception on
14639           cygwin. Patch by Patrik Torstensson.
14640
14641 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14642
14643         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14644         make work for unaligned access.
14645
14646 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14647
14648         * class.c: small cleanup (class->fields [i] -> field).
14649         * image.c: check address of metadata is valid.
14650
14651 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14652
14653         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14654         search the list of loaded assemblies.
14655
14656         * reflection.c (mono_reflection_type_from_name): Use 
14657         mono_assembly_loaded instead of mono_image_loaded.
14658
14659         * reflection.c: Fix warnings.
14660
14661 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14662
14663         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14664         is dynamic. This is needed since an assembly can contain both dynamic and
14665         non-dynamic images.
14666
14667         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14668         assembly->dynamic.
14669
14670         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14671
14672         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14673         to store modules loaded using AddModule.
14674
14675         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14676         on Modules.
14677
14678         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14679
14680         * reflection.c (mono_image_fill_export_table_from_module): New function to
14681         fill out the EXPORTEDTYPES table from a module.
14682
14683         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14684         into a separate function. Also handle loaded non-dynamic modules.
14685
14686         * reflection.c (mono_image_basic_init): Fix memory allocation.
14687
14688         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14689
14690         * assembly.c (mono_assembly_load_references): Make this public.
14691
14692 2003-12-19  Martin Baulig  <martin@ximian.com>
14693
14694         * class.c (mono_class_initialize_generic): Made this static, take
14695         a `MonoGenericInst *' instead of a `MonoClass *'.
14696         (mono_class_from_generic): Call mono_class_initialize_generic()
14697         unless we're already initialized or being called from
14698         do_mono_metadata_parse_generic_inst().
14699
14700         * class.h (MonoGenericInst): Added `initialized' and
14701         `init_pending' flags.
14702
14703         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14704         `mono_class_init (gklass)' or mono_class_initialize_generic()
14705         here; set `generic_inst->init_pending' while parsing the
14706         `type_argv'.
14707
14708 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14709
14710         * locales.c: include string.h for memxxx prototypes
14711
14712 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14713
14714         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14715         constructor when accessing literal fields.
14716
14717 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14718
14719         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14720
14721         * reflection.c (assembly_add_resource_manifest): New function to fill
14722         the MANIFESTRESOURCE table.
14723
14724         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14725
14726         * reflection.h: Update to changes in class layout.
14727
14728         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14729         Reenable call to mono_runtime_is_shutting_down ().
14730
14731         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14732         determine if the runtime is shutting down.
14733
14734 2003-12-16  Jackson Harper <jackson@ximian.com>
14735
14736         * icall.c: comment out call to mono_runtime_is_shutting_down to
14737         fix build.
14738         
14739 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14740
14741         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14742         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14743
14744 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14745
14746         * reflection.c: move definition of swap_with_size
14747         to before its first call
14748
14749 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14750
14751         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14752
14753         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14754         icall.
14755
14756         * object.c: Fix warnings.
14757
14758         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14759         members if FlattenHierarchy is set.
14760
14761         * reflection.c (mono_image_add_decl_security): New function to emit
14762         declarative security.
14763
14764         * reflection.h reflection.c: Add support for declarative security.
14765
14766         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14767         
14768 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14769
14770         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14771         
14772         * appdomain.c verify.c: Moved corlib version checking into its own
14773         function in appdomain.c since it needs to create vtables etc.
14774
14775 2003-12-13  Patrik Torstensson <p@rxc.se>
14776
14777         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14778         instead of unwrapped server.
14779
14780 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14781
14782         * verify.c (check_corlib): Fix field index.
14783
14784 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14785
14786         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14787         GetGacPath icall.
14788
14789 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14790
14791         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14792         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14793         cope with sizeof(size_t) != sizeof(guint32).
14794
14795 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14796
14797         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14798         in case of failure.
14799
14800 2003-12-10  Mark Crichton <crichton@gimp.org>
14801
14802         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14803         in managed code.
14804
14805         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14806
14807 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14808
14809         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14810         marked as deleted.
14811
14812 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14813
14814         * verify.c (check_corlib): Handle the case when the version field is 
14815         initialized by a static constructor.
14816
14817 2003-12-08  Patrik Torstensson  <p@rxc.se>
14818
14819     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14820
14821 2003-12-08  Martin Baulig  <martin@ximian.com>
14822
14823         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14824         a MonoReflectionGenericParameter, also take the parameter index
14825         and name as arguments.
14826         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14827         (ves_icall_MonoGenericParam_initialize): New interncall.
14828         (ves_icall_Type_make_byref_type): New interncall.
14829
14830         * reflection.h (MonoReflectionGenericParam): Derive from
14831         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14832         `index' fields.
14833
14834         * reflection.c (mono_reflection_define_generic_parameter): Create
14835         and return a new MonoReflectionGenericParam; don't initialize the
14836         constraints here.
14837         (mono_reflection_initialize_generic_parameter): New public method;
14838         initializes the constraints and creates the `param->pklass'.
14839
14840 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14841
14842         * reflection.h reflection.c: Use the new fields 'num_types', 
14843         'num_fields' and 'num_methods' to track the number of types etc.
14844
14845         * verify.c (check_corlib): Check corlib version number.
14846
14847 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14848
14849         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14850         function works on all methods.
14851
14852 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14853
14854         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14855         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14856         the custom_type_info flag of the transparent proxy.
14857         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14858         objects that supports IRemotingTypeInfo.
14859         * object.h: Added custom_type_info field in transparent proxy.
14860
14861 2003-12-06  Martin Baulig  <martin@ximian.com>
14862
14863         * class.c (mono_class_create_from_generic): Removed.
14864         (mono_class_from_generic): Check `ginst->klass' before doing
14865         anything else.  This is important to fully support "recursive"
14866         generic types.
14867
14868         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14869         empty `generic_inst->klass' before doing anything else.
14870
14871 2003-12-06  Dick Porter  <dick@ximian.com>
14872
14873         * verify.c: 
14874         * object.h:
14875         * icall.c:
14876         * locales.c: Use C structs to access class fields.  Don't do a
14877         conversion between MonoString and UChar because both are
14878         platform-endian UTF-16.  Compare now takes startindex and count
14879         parameters.  Add a char overload for IndexOf.  Speed up the
14880         invariant string IndexOf.
14881
14882 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14883
14884         * Makefile.am (monosn_LDADD): Fix parallel build.
14885
14886 2003-12-04  Martin Baulig  <martin@ximian.com>
14887
14888         * icall.c
14889         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14890         (ves_icall_Type_make_array_type): New interncall.       
14891
14892 2003-12-04  Martin Baulig  <martin@ximian.com>
14893
14894         * locales.c: also change it in the !HAVE_ICU case.
14895
14896 2003-12-04  Dick Porter  <dick@ximian.com>
14897
14898         * icall.c:
14899         * locales.c: construct_compareinfo is now in CompareInfo, not
14900         CultureInfo.
14901
14902 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14903
14904         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14905         image->files array.
14906
14907         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14908         table as well.
14909
14910         * assembly.c (mono_assembly_load_references): Only load references
14911         once.
14912
14913         * class.c (mono_class_from_name): Avoid linear search of the 
14914         EXPORTEDTYPE table.
14915
14916         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14917
14918 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14919
14920         * image.h (MonoImage): Add 'field_cache' field.
14921
14922         * loader.c (mono_field_from_token): Cache field lookups.
14923         
14924         * reflection.c (mono_module_get_object): Fix name property.
14925
14926         * icall.c (ves_icall_get_enum_info): Update after changes to 
14927         mono_metadata_get_constant_index ().
14928
14929         * icall.c: Get rid of get_type_info icall, use a separate icall for
14930         each type property to avoid needless memory allocations. Fixes #51514.
14931
14932         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14933         to avoid needless binary searches.
14934
14935         * class.c (class_compute_field_layout): Move the initialization of
14936         field->def_value to mono_class_vtable ().
14937
14938         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14939         non-corlib types.
14940
14941         * object.c (mono_object_allocate): Make it inline.
14942
14943         * object.c (mono_object_allocate_spec): Make it inline.
14944         
14945 2003-12-02  Dick Porter  <dick@ximian.com>
14946
14947         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14948         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14949
14950 2003-12-01  Dick Porter  <dick@ximian.com>
14951
14952         * threads.c: Fix signature and call in CreateMutex and
14953         CreateEvent.
14954
14955 2003-12-01  Dick Porter  <dick@ximian.com>
14956
14957         * icall.c: 
14958         * locales.c: Implement string compares and searching
14959
14960         * object.h: Add extra Thread field
14961
14962 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14963
14964         * reflection.c (fixup_method): Add support for MonoCMethod.
14965
14966 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14967
14968         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14969
14970         * reflection.c (assembly_name_to_aname): Allow extra characters in
14971         assembly names. Fixes #51468.
14972
14973 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14974
14975         * exception.c (mono_exception_from_name_domain): New helper function.
14976
14977         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14978         exception object in the correct domain.
14979
14980         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14981         formatting + make a copy a the input data.
14982
14983         * loader.c (mono_get_method_from_token): Methods which contain
14984         native code do not have entries in the ImplMap.
14985
14986         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14987         Thanks to Gonzalo for spotting this.
14988         
14989         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14990         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14991
14992         * assembly.h (mono_assembly_load_from): Split the second part of 
14993         assembly loading into a new public function.
14994
14995         * exception.h (mono_get_exception_bad_image_format): New function.
14996
14997 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14998
14999         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15000         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15001         
15002         * icall.c: Add new icall for creating dynamic methods.
15003
15004         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15005
15006         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15007
15008         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15009         create a dynamic method.
15010
15011         * reflection.c (resolve_object): New helper function.
15012
15013         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15014         which manipulate it so they can also work on dynamic methods.
15015
15016         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15017         creating the MonoReflectionMethodAux structure if it is not needed.
15018         
15019         * reflection.h verify.c: Update after changes to object layout.
15020
15021         * reflection.c (method_builder_encode_signature): Fix compilation on
15022         gcc 2.95.x.
15023
15024 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15025
15026         * appdomain.h: Added support for context static fields. Added static_data
15027           field to MonoAppContext and renamed thread_static_fields to a more
15028           generic special_static_fields in MonoAppDomain, since it can now contain
15029           context static fields.
15030         * domain.c: Updated hashtable name.
15031         * object.c: Replaced field_is_thread_static() for a more generic
15032           field_is_special_static() which also checks for context static attribute.
15033           In mono_class_vtable(), added support for static context fields.
15034         * threads.c: Changed methods that manage thread static fields to more
15035           generic methods so they can be reused both for thread and context static
15036           data.
15037         * threads.h: Declared some new methods.
15038
15039 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15040
15041         * reflection.h: Update after changes to the managed types.
15042
15043         * reflection.c (encode_custom_modifiers): New helper function.
15044
15045         * reflection.c (method_encode_signature): Emit custom modifiers.
15046
15047         * reflection.c (field_encode_signature): Emit custom modifiers.
15048
15049 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15050
15051         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15052
15053         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15054         implementation.
15055
15056         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15057         icall.
15058
15059         * object.c (mono_field_get_value_object): New function.
15060
15061         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15062         specific.
15063
15064 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15065
15066         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15067         return a preallocated out-of-memory exception instance.
15068
15069         * object.c (out_of_memory): Use the new function.
15070
15071         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15072         flag is before the custom modifiers. Fixes #49802.
15073
15074 2003-11-16  Martin Baulig  <martin@ximian.com>
15075
15076         * class.c (mono_class_is_open_constructed_type): Implemented the
15077         MONO_TYPE_GENERICINST case.
15078
15079 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15080
15081         * assembly.c (mono_assembly_fill_assembly_name): New function to
15082         fill out the MonoAssemblyName structure.
15083         (mono_assembly_open): Use the new function.
15084
15085         * icall.c (fill_reflection_assembly_name): New helper function.
15086
15087         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15088         new function.
15089
15090         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15091
15092 2003-11-15  Martin Baulig  <martin@ximian.com>
15093
15094         * class.c (mono_class_is_open_constructed_type): New public
15095         function; checks whether a type is an open constructed type,
15096         ie. whether it still contains type parameters.
15097         (mono_class_inflate_generic_type): If we're a type parameter and
15098         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15099         type.
15100
15101         * class.h (MonoGenericInst): Added `guint32 is_open'.
15102
15103         * loader.c (method_from_methodspec): Check whether we're an open
15104         or closed constructed type and set `ginst->is_open'.
15105
15106         * reflection.c (mono_reflection_bind_generic_parameters): Check
15107         whether we're an open or closed constructed type and set
15108         `ginst->is_open'.
15109         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15110         from open constructed types.
15111
15112 2003-11-15  Martin Baulig  <martin@ximian.com>
15113
15114         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15115         a generic instance (instead of a generic type declaration) with
15116         unbound generic parameters, bind them to our actual types.
15117
15118 2003-11-14  Martin Baulig  <martin@ximian.com>
15119
15120         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15121
15122         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15123         an interface type, populate `res->interfaces' with instantiated
15124         versions of all the interfaces we inherit.
15125
15126 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15127
15128         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15129         when MONO_PATH is set but doesn't contain the install dir.
15130
15131 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15132
15133         * icall.c:
15134         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15135         it's also implemented in base classes. Fixes bug #50927.
15136
15137 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15138
15139         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15140         if this method is called from a finalizer. Fixes #50913.
15141
15142 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15143
15144         * threads.c: Implement VolatileRead/VolatileWrite
15145
15146         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15147
15148 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15149
15150         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15151         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15152         2.95.3.
15153
15154         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15155         from Peter Ross (pro@missioncriticalit.com).
15156         
15157 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15158
15159         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15160
15161 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15162
15163         * assembly.c (mono_assembly_load_references): Disable check because it
15164         triggers on older corlibs which lots of people have.
15165
15166 2003-11-12  Jackson Harper  <jackson@ximian.com>
15167
15168         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15169         load corlib.dll if mscorlib.dll is not found.
15170         * assembly.h: Remove corlib name define.
15171         * class.c:
15172         * domain.c:
15173         * image.c: Change corlib name to mscorlib.
15174         
15175 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15176
15177         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15178
15179 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15180
15181         * appdomain.h: Added loader_optimization here to sync with the C#
15182         code, and add disallow_binding_redirects field.
15183
15184 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15185
15186         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15187
15188         * reflection.c (mono_image_build_metadata): Fix crash on modules
15189         with no types.
15190
15191         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15192
15193         * icall.c (ves_icall_get_method_info): Return callingConvention as
15194         well.
15195
15196         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15197         namespaces from the EXPORTEDTYPE table as well.
15198
15199         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15200         from all modules inside the assembly.
15201         
15202 2003-11-11  Martin Baulig  <martin@ximian.com>
15203
15204         * reflection.c (mono_reflection_bind_generic_parameters): Make
15205         this work for interfaces.
15206
15207 2003-11-11  Martin Baulig  <martin@ximian.com>
15208
15209         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15210
15211 2003-11-11  Martin Baulig  <martin@ximian.com>
15212
15213         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15214         "MonoInflatedMethod" and "MonoInflatedCtor".
15215
15216 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15217
15218         * reflection.c (resolution_scope_from_image): Use the assembly table
15219         from the manifest module, since other modules don't have it.
15220
15221         * debug-helpers.c (mono_type_full_name): New helper function.
15222
15223         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15224
15225         * image.c (mono_image_load_file_for_image): New public function which
15226         is a replacement for the load_file_for_image in class.c.
15227
15228         * assembly.c (mono_assembly_load_module): A wrapper for the function
15229         above which does assembly association and reference loading too.
15230
15231         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15232
15233 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15234
15235         * appdomain.c: not all of the attributes for the full assembly name
15236         are required and the order doesn't matter. Fixes bug #50787.
15237
15238 2003-11-10  Dick Porter  <dick@ximian.com>
15239
15240         * locales.c: Use platform-endian UTF16
15241
15242 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15243
15244         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15245         
15246 2003-11-10  Martin Baulig  <martin@ximian.com>
15247
15248         * metadata.c
15249         (mono_metadata_load_generic_params): Make this actually work.
15250
15251         * reflection.c (mono_reflection_bind_generic_parameters): If our
15252         parent is a generic instance, pass all the `types' to it, no
15253         matter whether it has the same number of type parameters or not.
15254
15255 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15256
15257         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15258
15259         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15260         assignment code to this function so it gets called recursively for all
15261         modules.
15262
15263         * image.c (load_modules): Remove the assembly assignment since it is
15264         now done by mono_assembly_load_references.
15265         
15266         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15267         Add 'module' argument.
15268         (mono_module_get_types): New helper function.
15269         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15270
15271 2003-11-08  Martin Baulig  <martin@ximian.com>
15272
15273         * class.c (mono_class_inflate_generic_method): Interface method
15274         don't have a header.
15275
15276         * reflection.c (mono_image_get_methodspec_token): Take an
15277         additional `MonoGenericInst *' argument instead of reading it from
15278         the header; this is necessary to support interfaces.
15279         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15280         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15281         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15282         argument.
15283
15284         * reflection.h (MonoReflectionInflatedMethod): Added
15285         `MonoGenericInst *ginst'.
15286
15287 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15288
15289         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15290
15291 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15292
15293         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15294
15295 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15296
15297         * reflection.c 
15298         (reflection_methodbuilder_from_method_builder):
15299         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15300         initialize a ReflectionMethodBuilder structure.
15301         (mono_image_get_methodbuilder_token):
15302         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15303         tokens which point to types in another module inside the same assembly.
15304
15305         * reflection.c: Use the new helper functions.
15306         
15307         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15308
15309         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15310         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15311
15312         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15313         neccesary.
15314
15315         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15316         current module. Emit the manifest only for the main module.
15317
15318         * reflection.c (mono_image_create_token): Add assertion when a 
15319         memberref needs to be created.
15320
15321         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15322
15323         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15324         larger buffer for the custom attribute blob. Fixes #50637.
15325         
15326 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15327
15328         * threadpool.c: notify listener on async processing handles after
15329         invoking the async callback. Thanks to Zoltan.
15330
15331 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15332
15333         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15334         avoid code duplication.
15335
15336         * reflection.h (MonoDynamicImage): New type which is currently unused,
15337         but will be used through the ref.emit code in place of 
15338         MonoDynamicAssembly.
15339
15340         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15341         object layout.
15342
15343         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15344         a MonoDynamicImage instead of just a MonoImage.
15345         
15346         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15347         icalls to ModuleBuilder but keep their semantics, so they will work
15348         with moduleb->assemblyb. This will change later.
15349         
15350 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15351
15352         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15353         object layout.
15354
15355         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15356         main module, since it is now done by the managed code.
15357
15358 2003-11-03  Martin Baulig  <martin@ximian.com>
15359
15360         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15361         `ginst->klass' here.
15362         (method_encode_methodspec): Don't use the `ginst->generic_method's
15363         klass if it's a generic instance, use `ginst->klass' in this case.
15364
15365 2003-11-03  Martin Baulig  <martin@ximian.com>
15366
15367         * reflection.c (mono_image_get_generic_method_param_info):
15368         Removed, use mono_image_get_generic_param_info() instead.
15369         (mono_image_get_type_info): Write the GenericParam table before
15370         the Method table.  This is neccessary because in the GenericParam
15371         table, type parameters of the class (ie. '!0' etc.) must come
15372         before the ones from its generic methods (ie. '!!0' etc).
15373
15374 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15375
15376         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15377
15378 2003-11-02  Martin Baulig  <martin@ximian.com>
15379
15380         * reflection.c (create_generic_typespec): Take a
15381         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15382         the generic parameters from it.
15383
15384 2003-11-02  Martin Baulig  <martin@ximian.com>
15385
15386         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15387         instead of a `MonoClassField *' since we just need the type.
15388         (create_generic_typespec): New static function.  Creates a
15389         TypeSpec token for a generic type declaration.
15390         (mono_image_get_generic_field_token): New static function.
15391         (mono_image_create_token): If we're a FieldBuilder in a generic
15392         type declaration, call mono_image_get_generic_field_token() to get
15393         the token.
15394
15395 2003-11-02  Martin Baulig  <martin@ximian.com>
15396
15397         * reflection.h
15398         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15399         `MonoReflectionGenericInst *declaring_type' and
15400         `MonoReflectionGenericInst *reflected_type' fields.
15401
15402         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15403         `MonoReflectionGenericInst *declaring_type' and a
15404         `MonoReflectionGenericInst *reflected_type' argument instead of a
15405         single `MonoReflectionGenericInst *type' one.  Set
15406         `res->declaring_type' and `res->reflected_type' from them.
15407         (mono_reflection_inflate_field): Likewise.      
15408
15409 2003-11-02  Martin Baulig  <martin@ximian.com>
15410
15411         * class.c (mono_class_setup_vtable): Don't store generic methods
15412         in the vtable.  
15413
15414 2003-11-02  Martin Baulig  <martin@ximian.com>
15415
15416         * reflection.h (MonoReflectionGenericInst): Added
15417         `MonoReflectionType *declaring_type'.
15418
15419         * reflection.c (mono_reflection_bind_generic_parameters): Use
15420         `if (tb->parent)' instead of `klass->parent'.
15421
15422 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15423
15424         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15425         with an empty ASSEMBLY table.
15426
15427         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15428         variable in the inner and outer loops.
15429
15430 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15431
15432         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15433         argument.
15434
15435         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15436         
15437         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15438         icalls. Instead, do everything in managed code. This is needed since
15439         it is hard to restore the original domain etc. in unmanaged code in the
15440         presence of undeniable exceptions.
15441
15442         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15443         New icalls to push and pop appdomain refs.
15444
15445 2003-10-31  Martin Baulig  <martin@ximian.com>
15446
15447         * class.c (inflate_generic_type): Renamed to
15448         mono_class_inflate_generic_type() and made it public.
15449
15450         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15451         New interncall.
15452
15453         * loader.c (mono_field_from_memberref): Also set the retklass for
15454         typespecs.
15455
15456         * fielder.c (mono_image_get_inflated_field_token): New static
15457         method; creates a metadata token for an inflated field.
15458         (mono_image_create_token, fixup_method): Added support for
15459         "MonoInflatedField".
15460         (fieldbuilder_to_mono_class_field): New static function.
15461         (mono_reflection_inflate_field): New public function.
15462
15463         * reflection.h
15464         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15465         (MonoReflectionInflatedField): New typedef.     
15466
15467 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15468
15469         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15470         for Solaris and other platforms without s6_addr16
15471
15472 2003-10-30  Martin Baulig  <martin@ximian.com>
15473
15474         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15475         argument instead of two.
15476         (mono_class_inflate_generic_signature): Likewise.
15477         (inflate_generic_header): Likewise.
15478         (mono_class_inflate_generic_method): Likewise.  In addition, if
15479         `ginst->klass' is set, it becomes the new `method->klass'.
15480
15481         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15482         field.
15483
15484         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15485         first byte. [FIXME]
15486         (method_encode_methodspec): If we have generic parameters, create
15487         a MethodSpec instead of a MethodRef.
15488         (fixup_method): Added support for "MonoInflatedMethod" and
15489         "MonoInflatedCtor".
15490         (mono_image_create_token): Added support for "MonoInflatedMethod"
15491         and "MonoInflatedCtor".
15492         (inflated_method_get_object): New static function; returns a
15493         managed "System.Reflection.MonoInflatedMethod" object.
15494         (mono_reflection_bind_generic_method_parameters): Return a
15495         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15496         (mono_reflection_inflate_method_or_ctor): Likewise.
15497         (mono_image_get_generic_method_param_info): Initialize unused
15498         fields to zero.
15499         (mono_image_get_generic_param_info): Likewise.
15500
15501         * reflection.h (MonoReflectionInflatedMethod): New public
15502         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15503         "S.R.MonoInflatedCtor" classes.
15504
15505         * loader.c (method_from_memberref): If we're a TypeSpec and it
15506         resolves to a generic instance, inflate the method.
15507
15508 2003-10-28  Dick Porter  <dick@ximian.com>
15509
15510         * object.c (mono_runtime_run_main): Convert command-line arguments
15511         into utf8, falling back to the user's locale encoding to do so.
15512
15513 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15514
15515         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15516         at this time.
15517
15518         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15519
15520         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15521         up icalls at method definition time. Partially fixes #33569.
15522
15523 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15524
15525         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15526         marshalling of arrays. Fixes #50116.
15527
15528         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15529
15530         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15531         points to a vtable in the dying appdomain.
15532
15533         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15534         listeners into unmanaged code inside the lock.
15535
15536         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15537         domains and add some comments.
15538
15539 2003-10-25  Martin Baulig  <martin@ximian.com>
15540
15541         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15542
15543         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15544
15545         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15546         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15547         currently parsing.  Create the generic class and store it in
15548         `generic_inst->klass' before parsing the type arguments.  This is
15549         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15550         for an example.
15551         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15552         to support recursive typespec entries.
15553
15554         * class.c (mono_class_setup_parent): If our parent is a generic
15555         instance, we may get called before it has its name set.
15556         (mono_class_from_generic): Splitted into
15557         mono_class_create_from_generic() and mono_class_initialize_generic().
15558
15559 2003-10-25  Martin Baulig  <martin@ximian.com>
15560
15561         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15562         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15563         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15564         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15565
15566         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15567         (create_typespec): Likewise.
15568         (mono_reflection_bind_generic_parameters): Return a
15569         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15570         (mono_reflection_inflate_method_or_ctor): New public function.
15571
15572         * reflection.h (MonoReflectionGenericInst): New typedef.        
15573
15574 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15575
15576         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15577         inside the domain lock. Fixes #49993.
15578         
15579         * object.c (mono_class_vtable): When typed allocation is used, 
15580         allocate vtables in the GC heap instead of in the mempool, since the
15581         vtables contain GC descriptors which are used by the collector even
15582         after the domain owning the mempool is unloaded.
15583
15584         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15585
15586         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15587         reflect what it does. Also invalidate mempools instead of freeing
15588         them if a define is set.
15589
15590         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15591         of the appdomain.
15592         
15593         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15594         hold the finalizable objects in this domain.
15595
15596         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15597         appdomain.
15598
15599         * appdomain.c (mono_domain_set): New function to set the current
15600         appdomain, but only if it is not being unloaded.
15601
15602         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15603         appdomain which is being unloaded.
15604         
15605         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15606         unloading of the root appdomain.
15607
15608         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15609         icall to execute a method in another appdomain. Intended as a 
15610         replacement for InternalSetDomain, which can confuse the code 
15611         generation in the JIT.
15612
15613         * appdomain.c (mono_domain_is_unloading): New function to determine
15614         whenever an appdomain is unloading.
15615
15616         * appdomain.c (mono_domain_unload): New function to correctly unload
15617         an appdomain.
15618
15619         * assembly.c (mono_assembly_load_references): Check that an assembly
15620         does not references itself.
15621
15622         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15623         domain manually, it asks the finalizer thread to do it, then waits for
15624         the result. Also added a timeout.
15625
15626         * icall.c: Register the new icalls.
15627
15628         * threads.h threads.c: Export the mono_gc_stop_world and 
15629         mono_gc_start_world functions.
15630         
15631         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15632         function to fill out the mempool with 0x2a.
15633
15634 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15635
15636         * reflection.h (MonoReflectionMethodAux): New structure to store
15637         information which is rarely used, thus is not in the MonoMethod
15638         structure.
15639
15640         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15641         store the aux info.
15642
15643         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15644         and marshalling info into the aux structure.
15645
15646         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15647         from the aux structure.
15648
15649         * loader.c (mono_method_get_param_names): Retrieve the param names from
15650         the aux structure.
15651         
15652 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15653
15654         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15655         warning.
15656
15657 2003-10-21  Dick Porter  <dick@ximian.com>
15658
15659         * socket-io.c
15660         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15661         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15662
15663 2003-10-21  Martin Baulig  <martin@ximian.com>
15664
15665         * reflection.c (mono_reflection_bind_generic_parameters):
15666         `klass->parent' is NULL for interfaces.
15667
15668 2003-10-21  Martin Baulig  <martin@ximian.com>
15669
15670         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15671
15672 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15673
15674         * exception.c (mono_exception_from_name_msg): New helper function for
15675         creating exceptions and initializing their message field.
15676
15677         * exception.c: Simplify functions using the new helper.
15678
15679         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15680         New function.
15681
15682         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15683         mono_raise_exception, since otherwise gcc doesn't generate the function
15684         epilog for raise_exception, confusing the stack unwinding in the JIT.
15685         Fixes #45043.
15686
15687         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15688         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15689         Fixes #49499.
15690
15691 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15692
15693         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15694         utf8.
15695
15696 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15697
15698         * icall.c: Removed GetUninitializedObject method because
15699           AllocateUninitializedClassInstance does the same.
15700
15701 2003-10-18  Martin Baulig  <martin@ximian.com>
15702
15703         * class.c (inflate_generic_signature): Renamed to
15704         mono_class_inflate_generic_signature() and made it public.
15705         (my_mono_class_from_generic_parameter): New static function; if we
15706         don't already have the generic parameter's MonoClass, create a
15707         very simple one which is just used internally in the runtime and
15708         not passed back to managed code.
15709
15710         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15711
15712         * metadata.h (MonoMethodSignature): Moved the
15713         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15714         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15715
15716         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15717         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15718         interncall on the MonoMethod class, not on MethodInfo.
15719         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15720         calling mono_reflection_bind_generic_method_parameters() directly.
15721
15722         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15723         return the already computed `method->signature'.
15724         (method_from_methodspec): New static function to load a method
15725         from a MethodSpec entry.
15726         (mono_get_method_from_token): Call the new method_from_methodspec()
15727         for MethodSpec tokens.  
15728         (mono_get_method_from_token): If we're a generic method, load the
15729         type parameters.
15730
15731         * reflection.c (mono_image_get_memberref_token): Allow
15732         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15733         table.
15734         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15735         (mono_image_create_token): First check whether it's a generic
15736         method (so we'd need to create a MethodSpec), then do the other
15737         two alternatives.
15738         (mono_reflection_bind_generic_method_parameters): Return a
15739         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15740         called directly from the interncall.
15741
15742 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15743
15744         * reflection.c (load_public_key): Move loading of the public key
15745         into managed code.
15746
15747         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15748
15749         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15750         fields.
15751
15752         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15753         culture, hash_alg and public_key. Fixes #49555.
15754
15755 2003-10-17  Martin Baulig  <martin@ximian.com>
15756
15757         * class.h (MonoGenericInst): Moved this declaration here and added
15758         `MonoMethod *generic_method'.
15759
15760         * icall.c
15761         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15762         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15763
15764         * metadata.c (mono_metadata_type_equal): Two types of
15765         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15766         index; ie. don't compare the address of the `MonoGenericParam'
15767         structure.
15768         (mono_metadata_load_generic_params): Removed the `MonoMethod
15769         *method' argument.
15770
15771         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15772         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15773
15774         * reflection.c (method_encode_signature): Encode the number of
15775         generic parameters.
15776         (encode_generic_method_sig): New static function.
15777         (method_encode_methodspec): New static function; creates an entry
15778         in the MethodSpec table for a generic method.
15779         (mono_image_get_methodspec_token): New static function.
15780         (mono_image_create_token): Call mono_image_get_methodspec_token()
15781         for generic methods.
15782         (mono_reflection_bind_generic_method_parameters): New public
15783         function.  Instantiates a generic method.
15784
15785 2003-10-16  Martin Baulig  <martin@ximian.com>
15786
15787         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15788         *gen_params' here from MonoMethodHeader.
15789
15790         * metadata.c (mono_metadata_parse_method_signature): If we have
15791         generic parameters, initialize `method->gen_params' and then set
15792         the correct `type->data.generic_param' in all the parameters.
15793
15794 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15795
15796         * threads.c (mono_threads_get_default_stacksize): New function to 
15797         return the default stacksize.
15798
15799         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15800         termination of the finalizer thread, since the previous method had
15801         race conditions. Fixes #49628.
15802
15803         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15804         as for the other managed threads.
15805
15806 2003-10-16  Martin Baulig  <martin@ximian.com>
15807
15808         * class.c (inflate_generic_signature): Copy `generic_param_count'
15809         and `gen_params'.
15810
15811         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15812         New interncall.
15813
15814         * metadata.c (mono_metadata_parse_method_signature): Actually set
15815         the `method->generic_param_count' here.
15816         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15817
15818 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15819
15820         * object.h: Add a new field to TypedRef to simplify the implementation
15821         of the REFANY opcodes in the JIT.
15822
15823         * icall.c: Make use of the new field.
15824
15825         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15826         dynamically.
15827
15828 2003-10-15  Martin Baulig  <martin@ximian.com>
15829
15830         * class.c (mono_class_from_gen_param): Renamed to
15831         mono_class_from_generic_parameter() and moved most of the
15832         functionality from mono_reflection_define_generic_parameter()
15833         here; ie. we create a "real" class here.
15834         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15835         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15836         previously been called.
15837
15838         * class.h (MonoGenericParam): Moved the declaration of this struct
15839         here from metadata.h and added `MonoMethod *method'.
15840
15841         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15842         interncall.
15843
15844         * loader.c (mono_get_method_from_token): If we have any generic
15845         parameters, call mono_metadata_load_generic_params() to read them
15846         from the MONO_TABLE_GENERICPAR.
15847
15848         * metadata.c (mono_metadata_load_generic_params): Added
15849         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15850
15851         * metadata.h (MonoMethodSignature): Replaced
15852         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15853         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15854
15855         * reflection.c (mono_reflection_define_generic_parameter): Moved
15856         most of the functionality into the new
15857         mono_class_from_generic_parameter(); set the `method' field if
15858         we're a method parameter.       
15859
15860 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15861
15862         * marshal.c (emit_struct_conv): if native size is 0
15863         emit no code.
15864
15865 2003-10-14  Martin Baulig  <martin@ximian.com>
15866
15867         * icall.c: The generics API has changed in the spec since it was
15868         added to System.Type; these modifications make it match the spec
15869         again.
15870         (ves_icall_Type_GetGenericParameters): Renamed to
15871         `ves_icall_Type_GetGenericArguments'.
15872         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15873         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15874         `ves_icall_MonoType_get_HasGenericArguments'.
15875         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15876         `ves_icall_MonoType_get_IsGenericParameter'.
15877         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15878         this is no interncall anymore.
15879         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15880         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15881
15882 2003-10-14  Martin Baulig  <martin@ximian.com>
15883
15884         * reflection.c (mono_reflection_bind_generic_parameters): Also
15885         inflate generic methods if we're reading the class from IL.
15886
15887 2003-10-13  Martin Baulig  <martin@ximian.com>
15888
15889         * reflection.c (mono_reflection_define_generic_parameter): This
15890         method isn't called directly from the icall anymore; take a
15891         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15892         method generic parameters.
15893         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15894         (method_builder_encode_signature): Encode generic parameters.
15895         (mono_image_get_method_info): Write generic params to the
15896         MONO_TABLE_GENERICPARAM table.
15897
15898         * reflection.h (MonoReflectionMethodBuilder): Added
15899         `MonoArray *generic_params'.
15900
15901         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15902
15903         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15904         wrapper for mono_reflection_define_generic_parameter().
15905         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15906
15907 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15908
15909         * marshal.h: Add missing function to fix build.
15910
15911         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15912         the SetLastError pinvoke attribute.
15913
15914         * marshal.c (mono_marshal_set_last_error): New helper function called
15915         by the generated code.
15916         
15917         * marshal.c (mono_mb_emit_branch): New helper function.
15918
15919         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15920
15921         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15922         classes as parameters and return values of delegates. Fixes #29256. 
15923
15924 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15925
15926         * locales.c: use gint32 in non HAVE_ICU case
15927
15928 2003-10-11  Martin Baulig  <martin@ximian.com>
15929
15930         * mono-debug.c (mono_debug_add_method): Added a workaround for
15931         bug #48591.
15932
15933 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15934
15935         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15936         delegates passed to native code must use the STDCALL calling 
15937         convention. Fixes #35987.
15938
15939 2003-10-10  Martin Baulig  <martin@ximian.com>
15940
15941         * class.c (inflate_generic_type): If we're inflating for a generic
15942         type instance (and not for a generic method), return
15943         MONO_TYPE_MVAR unchanged.
15944
15945 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15946
15947         * string-icalls.c: Join ignores null strings in the source array.
15948         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15949         * threads.c: GetAvailableTheads is slightly more accurate.
15950
15951 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15952
15953         * threads.h threads.c : add mono_threads_set_default_stacksize
15954         and pass default to CreateThread calls.
15955
15956 2003-10-09  Dick Porter  <dick@ximian.com>
15957
15958         * icall.c:
15959         * locales.h:
15960         * locales.c: Internal calls for constructing CultureInfo and
15961         related objects from libicu (if its available.)
15962
15963 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15964
15965         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15966
15967 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15968
15969         * threadpool.c: added an argument to async_invoke_thread that is the
15970         item to process, pass the MonoAsyncResult to the thread start function
15971         when creating a new thread. This way we don't need to acquire any lock
15972         when we're creating a new thread. Readded a semaphore for faster
15973         response times (instead of that Sleep i added).
15974
15975 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15976
15977         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15978         get daylight change dates better on Windows, fix handling
15979         of platforms without tm_gmtoff.
15980
15981 2003-10-06  Martin Baulig  <martin@ximian.com>
15982
15983         * class.c (inflate_generic_method): Renamed to
15984         mono_class_inflate_generic_method() and made public.
15985         (mono_class_init): Don't inflate the generic methods here.
15986         (mono_class_from_generic): Added `gboolean inflate_methods'
15987         argument.  Inflate the methods here.
15988
15989         * loader.c (mono_method_get_param_names): Ignore instances of
15990         generic types for the moment.
15991
15992         * reflection.c (fixup_method): Added support for inflated methods.
15993         (mono_image_create_token): Use mono_image_get_methodref_token()
15994         for inflated methods.
15995         (mono_custom_attrs_from_param): Ignore instances of generic types
15996         for the moment.
15997         (mono_reflection_bind_generic_parameters): New public function.
15998         Moved all the functionality from
15999         ves_icall_Type_BindGenericParameters() here and added support for
16000         dynamic types.
16001         (mono_reflection_define_generic_parameter): Initialize
16002         `klass->methods' here.
16003
16004         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16005         functionality into mono_reflection_define_generic_parameter().
16006         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16007         TypeBuilder, return that TypeBuilder.
16008
16009 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16010
16011         * appdomain.c: removed mono_delegate_semaphore.
16012
16013         * threadpool.c:
16014         (mono_thread_pool_add): moved hash table creation inside and the thread 
16015         creation outside of the critical region.
16016         (mono_thread_pool_finish): removed obsolete code.
16017         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16018         continue or exit the thread depending on the queue.
16019
16020 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16021
16022         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16023         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16024         handle more bool marshalling options
16025
16026 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16027
16028         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16029         arrays of structs. Also add a more descriptive error message when
16030         a structure member is marshalled as LPArray.
16031
16032 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16033
16034         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16035         marshalling arrays of complex types. Fixes #29098. Also remove an
16036         usused and incomplete function.
16037
16038 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16039
16040         * gc.c: report heap_size - free_bytes as total memory allocated
16041         (bug#49362).
16042
16043 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16044
16045         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16046         fix timezone handling problems on Windows.
16047         
16048         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16049         asserts when the year is outside the range handled by ms the functions.
16050
16051         * class.c (setup_interface_offsets): If the class is an interface,
16052         fill out its interface_offsets slot.
16053
16054 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16055
16056         * threadpool.c: mark threadpool threads as background.
16057
16058 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16059
16060         * decimal.c - define DECINLINE to nothing if not using GCC
16061
16062 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16063
16064         * assembly.c: More refcount fixes.
16065
16066 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16067
16068         * string-icalls.c: if we're not trimming, return the same string.
16069         When not splitting, don't create a new string.
16070
16071 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16072
16073         * image.c:
16074         (mono_image_open): increment the ref_count inside the critical section.
16075
16076 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16077
16078         * image.c (mono_image_open): Fix reference counting bug.
16079
16080 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16081
16082         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16083         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16084         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16085         mono_lookup_pinvoke_call throws.        
16086
16087 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16088
16089         * reflection.c (mono_reflection_parse_type): Fix #49114.
16090
16091         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16092         temporary workaround for cygwin header problem.
16093
16094         * object.c (mono_object_isinst): Synchronize this with the code
16095         generated by the JIT for casts.
16096
16097 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16098
16099         * reflection.c (encode_type): Fix #38332.
16100
16101 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16102
16103         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16104         the original method from the wrapper method.
16105
16106 2003-09-25  Martin Baulig  <martin@ximian.com>
16107
16108         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16109         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16110         (ves_icall_Type_get_IsGenericInstance): New interncall.
16111
16112 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16113
16114         * object.c: fix cast warning in big endian code.
16115
16116 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16117
16118         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16119         
16120 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16121
16122         * assembly.c: don't call check_env from mono_assembly_load. It's
16123         already done once in mono_assemblies_init and may cause headaches when
16124         multiple threads are loading assemblies.
16125
16126 2003-09-19  Martin Baulig  <martin@ximian.com>
16127
16128         * reflection.c (mono_reflection_define_generic_parameter): Don't
16129         allocate `klass->methods', set `klass->flags' to
16130         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16131
16132 2003-09-18  Martin Baulig  <martin@ximian.com>
16133
16134         * class.c (mono_class_init): Don't create `class->methods' if it's
16135         already initialized.
16136
16137         * metadata.c (mono_metadata_load_generic_params): Make this
16138         actually work.
16139
16140         * reflection.c (mono_reflection_define_generic_parameter): Set
16141         parent class and interfaces from the constraints.
16142
16143         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16144         to keep this struct in sync with the declaration in TypeBuilder.cs.
16145
16146 2003-09-17  Martin Baulig  <martin@ximian.com>
16147
16148         * metadata.h (MonoType): Replaced the data's `int type_param'
16149         field with `MonoGenericParam *generic_param'.
16150         (MonoGenericParam): Added `MonoClass *klass'.
16151
16152         * class.c (mono_class_from_gen_param): Removed the
16153         `MonoImage *image' and `int type_num' arguments.
16154
16155         * metadata.c (mono_metadata_parse_generic_param): New static
16156         method; creates a MonoGenericParam which just contains the index.
16157         (do_mono_metadata_parse_type): Call
16158         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16159         MONO_TYPE_MVAR.
16160
16161         * reflection.c (mono_image_typedef_or_ref): Generic type
16162         parameters may be in the same assembly, but never use a typedef
16163         for them.
16164         (mono_reflection_define_generic_parameter): We're now creating a
16165         "real" class for the type parameter; it's now safe to call
16166         mono_class_from_mono_type() on the class'es type, it'll do the
16167         right thing.
16168
16169 2003-09-16  Martin Baulig  <martin@ximian.com>
16170
16171         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16172         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16173         the `symfile' data structure must be fully initialized before it
16174         gets added to the table.
16175
16176 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16177
16178         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16179
16180         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16181         class init trampolines.
16182
16183 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16184
16185         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16186         to the built-in profiler to turn off time and allocation profiling
16187         respectively.
16188
16189 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16190
16191         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16192         g_direct_equal.
16193
16194         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16195         in human readable form.
16196
16197 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16198
16199         * reflection.c icall.c: Fixed warnings.
16200
16201         * image.c (load_class_names): Use a temporary hash table to hold the
16202         namespaces in order to avoid doing many string comparisons.
16203
16204         * image.h: Fix typo.
16205
16206         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16207         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16208         since the NULL case is short-circuited inside g_hash_table_lookup, 
16209         leading to better performance.  
16210
16211         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16212         obtain the first custom attribute for a given index. Depends on the
16213         CustomAttribute table being sorted by the parent field.
16214
16215         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16216         for better performance.
16217
16218 2003-09-07  Martin Baulig  <martin@ximian.com>
16219
16220         * class.c (mono_class_init): If we're a generic instance, inflate
16221         all our methods instead of loading them from the image.
16222         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16223
16224 2003-09-07  Martin Baulig  <martin@ximian.com>
16225
16226         * mono-debug-debugger.c: Added support for constructors.
16227
16228 2003-09-06  Martin Baulig  <martin@ximian.com>
16229
16230         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16231         New interncall.
16232
16233         * reflection.c (mono_reflection_setup_generic_class): Call
16234         ensure_runtime_vtable() to create the vtable.
16235
16236 2003-09-05  Martin Baulig  <martin@ximian.com>
16237
16238         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16239         MONO_TYPE_MVAR.
16240
16241 2003-09-04  Martin Baulig  <martin@ximian.com>
16242
16243         * reflection.c (mono_reflection_define_generic_parameter): Generic
16244         parameters start with zero.
16245
16246 2003-09-04  Martin Baulig  <martin@ximian.com>
16247
16248         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16249
16250         * reflection.h (MonoReflectionGenericParam): New typedef.
16251         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16252         the generic parameters from the managed TypeBuilder.
16253
16254         * reflection.c (mono_reflection_define_generic_parameter): New function.
16255         (mono_reflection_create_runtime_class): Encode generic parameters.
16256         (mono_reflection_setup_generic_class): New function; this is
16257         called after adding adding all generic params to the TypeBuilder.
16258         (encode_type): Added MONO_TYPE_VAR.
16259
16260 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16261
16262         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16263         here from the JIT.
16264
16265         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16266         load hook.
16267
16268 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16269
16270         * reflection.h reflection.c class.h class.c: Delete duplicate 
16271         definition of mono_type_get_name () from reflection.c and export the
16272         one in class.c.
16273
16274         * class.c: Class loading fixes from Bernie Solomon 
16275         (bernard@ugsolutions.com).
16276
16277         * reflection.c: Endianness fixes from Bernie Solomon 
16278         (bernard@ugsolutions.com).
16279         
16280 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16281
16282         * assembly.h assembly.c: Define a file format version for AOT
16283         libraries.
16284         
16285         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16286
16287         * appdomain.h (MonoJitInfo): New field to determine whenever the
16288         code is domain neutral.
16289         
16290 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16291
16292         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16293
16294 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16295
16296         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16297         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16298         Avoid caching the result since strings must be domain specific. Fixes
16299         #48050.
16300
16301 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16302
16303         * marshal.c (mono_marshal_init): Make this callable multiple times
16304         since it is hard to find a correct place to call it.
16305
16306         * object.c (mono_runtime_class_init): Execute static constructors in
16307         the correct appdomain.
16308
16309         * image.c (build_guid_table): Handle the case when multiple images have
16310         the same GUID.
16311
16312 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16313
16314         * icall.c: added a couple of icalls for System.Web.
16315
16316 2003-08-28  Martin Baulig  <martin@ximian.com>
16317
16318         * icall.c (ves_icall_Type_BindGenericParameters): Use
16319         `klass->generic_inst' instead of `&klass->byval_arg' in the
16320         mono_type_get_object() call.  The returned type must be
16321         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16322
16323 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16324
16325         * NOTES: New file.
16326
16327         * object.c (mono_class_proxy_vtable): Make it thread safe.
16328
16329         * pedump.c: Fix warning.
16330
16331         * object.c appdomain.h: Get rid of metadata_section. 
16332         It is no longer needed and it was causing deadlocks with domain->lock.
16333
16334         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16335
16336 2003-08-26  Martin Baulig  <martin@ximian.com>
16337
16338         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16339
16340 2003-08-26  Martin Baulig  <martin@ximian.com>
16341
16342         * pedump.c (main): Call mono_metadata_init(),
16343         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16344         and mono_loader_init().
16345
16346 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16347
16348         * loader.h: Add missing include to fix build.
16349
16350         * image.h: mono_image_load_references is no more.
16351
16352         * assembly.c: Reworked assembly loading to make it really thread safe.
16353         After these changes, the assembly returned by mono_assembly_open is
16354         fully initialized, i.e. all its references assemblies are loaded.
16355
16356         * assembly.c (mono_image_load_references): Renamed to 
16357         mono_assembly_load_references, and made private, since clients no
16358         longer need to call it.
16359
16360         * class.c: Removed calls to mono_assembly_load_references, since it was
16361         a source of deadlocks.
16362
16363         * loader.h loader.c class.h class.c: Protect data structures using a 
16364         new lock, the loader lock.
16365
16366         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16367         GPtrArrays only when needed.
16368
16369         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16370         into empty structures by mcs. Fixes pinvoke7.cs.
16371         
16372         * domain.c (mono_init): Call a new initialization function.
16373
16374         * appdomain.c (mono_runtime_init): Call the new initializer function
16375         of the marshal module.
16376
16377         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16378         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16379
16380         * marshal.h marshal.c: Added locks around the wrapper caches to make
16381         this module thread safe.
16382
16383         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16384         this argument. Fixes pinvoke1.exe.
16385
16386 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16387
16388         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16389         enumeration of values. Removed fields to store remote call output values in
16390         MonoAsyncResult. Not needed any more.
16391         * object.c: Initialize call_type and async_result fields in mono_message_init.
16392         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16393         dispatching the message.
16394         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16395         async call to finish. To do it use a message with EndInvoke call type.
16396
16397 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16398
16399         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16400         determines whenever a method has marshalling info.
16401
16402 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16403
16404         * assembly.c: fix the build on windows.
16405
16406 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16407
16408         * object.cs: Fixed bug #47785.
16409
16410 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16411
16412         * string-icalls.c (StringReplace): If their are no occurances of
16413         the old string found return a reference to the supplied
16414         string. This saves some memory and matches MS behavoir.
16415         
16416 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16417
16418         * socket-io.c: fixed compilation for systems that define AF_INET6
16419         and don't define SOL_IP/SOL_IPV6.
16420
16421 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16422
16423         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16424         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16425
16426         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16427
16428         * domain.c: Make this module thread safe.
16429
16430         * domain.c (mono_init): Call new initialization function.
16431
16432         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16433         reference types too. Fixes #38812.
16434
16435         * image.c (mono_image_init): Fixed warnings.
16436
16437         * class.c (mono_class_from_typeref): Handle assembly load failure
16438         correctly.
16439
16440         * appdomain.c (add_assemblies_to_domain): Handle the case when
16441         the references of an assembly are not yet loaded.
16442
16443         * metadata.c image.c assembly.c: Moved initialization of global
16444         variables to a separate function called at startup since lazy 
16445         initialization of these variables is not thread safe.
16446         
16447         * image.c assembly.c: Made this module thread safe by adding locks in 
16448         the appropriate places.
16449
16450         * domain.c (mono_init): Call the new initialization functions of the
16451         three modules.
16452
16453 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16454
16455         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16456           make a direct call. It is proxy's work to make the call asynchronous.
16457           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16458           the return values.
16459         * object.cs: mono_method_call_message_new(): read AsyncResult and
16460           state object from parameters list, if this info is requested.
16461         * object.h: Added fields to store remote call output values in
16462           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16463
16464 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16465
16466         * object.h: add needed fields to MonoThread.
16467         * threads.c, threads.h: allow registering a function to cleanup data
16468         allocated per thread by the JIT.
16469
16470 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16471
16472         * loader.h: portability fix by Bernie Solomon
16473         * <bernard@ugsolutions.com>.
16474
16475 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16476
16477         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16478         return a MonoArray. This simplifies the code and also ensures that
16479         the cache allways contains an object reference as a value.
16480
16481         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16482         function.
16483
16484 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16485
16486         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16487         fixes a problem with byte ordering when getting the address family for
16488         a socket.
16489
16490 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16491
16492         * .cvsignore: Added monosn.
16493
16494         * reflection.h reflection.c loader.c: Added support for parameter
16495         marshalling to dynamically created types. Fixes #47295.
16496
16497 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16498
16499         * rand.c: remove useless warnings.
16500
16501 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16502
16503         * class.c: implemented ldtoken for methods and fieldrefs.
16504
16505 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16506
16507         * threadpool.c: when mono_async_invoke was called, no one took care of
16508         monitoring the queue. So if the method invoked took some time and we
16509         got new async invoke requests after 500 ms (the thread created waited
16510         that long in WaitForSingleObject), the new async invoke was not called
16511         until the previous one finished.
16512
16513         This is fixed now. Thanks to Totte for helping with it.
16514
16515 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16516
16517         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16518
16519 2003-08-11  Martin Baulig  <martin@ximian.com>
16520
16521         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16522
16523 2003-08-06  Martin Baulig  <martin@ximian.com>
16524
16525         * mono-debug-debugger.c: Added support for static fields,
16526         properties and methods.
16527
16528 2003-08-06  Martin Baulig  <martin@ximian.com>
16529
16530         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16531         make this work for applications with multiple application domains.
16532
16533 2003-08-04  Martin Baulig  <martin@ximian.com>
16534
16535         * mono-debug-debugger.c: Completely reworked the type support; the
16536         most important thing is that we're now just using one single
16537         `MonoType' instance per type.
16538
16539 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16540
16541         * mono-endian.h, mono-endian.c, icall.c: Added icall
16542         ves_icall_System_Double_AssertEndianity to assert double word endianity
16543         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16544
16545 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16546
16547         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16548         support, icalls and fixes.
16549
16550 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16551
16552         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16553         classes that are a punctuation character in .NET is not the same a
16554         g_unichar_ispunct.
16555
16556 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16557
16558         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16559
16560 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16561
16562         * icall.c: Add new MemCopy internalcall.
16563         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16564         Simplified code; It is not necessary to handle all the cases here,
16565         as the C# code takes care of it.  Only handle the case of the name
16566         resource embedded into the assembly.
16567
16568         Changed signature to return the data pointer and the size of the
16569         data. 
16570
16571 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16572
16573         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16574         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16575
16576 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16577
16578         * socket-io.c: ignore EINTR error in select.
16579
16580 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16581
16582         * class.h, class.c: removed unused subclasses field in MonoClass.
16583
16584 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16585
16586         * icall.c: improve fix of get_base_definition(). If the parent class
16587           doesn't have the mehod, look at the parent of the parent.
16588         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16589           to check if a parameter is an in or out parameter
16590           (PARAM_ATTRIBUTE_IN is not set by default).
16591           mono_method_return_message_restore(): Use mono_class_value_size to
16592           get the size of a value type. mono_type_stack_size (parameterType)
16593           does not return the correct value if parameterType is byRef.
16594           mono_load_remote_field(), mono_load_remote_field_new(),
16595           mono_store_remote_field(), mono_store_remote_field_new():
16596           raise exception if the remote call returns an exception.
16597
16598 2003-07-28  Martin Baulig  <martin@ximian.com>
16599
16600         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16601         method.  This is a wrapper around mono_runtime_invoke() which
16602         boxes the instance object if neccessary.
16603
16604 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16605
16606         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16607         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16608
16609 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16610
16611         * icall.c: disable mcs bug workaround.
16612
16613 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16614
16615         * object.c (mono_runtime_class_init): Take the metadata_section
16616         mutex before obtaining the domain mutex.
16617
16618         * appdomain.h: Added definition of metadata_section mutex here. 
16619
16620         * object.c: define metadata_mutex here.
16621
16622 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16623
16624         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16625         fixed.
16626
16627 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16628
16629         * reflection.c: Fix bug #46669
16630
16631 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16632
16633         * exception.c:
16634         * exception.h:
16635         * icall.c:
16636         * object.h: fill in the type name for TypeLoadException.
16637
16638 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16639
16640         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16641         relationship between TypeBuilders while compiling corlib) and bug
16642         45993 (Array types returned from the runtime while compiling
16643         corlib were from the loaded corlib).
16644
16645 2003-07-22  Martin Baulig  <martin@ximian.com>
16646
16647         * mono-debug-debugger.c: Reworked the type support a bit more;
16648         distinguish between types and classes.
16649
16650 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16651
16652         * icall.c: add IsArrayImpl icall.
16653
16654 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16655
16656         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16657         initializing real_size only once. Also fix bug #46602.
16658
16659 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16660
16661         * object.c: Renamed mono_metadata_section to metadata_section.
16662
16663 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16664
16665         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16666           empty array if the type is an array. Fixed.
16667           ves_icall_MonoMethod_get_base_definition: if the base method
16668           is abstract, get the MethodInfo from the list of methods of
16669           the class.
16670         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16671           and it was 1-based. Fixed in mono_param_get_objects.
16672
16673 2003-07-20  Martin Baulig  <martin@ximian.com>
16674
16675         * mono-debug.h: Set version number to 31.
16676         (mono_debug_init): Added `MonoDomain *' argument.
16677
16678         * mono-debug-debugger.c: Reworked the type support; explicitly
16679         tell the debugger about builtin types; pass the `klass' address to
16680         the debugger.
16681
16682 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16683
16684         * image.c: Allow new metadata tables to be loaded without a
16685         warning. Also update the warning message to give the new constant value.
16686                 
16687 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16688
16689         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16690         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16691         array type representation changes.
16692
16693 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16694
16695         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16696         on Environment.Exit () call.
16697
16698 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16699
16700         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16701         requires a matching corlib.
16702
16703 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16704
16705         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16706           Committed again without the CRs.
16707         
16708 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16709
16710         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16711           getting it from the "this" socket instance. Did not work
16712           if the socket is a subclass of Socket.
16713           Also fixed bug #35371.
16714
16715 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16716
16717         * metadata.c: fixed size for TypedByRef.
16718         * loader.c: when searching for a method, consider the vararg amrker.
16719         * unicode.c, decimal.c: constify some arrays.
16720
16721 2003-07-15  Dick Porter  <dick@ximian.com>
16722
16723         * socket-io.c: Fixed compilation for gcc < 3.2.
16724
16725         Fixed compilation for machines that don't have AF_INET6 (thanks to
16726         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16727
16728         Fixed compile warnings.
16729         
16730         Fixed formatting and line endings.
16731
16732 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16733
16734         * socket-io.h:
16735         * socket-io.c: Added IPv6 support.
16736
16737 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16738
16739         * class.c (mono_class_is_assignable_from): New function to implement
16740         the is_assignable_from logic. Used by mono_object_isinst, 
16741         Type::IsAssignableFrom () and the interpreter.
16742
16743         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16744         Object, even interfaces.
16745         
16746         * object.c (mono_object_isinst): Implement in terms of 
16747         is_assignable_from.
16748
16749         * icall.c (ves_icall_type_is_assignable_from): New icall.
16750
16751 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16752
16753         * domain.c (foreach_domain): fix compiler warning.
16754
16755 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16756
16757         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16758         not available on all plattforms
16759
16760 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16761
16762         * image.h image.c: Store the metadata version string in MonoImage.
16763         * icall.c: New icall to retrieve the image version.
16764         * reflection.c (create_dynamic_image): Fill in the image version field
16765         * reflection.c (build_compressed_metadata): Use the image version
16766         from the image structure.
16767
16768 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16769
16770         * appdomain.c: modified comment.
16771         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16772         That will be its last iteration when mono_gc_cleanup is called from
16773         mono_runtime_cleanup and before the domain is unloaded.
16774
16775         Fixes bug #45962.
16776
16777 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16778
16779         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16780         attributes.
16781
16782 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16783
16784         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16785         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16786         Bernie Solomon <bernard@ugsolutions.com>.
16787
16788 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16789
16790         * object.c, object.h: provide mono_object_new_fast() for faster
16791         allocation in some special cases.
16792
16793 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16794
16795         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16796         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16797
16798 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16799
16800         * threadpool.c: fix leaks.
16801
16802 2003-07-01  Dick Porter  <dick@ximian.com>
16803
16804         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16805         using MonoGHashTables.  Fixes threadpool bug posted to list.
16806
16807 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16808
16809         * image.h, image.c: added support to load an assembly from a byte array.
16810         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16811         assembly bundle support.
16812
16813 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16814
16815         * threadpool.c (mono_thread_pool_add): keep a reference to the
16816         AsyncResult to prevent GC
16817
16818 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16819
16820         * class.c: leak fix.
16821
16822 2003-06-25  Dick Porter  <dick@ximian.com>
16823
16824         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16825         for the async object, the WaitHandle object will close the handle.
16826         Fixes bug 45321.
16827
16828 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16829
16830         * class.c: in mono_array_class_get (), lookup from the hash with the
16831         same type we insert: this works around a bug in
16832         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16833         lluis. The real fix will have to wait for after the release.
16834
16835 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16836
16837         * icall.c: fix memory leak when getting type members.
16838
16839 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16840
16841         * reflection.c: added more pubtoken special cases.
16842
16843 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16844
16845         * class.c: handle field offset correctly when class size
16846         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16847
16848 2003-06-20  Martin Baulig  <martin@ximian.com>
16849
16850         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16851         *image' field.
16852
16853 2003-06-20  Martin Baulig  <martin@ximian.com>
16854
16855         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16856
16857 2003-06-20  Martin Baulig  <martin@ximian.com>
16858
16859         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16860         just distinguish between variables in registers and variables at
16861         an offset relative to a register.
16862
16863 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16864
16865         * icall.c: #ifdef out latest changes until mcs is fixed.
16866
16867 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16868
16869         * icall.c: return members in metadata order.
16870
16871 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16872
16873         * icall.c: avoid infinite loop in GetTimeZoneData.
16874
16875 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16876
16877         * icall.c: added Marshal.Prelink/All icalls.
16878
16879 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16880
16881         * object.c, object.h: fix warnings and do some overflow checking
16882         when creating arrays.
16883
16884 2003-06-17  Dick Porter  <dick@ximian.com>
16885
16886         * file-io.h:
16887         * file-io.c: File attributes need to be tweaked slightly when
16888         passed from the managed to the w32 world.
16889
16890 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16891         * profiler.h profiler-private.h profiler.c: Rework last patch
16892         based on suggestion by Paolo.
16893         
16894 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16895
16896         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16897         instruction level coverage data collection.
16898         * profiler.h profiler.c (: Added new callback function which can be
16899         used by the profiler to limit which functions should have coverage
16900         instrumentation.
16901         * profiler.c (mono_profiler_load): Call g_module_build_path to
16902         generate the file name of the profiler library.
16903
16904 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16905
16906         * profiler.c, profiler.h, profiler-private.h: added basic block 
16907         coverage profiling API.
16908
16909 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16910
16911         * reflection.c (mono_reflection_create_runtime_class): Add support
16912         for events in dynamically generated code.
16913
16914         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16915         not allocated.
16916
16917 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16918
16919         * icall.c: when getting timezone info, return reasonable values if we
16920         can't get the actual data.
16921
16922 2003-06-14  Dick Porter  <dick@ximian.com>
16923
16924         * threads.c (start_wrapper): Remove the reference to the thread
16925         object in the TLS data, so the thread object can be finalized.
16926         This won't be reached if the thread threw an uncaught exception,
16927         so those thread handles will stay referenced :-( (This is due to
16928         missing support for scanning thread-specific data in the Boehm GC
16929         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16930
16931 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16932
16933         * reflection.c: ensure streams and tables are first allocated with
16934         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16935
16936 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16937
16938         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16939
16940 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16941
16942         * reflection.c (mono_reflection_create_runtime_class): Add support for
16943         properties to dynamically created classes.
16944         * reflection.c: Fix a few places where non-MonoObjects were inserted
16945         into the tokens hashtable.
16946
16947 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16948
16949         * object.c: some support to handle out of memory exceptions.
16950
16951 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16952
16953         * marshal.c (mono_marshal_get_native_wrapper): support reference
16954         return types
16955
16956 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16957
16958         * object.h, object.c: more portability stuff from Bernie Solomon.
16959         Unexport mono_object_allocate(). Added mono_object_unbox ().
16960         Set exitcode when an unhandled exception is thrown.
16961
16962 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16963
16964         * marshal.c (mono_marshal_get_native_wrapper): use custom
16965         marshaler for return types.
16966
16967 2003-06-10  Dick Porter  <dick@ximian.com>
16968
16969         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16970         ip_mreq is available
16971
16972 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16973
16974         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16975         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16976         by Bernie Solomon <bernard@ugsolutions.com>.
16977
16978 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16979
16980         * gc.c (mono_gc_init): Avoid error message on shutdown when
16981         GC_DONT_GC=1 is used.
16982
16983         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16984         New icall to return the GUID of a module.
16985
16986 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16987
16988         * class.c: ensure instance size always includes the parent's size
16989         even whem class size is set explicitly (fixes bug#44294).
16990
16991 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16992
16993         * profiler.h, profiler.c: made the simple profiler thread-safe,
16994         get more accurate timing info. Allow the loading of an
16995         externally-developed profiler module.
16996
16997 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16998
16999         * marshal.c (mono_marshal_get_native_wrapper): improved
17000         class/byref arguments.
17001         (mono_marshal_get_native_wrapper): better string marshaling support.
17002
17003 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17004
17005         * class.c: ensure .pack and .size are handled correctly and
17006         simplified layout of static fields.
17007
17008 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17009
17010         * appdomain.c
17011         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17012
17013         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17014         current directory (fix bug 44008)
17015
17016 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17017
17018         * marshal.c (mono_marshal_get_native_wrapper): started support for
17019         custom marshalers.
17020         (mono_delegate_to_ftnptr): consider marshalling specifications
17021
17022 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17023
17024         * reflection.c, reflection.h: emit custom marshal info.
17025
17026 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17027
17028         * object.c: free the GError.
17029         * icall.c: added CloseEvent_internal.
17030         * threads.[ch]:
17031         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17032         call.
17033
17034 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17035
17036         * loader.c (mono_method_get_signature): Add support for dynamic
17037         assemblies.
17038
17039 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17040
17041         * reflection.c: fixed bug #43905.
17042
17043 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17044
17045         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17046         handling TypedReference and ArgIterator.
17047         * loader.c, loader.h: added function to get signature at call site.
17048
17049 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17050
17051         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17052         data readonly. Buglets and warning fixes. Some MethodSpec support.
17053
17054 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17055
17056         * class.h, class.c, object.c: remove relative numbering support.
17057
17058 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17059
17060         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17061         free the string, until we get a chance to fix Gtk#
17062
17063 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17064
17065         * marshal.c: revert last patch.
17066
17067 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17068
17069         * icall.c: updates for new mono_class_vtable() not calling
17070         the type constructor anymore.
17071
17072 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17073
17074         * object.h, object.c: separate vtable creation from type
17075         initialization. Make running the .cctor thread safe.
17076
17077 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17078
17079         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17080
17081 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17082
17083         * loader.c (mono_get_method): consider calling convention
17084
17085 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17086
17087         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17088         to return the invisible global type for a module.
17089
17090         * reflection.c (mono_image_build_metadata): Emit global fields too.
17091
17092 2003-05-20  Peter Williams  <peterw@ximian.com>
17093
17094         * loader.c (mono_lookup_internal_call): Add a few newlines.
17095
17096 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17097
17098         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17099         literal strings.
17100
17101         * appdomain.c (set_domain_search_path): Recalculate search path when
17102         AppDomainSetup.PrivateBinPath changes.
17103
17104         * object.c (mono_class_compute_gc_descriptor): It turns out some
17105         parts of the class libs (like System.Thread) holds pointers to
17106         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17107         to treat native int a pointer type here.
17108         
17109 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17110
17111         * appdomain.h, domain.c: add hashtable for jump target resolution.
17112
17113 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17114
17115         * reflection.h reflection.c icall.c: Added new icalls 
17116         GetManifestResourceInfoInternal, GetModulesInternal and support
17117         infrastructure.
17118
17119 2003-05-16  Dick Porter  <dick@ximian.com>
17120
17121         * icall.c:
17122         * file-io.h:
17123         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17124
17125 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17126
17127         * object.c: mono_store_remote_field: little fix to previous patch.
17128
17129 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17130
17131         * class.c: add constructors to array classes.
17132         * icall.c: special case array construction for InternalInvoke (),
17133
17134 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17135
17136         * class.h class.c reflection.c object.c: Added support for field
17137         defaults in dynamically generated classes.
17138
17139 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17140
17141         * reflection.c: properly encode charset for ddlimport.
17142
17143 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17144
17145         * threads.c: allow compiling without GC.
17146
17147 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17148
17149         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17150         handling of thread static data.
17151
17152 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17153
17154         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17155
17156 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17157
17158         * class.c (mono_array_class_get): always set the serializable flags
17159         (mono_array_class_get): always set the SEALED attribute for array types
17160
17161 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17162
17163         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17164         attributes (fix for bug 42021).
17165
17166 2003-05-12  Dick Porter  <dick@ximian.com>
17167
17168         * gc.c: Don't run finalizers when the finalizer thread is
17169         finishing up, because the default domain has already been
17170         destroyed.
17171
17172 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17173
17174         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17175         value is null, we should throw an exception.   This is slightly
17176         different than the other conventions used for the constructor.
17177
17178 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17179
17180         * socket-io.c: fixed windows build.
17181
17182 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17183
17184         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17185
17186 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17187
17188         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17189         compilers.
17190
17191 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17192
17193         * class.c (mono_class_layout_fields): Add experimental GC aware
17194         auto layout facility. Requires class library changes to work correctly.
17195
17196         (mono_class_setup_vtable): Avoid overriding explicit interface
17197         method implementations. Fixes iface3.exe test.
17198
17199         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17200         object reference.
17201         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17202         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17203
17204         * metadata.h: Add new type classification macro which determines
17205         whenever the type holds an object reference.
17206
17207 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17208
17209         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17210
17211 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17212
17213         * gc.c (finalizer_thread): Work around a GC bug.
17214
17215 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17216
17217         * marshal.c (emit_struct_conv): allow unions
17218
17219         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17220
17221 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17222
17223         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17224
17225 2003-05-06  Martin Baulig  <martin@ximian.com>
17226
17227         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17228
17229 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17230
17231         * socket-io.c:
17232         (Select_internal): allow NULLs, don't create arrays if not needed.
17233         Coupled with Socket.cs changes.
17234
17235         * threadpool.c:
17236         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17237         register a finalizer for it that will close the semaphore handle. This
17238         fixes the leak and make Lupus' test run with > 4080 loops.
17239
17240 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17241
17242         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17243         Jerome Laban (bug #42287)
17244
17245 2003-05-02  Martin Baulig  <martin@ximian.com>
17246
17247         * debug-mono-symfile.h
17248         (MonoSymbolFile): Moved declaration into mono-debug.h.
17249         (MonoDebugMethodJitInfo): Likewise.
17250         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17251         argument.
17252         (_mono_debug_address_from_il_offset): Take a
17253         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17254
17255         * mono-debug.h
17256         (MonoDebugDomainData): New struct.
17257         (mono_debug_get_domain_data): New function.
17258         (mono_debug_add_method): Take an additional `MonoDomain *'
17259         argument.
17260         (mono_debug_source_location_from_address): Likewise.
17261         (mono_debug_il_offset_from_address): Likewise.
17262         (mono_debug_address_from_il_offset): Likewise.
17263
17264 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17265
17266         * reflection.c: one more check for null type in custom attrs.
17267
17268 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17269
17270         * reflection.c: avoid warning (comparison is always false due to limited
17271         range of data type).
17272
17273 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17274
17275         * icall.c: throw an exception in Type.GetField if the argument 'name'
17276         is NULL.
17277
17278 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17279
17280         * reflection.c: fixed handling of enums in named arguments to custom
17281         attributes (bug #42123).
17282
17283 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17284
17285         * reflection.c: use the right array element type and handle
17286         a null for a Type argument, too.
17287
17288 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17289
17290         * reflection.c: handle arrays as arguments to custom attributes.
17291
17292 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17293
17294         * reflection.c: handle a string value in a custom attr
17295         ctor that takes an object.
17296
17297 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17298
17299         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17300         (fix bug #42063)
17301
17302 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17303
17304         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17305
17306 2003-04-27  Martin Baulig  <martin@ximian.com>
17307
17308         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17309         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17310         MONO_DEBUGGER_EVENT_BREAKPOINT.
17311         (mono_breakpoint_trampoline_code): Removed.
17312         (mono_debugger_event_handler): The last argument is now a
17313         `guint32'.
17314         (mono_debugger_insert_breakpoint_full): Removed the
17315         `use_trampoline' argument.
17316         (mono_debugger_method_has_breakpoint): Likewise.
17317         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17318         mono_debugger_breakpoint_callback(); take the method and
17319         breakpoint number as arguments.
17320
17321 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17322
17323         * metadata.c: fix off by one when loading parameters attributes.
17324
17325 2003-04-24  Martin Baulig  <martin@ximian.com>
17326
17327         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17328
17329 2003-04-24  Martin Baulig  <martin@ximian.com>
17330
17331         * mono-debug-debugger.c: Moved all code which interacts with the
17332         Mono Debugger here.
17333
17334         * debug-mono-symfile.c: This code now just deals with the symbol
17335         file itself, the debugger code is now in mono-debug-debugger.c.
17336
17337 2003-04-23  Martin Baulig  <martin@ximian.com>
17338
17339         * mono-debug.c (mono_debug_source_location_from_il_offset):
17340         New method; like mono_debug_source_location_from_address(), but
17341         takes an IL offset instead of a machine address.
17342
17343 2003-04-23  Martin Baulig  <martin@ximian.com>
17344
17345         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17346         `line' field; this is now computed by the debugger.
17347
17348 2003-04-23  Martin Baulig  <martin@ximian.com>
17349
17350         * mono-debug.[ch]: New files.  This is the new debugging interface.
17351
17352         * mono-debug-debugger.[ch]: New files.  Moved all code which
17353         interacts with the Mono Debugger here.
17354
17355 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17356
17357         * domain.c (mono_init): initialize mono_defaults.monitor_class
17358
17359 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17360
17361         * reflection.c (method_encode_code): Add a spicy exception to help
17362         future compiler authors.
17363
17364 2003-04-21  Martin Baulig  <martin@ximian.com>
17365
17366         * icall.c
17367         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17368         Make this work with relative pathnames; g_filename_to_uri() needs
17369         an absolute filename.
17370
17371 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17372
17373         * icall.c: Track name changes in Object and ValueType.
17374
17375 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17376
17377         * metadata.c (mono_type_stack_size): size should be a multiple of
17378         sizeof (gpointer)
17379
17380 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17381
17382         * gc.c:
17383         (internal_domain_finalize): moved into mono_domain_finalize. No need
17384         to create another thread because the finalizers will be run in the
17385         finalizer thread.
17386         
17387         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17388         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17389         to be run (MS does this too).
17390
17391 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17392
17393         * object.c (mono_class_compute_gc_descriptor): Update comment.
17394
17395         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17396
17397         * image.h: Add synchronized wrapper cache.
17398
17399         * image.c (do_mono_image_open): Initialize cache.
17400
17401         * reflection.c (create_dynamic_mono_image): Initialize cache.
17402
17403 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17404
17405         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17406         ves_icall_System_Buffer_ByteLengthInternal.
17407
17408 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17409
17410         * reflection.c: setup klass->nested_in earlier. Allow
17411         a dash in the assembly name.
17412
17413 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17414
17415         * metadata.c (mono_type_to_unmanaged): dont access
17416         type->data.klass for MONO_TYPE_OBJECT
17417         (mono_type_to_unmanaged): consider System.Delegate class
17418
17419 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17420
17421         * class.c: just setup supertypes in the proper place instead of
17422         initializing the full element class for arrays.
17423
17424 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17425
17426         * class.c: ensure the element class of arrays is initialized.
17427         Setup the supertype info for array classes, too.
17428
17429 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17430
17431         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17432
17433 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17434
17435         * Makefile.am: re-added -m option when running cygpath. This way,
17436         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17437         separator.
17438         * mono-config.c: same codepath for locating mono config file for WIN32
17439         and the rest.
17440         * assembly.c: if mono_assembly_setrootdir is called, don't override
17441         the value set.
17442
17443 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17444
17445         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17446         MONO_ASSEMBLIES variable.
17447
17448 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17449
17450         * icall.c: added Assembly::GetNamespaces() icall.
17451
17452 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17453
17454         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17455
17456 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17457
17458         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17459         * object.c: fixed bug in the construction of vtable for proxies
17460
17461 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17462
17463         * object.c (mono_array_new): Mark mono_array_new as an icall.
17464
17465 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17466
17467         * class.c: fixed test for public method when overriding interfaces.
17468         Closes bug #40970.
17469
17470 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17471
17472         * appdomain.h, domain.c: added mono_domain_foreach() to
17473         be able to access the currently loaded appdomains.
17474         * object.c: make string interning work across sppdomains.
17475         Mark some functions for use as icalls.
17476
17477 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17478
17479         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17480
17481         * reflection.h reflection.c: Allocate long living data using 
17482         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17483
17484         * reflection.c: Double the allocation size in streams instead of
17485         increasing it, to prevent unneccesary copying on large assemblies.
17486         
17487         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17488         creation if the assembly does not have the Run flag set.
17489
17490 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17491
17492         * class.h: avoid the C++ keywords in header files (Jerome Laban
17493         spotted and fixed this).
17494
17495 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17496
17497         * object.c:
17498         (mono_unhandled_exception): fill in the arguments for the
17499         UnhandledException event. Only trigger that event for the default
17500         domain (as MS does).
17501
17502 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17503
17504         * object.c: Improve typed allocation stuff based on suggestions from
17505         Paolo. Also turn it on if the GC library supports it.
17506
17507 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17508
17509         * object.c object.h class.h: Added experimental typed allocation
17510         facility using the interfaces in gc_gcj.h.
17511
17512         * os/gc_wrapper.h: Added new include files.
17513         
17514 2003-04-03  Martin Baulig  <martin@ximian.com>
17515
17516         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17517         which is not yet enabled by default.
17518
17519         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17520         functions.
17521         (mono_gc_lock, mono_gc_unlock): New static functions.
17522
17523         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17524         functions; stop/start the world for the garbage collector.  This
17525         is using the windows API; we need to complete the SuspendThread()/
17526         ResumeThread() implementation in the io-layer to make this work on Unix.
17527         (mono_gc_push_all_stacks): New public function; tells the garbage
17528         collector about the stack pointers from all managed threads.
17529
17530 2003-04-03  Martin Baulig  <martin@ximian.com>
17531
17532         * object.h (MonoThread): Added `gpointer stack_ptr'.
17533
17534         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17535
17536 2003-04-03  Martin Baulig  <martin@ximian.com>
17537
17538         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17539
17540 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17541
17542         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17543         field.last.
17544
17545 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17546
17547         * loader.c (mono_lookup_internal_call): Report the corlib that is
17548         out of sync.
17549
17550 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17551
17552         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17553         System.DBNull (it's class not valuetype).
17554
17555 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17556
17557         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17558         if the array method was already assigned a token (fixes bug#40646).
17559
17560 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17561
17562         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17563         if no assembly is given.
17564
17565 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17566
17567         * metadata.h: Added the new tables.
17568
17569         * row-indexes.h: Added definitions for new tables.
17570
17571         * metadata.c: Add schemas for new tables, and add support for
17572         computing the sizes of them.
17573
17574         * class.c: Update for handling the new type cases.
17575
17576 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17577
17578         * metadata.h (MONO_TYPE_IS_VOID): new macro
17579
17580 2003-03-31  Martin Baulig  <martin@ximian.com>
17581
17582         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17583
17584         * threads.c (mono_thread_new_init): Call `thread_created' in the
17585         mono_thread_callbacks.
17586
17587 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17588
17589         * loader.h: added marshalbyrefobject_class to mono_defaults
17590         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17591         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17592           generation of output parameters.
17593           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17594         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17595           contextbound and the target object belongs to the context of the caller.
17596         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17597         * object.c: Implemented support for interfaces and abstract classes
17598           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17599           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17600
17601 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17602
17603         * class.h class.c (mono_class_is_subclass_of): New function.
17604         
17605         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17606         routines for most common case (calls from ArrayList::ToArray).
17607
17608         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17609         routine so programs which call Environment::Exit() can be profiled.
17610
17611         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17612         Added MONO_ARCH_SAVE_REGS.
17613
17614         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17615
17616 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17617
17618         * blob.h: Add a couple of new MonoType types definitions.
17619
17620         * tabledefs.h: Add a couple of new call convs.
17621
17622 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17623
17624         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17625         the layout of the class.
17626
17627         * reflection.c (alloc_table): double the size on overflow to avoid
17628         unnecessary copying.
17629
17630         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17631         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17632         null so it can be garbage collected.
17633         
17634 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17635
17636         * reflection.c (mono_reflection_get_type): Return the resolved type
17637         only if it is in the assembly we searched.
17638
17639         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17640
17641         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17642         method.
17643
17644 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17645
17646         * appdomain.c:
17647         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17648         the right one is 'file:///blah', but MS allows it.
17649         * assembly.c:
17650         (mono_assembly_open): allow 'file://blah'
17651
17652         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17653
17654 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17655
17656         * socket-io.c: fixes bug #40310.
17657
17658 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17659
17660         * reflection.c (mono_reflection_parse_type): handle deeply nested
17661         types correctly.
17662
17663         * reflection.c (mono_image_create_token): Use unique token values
17664         since they will be put into a hash table.
17665
17666         * class.c (mono_class_setup_vtable): If a method occurs in more than
17667         one place in the vtable, and it gets overriden, then change the
17668         other occurances too.
17669
17670         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17671         object as return type.
17672
17673 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17674
17675         * icall.c: Deleted "ToString" implementation for double and float
17676         because they are full implemented in managed code.
17677
17678 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17679
17680         * reflection.c, reflection.h: implemented and exported functions
17681         to retrieve info about custom attributes.
17682
17683 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17684
17685         * appdomain.c: moved Uri handling to assembly.c
17686         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17687         work when using a file Uri in *nix and windows.
17688
17689         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17690         GetReferencedAssemblies.
17691
17692 2003-03-18  Dick Porter  <dick@ximian.com>
17693
17694         * icall.c: Rename a couple of internal calls
17695
17696         * threads.c: Set the thread state to Stopped when a thread exits.
17697         Fixes bug 39377.
17698
17699 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17700
17701         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17702         New icall.
17703
17704         * object.c (mono_class_vtable): fix warning.
17705
17706 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17707
17708         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17709
17710         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17711         memory.
17712         (method_encode_clauses): Create exception info structures in the right
17713         order.
17714         (mono_reflection_setup_internal_class): Initialize supertypes field.
17715
17716         * class.c object.c: Handle interfaces which implement other interfaces 
17717         correctly.
17718
17719         * class.h class.c: Move the supertypes array initialization code into 
17720         a separate function so it can be used for dynamic types too. Also call
17721         it earlier, in mono_class_init(), since it can be used before the
17722         type is initialized.
17723
17724 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17725
17726         * Makefile.am:
17727         * assembly.c:
17728         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17729
17730         * appdomain.c:
17731         * appdomain.h:
17732         * marshal.c:
17733         * object.c: remove warnings.
17734
17735 2003-03-13  Martin Baulig  <martin@ximian.com>
17736
17737         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17738         (MonoDebugLexicalBlockEntry): New types.
17739
17740         * debug-mono-symfile.c
17741         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17742
17743 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17744
17745         * process.c: ret can be any non-zero value accroding to MS doc.
17746
17747 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17748
17749         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17750         fixing a warning for a miss-used prototype, would have cause
17751         random memory corruption.
17752
17753 2003-03-07  Martin Baulig  <martin@ximian.com>
17754
17755         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17756         getting really annoying ....
17757
17758 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17759
17760         * reflection.c (fixup_method): added support for array methods.
17761
17762 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17763
17764         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17765         (pointed out by Michael Adams).
17766
17767 2003-03-04  Dick Porter  <dick@ximian.com>
17768
17769         * icall.c: Temporarily reverted the Double and Single ToString()
17770         change, because it broke nunit.
17771
17772 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17773
17774         * object.h, threads.h: make include files compatible with C++
17775         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17776
17777 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17778
17779         * icall.c: Erased ToString helper functions for Double and Single.
17780         Now, that implementations ar all in managed code (Double and Single
17781         Formatters).
17782
17783 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17784
17785         * appdomain.c: Added method for initializing the default context of
17786         a domain. Added internal call for getting the default context.
17787         * appdomain.h: Added context variable in MonoDomain struct.
17788         * domain.c: mono_domain_set also sets the default context of the domain
17789         * icall.c: Mapped internal method InternalGetDefaultContext.
17790         * object.c: mono_object_get_virtual_method returns always a remoting
17791         wrapper if the object is a transparent proxy.
17792         mono_runtime_invoke_array: when creating an object by calling the
17793         constructor, if the created object is a proxy, then the constructor should
17794         be called using the a remoting wrapper.
17795
17796 2003-03-03  Dick Porter  <dick@ximian.com>
17797
17798         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17799         variable so it compiles on solaris.  Problem spotted by
17800         Christopher Taylor <ct@cs.clemson.edu>
17801
17802 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17803
17804         * appdomain.c:
17805         (get_info_from_assembly_name): don't leak value.
17806
17807         * icall.c:
17808         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17809         result.
17810
17811 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17812
17813         * assembly.c: export mono_image_load_references ().
17814         * class.c: handle function pointers. mono_class_from_name() now
17815         supports nested type names directly.
17816
17817 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17818
17819         * reflection.h reflection.c: Encode already created dynamic methods 
17820         and fields correctly as a DEF instead of a REF.
17821
17822         * reflection.c: Get rid of the force_ref argument to 
17823         mono_image_typedef_or_ref since it was wrong in the first place.
17824
17825         * string-icalls.c: add error checking to string constructors according
17826         to the MSDN docs.
17827
17828         * reflection.c: Emit types in the order their TypeBuilders were 
17829         created. Previously, a new table index was assigned to each type before
17830         the tables were emitted. This was wrong because the signature blob
17831         might already refer to a type by its original table index.
17832
17833 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17834
17835         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17836         change.
17837         
17838 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17839
17840         * Makefile.am: make assemblies dir have \ instead of / on windows.
17841
17842 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17843
17844         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17845         iterate over the NESTEDCLASS table using a linear search since the
17846         table is not guaranteed to be sorted by the secondary key.
17847
17848         * class.c (mono_class_create_from_typedef): fixed up call to
17849         mono_metadata_nesting_typedef.
17850         
17851 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17852
17853         * marshal.c (mono_string_to_byvalstr): clear the memory as
17854         suggested by Jerome Laban <jlaban@wanadoo.fr>
17855
17856 2003-02-26  Dick Porter  <dick@ximian.com>
17857
17858         * process.c: Cope with padding in .rsrc blocks
17859
17860 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17861
17862         * metadata.h: reverted the filter_len change, it breaks reflection
17863         
17864 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17865
17866         * metadata.h: added a new field to store the filter_len
17867         
17868
17869 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17870
17871         * reflection.c: handle custom attributes for types and members
17872         created with Reflection.Emit (bug#38422).
17873
17874 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17875
17876         * reflection.c: define RTSpecialName automatically for constructors for
17877         compatibility with MS.NET.
17878
17879         * reflection.c (mono_reflection_create_runtime_class): initialize
17880         nested_in field of dynamically created classes.
17881
17882 2003-02-22  Martin Baulig  <martin@ximian.com>
17883
17884         * debug-mono-symfile.h: Incremented version number.
17885
17886 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17887
17888         * object.h icall.c process.c: fix warnings.
17889
17890 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17891
17892         * appdomain.h appdomain.c:
17893         (mono_domain_try_type_resolve): split the 
17894         name_or_tb argument into a name and a tb argument.
17895         (mono_domain_has_type_resolve): new function to check whenever the
17896         application has registered a TypeResolve event handler.
17897         
17898         * icall.c reflection.h reflection.c: move the type resolve logic into
17899         mono_reflection_get_type () so it will be invoked when 
17900         Assembly::GetType () is called.
17901
17902         * reflection.c:
17903         (mono_reflection_get_type): renamed to get_type_internal.
17904         (mono_reflection_get_type): fixed type name generation so it works 
17905         for nested types too.
17906         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17907         costly type name generation if there is no resolve event handler.
17908
17909 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17910
17911         * class.c, image.c: load exported types from file references.
17912
17913 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17914
17915         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17916           used to cache the managed methods used to create proxies and make 
17917           remote invocation of methods.
17918         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17919           to be remotely created.
17920         * object.c: Modified the method mono_class_vtable(). It now initializes 
17921           the remote flag of the vtable. Modified mono_object_new_specific(), 
17922           so now it checks the remote flag.
17923         * icall.c: Added a couple of internal methods, one for enabling instance 
17924           creation interception for a type, and one for creating objects bypassing
17925           the remote check.
17926
17927 2003-02-18  Martin Baulig  <martin@ximian.com>
17928
17929         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17930         New interncall to get a method's metadata token.
17931
17932         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17933         New interncall for the debugger.
17934
17935 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17936
17937         * class.c (mono_class_setup_vtable): allocate supertype array
17938
17939 2003-02-18  Martin Baulig  <martin@ximian.com>
17940
17941         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17942
17943 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17944
17945         * reflection.c:
17946         (assembly_name_to_aname): jump over unknown properties (i've found
17947         something like: 'type, assembly, version=xxx, custom=null, public...',
17948         so now will ignore custom=null and still get the rest of the values).
17949
17950 2003-02-17  Dick Porter  <dick@ximian.com>
17951
17952         * threads.c: Have Thread.Start() wait for a semaphore to signal
17953         that the thread has set up all its local data.  This fixes bug
17954         34323, where Abort() raced the new thread's TLS data.
17955
17956         Also removes the handle_store() call from start_wrapper, because
17957         threads are now always created suspended and there is no longer a
17958         race between the parent and child threads to store the info.
17959
17960 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17961
17962         * image.c: explain the #- heap issue in a message, hopefully
17963         avoiding FAQs on mono-list.
17964
17965 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17966
17967         * icall.c:
17968         (GetEntryAssembly): if the domain has not invoked
17969         AppDomain.ExecuteAssembly yet, return the assembly of the default
17970         AppDomain.
17971
17972 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17973
17974         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17975
17976 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17977
17978         * metadata.c, reflection.c: simple speedup to type hash
17979         and equals code.
17980
17981 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17982
17983         * image.c, image.h, class.c, assembly.c: move module loading
17984         to MonoImage. When loading metadata, consider alignemnet from
17985         the start of metadata, not from the metadata address in memory.
17986
17987 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17988
17989         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17990         AssemblyBuilder objects. Factored out custom attribute creation into
17991         a separate function.
17992         (create_custom_attr): new function to create custom attributes.
17993
17994 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17995
17996         * Makefile.am: Got tired of typing the full pathname to pedump.
17997         Until there is another option, am installing this.
17998
17999 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18000
18001         * class.c (class_compute_field_layout): always set field->parent 
18002         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18003
18004 2003-02-11  Dick Porter  <dick@ximian.com>
18005
18006         * threads-types.h:
18007         * monitor.c: Rewrote Monitor, making lock much faster and
18008         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18009         creates them as needed.
18010
18011         * exception.c: Added SynchronizationLockException
18012
18013         * threads.c: Deleted old Monitor implementation.  The new one is
18014         in a new file.
18015
18016 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18017
18018         * class.c: handled TypedReference type code. Set the correct size for
18019         class data. Setup interface_offsets for interface classes, too.
18020
18021 2003-02-09  Martin Baulig  <martin@ximian.com>
18022
18023         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18024
18025 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18026
18027         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18028         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18029         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18030         * verify.c: check for code that runs after the end of the method.
18031
18032 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18033
18034         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18035         "System.Math::Round2".
18036         * sysmath.h: Added Floor, Round and Round2 definitions.
18037         * sysmath.c: Modified certain functions that were not 100% compliant
18038         with MS.NET (math precision) and added the implementation of Floor,
18039         Round and Round2.
18040
18041 2003-02-07  Martin Baulig  <martin@ximian.com>
18042
18043         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18044
18045 2003-02-07  Martin Baulig  <martin@ximian.com>
18046
18047         * debug-mono-symfile.c: Reflected latest symwriter changes.
18048         (mono_debug_create_mono_symbol_file): Removed.
18049         (mono_debug_open_mono_symbol_file): Take an argument which
18050         specifies whether to create a dynamic symbol file.
18051
18052 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18053
18054         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18055
18056 2003-02-05  Martin Baulig  <martin@ximian.com>
18057
18058         * reflection.c (mono_image_build_metadata): Make this public,
18059         protect it against being called multiple times, don't create
18060         resources and don't build the compressed metadata here.
18061         (mono_image_create_pefile): Do this here.
18062
18063         * icall.c
18064         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18065
18066 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18067
18068         * socket-io.c: fixed bug #36322.
18069
18070 2003-02-06  Piers Haken <piersh@friskit.com>
18071
18072         * appdomain.[ch]:
18073         * class.h:
18074         * debug-mono-symfile.c:
18075         * icall.c:
18076         * loader.c:
18077         * mono-config.c:
18078         * monosn.c:
18079         * reflection.c:
18080         * socket-io.c: warning cleanups
18081
18082 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18083
18084         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18085         function. works like remoting invoke, but does a check for the Proxy first.
18086
18087 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18088
18089         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18090
18091 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18092
18093         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18094         array of pointers.
18095         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18096         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18097
18098         * object.c (mono_store_remote_field_new): used by the new jit
18099         instead of mono_store_remote_field
18100         (mono_load_remote_field_new): used by the new jit
18101         instead of mono_load_remote_field
18102
18103 2003-02-05  Patrik Torstensson
18104
18105         * appdomain.c: changed unload to take the domain id instead
18106         of domain
18107         
18108         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18109
18110
18111 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18112
18113         * appdomain.c: don't look for assemblies in ApplicationBase if
18114         PrivateBinPathProbe is set.
18115
18116 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18117
18118         * object.c: make the first argument in main_args contain the absolute
18119         path to the assembly. Fixes bug #37511.
18120
18121 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18122
18123         * icall.c: get correct UTC offset for countries not using daylight
18124         time saving. Fixes bug #30030.
18125
18126 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18127
18128         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18129         and 1 are the family).
18130
18131 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18132
18133         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18134
18135         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18136
18137 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18138
18139         * reflection.c: added support for SignatureHelper tokens, which is
18140         needed by the Calli opcode.
18141
18142         * reflection.h: track changes to SignatureHelper class.
18143
18144         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18145
18146 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18147
18148         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18149
18150 2003-02-03  Patrik Torstensson
18151         * appdomain.[c|h], domain.c : 
18152          - Added support for getting a domain via domain id
18153          - Support for setting and getting domain from System.AppDomain 
18154            (used in cross appdomain channel)
18155          - Added support for get/set for a MonoAppContext on a thread 
18156            (Context class in System.Runtime.Remoting.Contexts),
18157          - Removed hack in Get/SetData and ExecuteAssembly.
18158         
18159         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18160         the managed world to get control when a proxy is created.
18161
18162         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18163         
18164 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18165
18166         * icall.c
18167         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18168         Populate the codebase field as well.
18169
18170 2003-02-02  Martin Baulig  <martin@ximian.com>
18171
18172         * debug-mono-symfile.c
18173         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18174         (mono_debug_symfile_add_method): Allow interncalls.
18175
18176 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18177
18178         * icall.c: throw parse exception if strtod fails or the string is empty.
18179
18180 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18181
18182         * marshal.c: handle object type separately from defined
18183         class types.
18184
18185 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18186
18187         * marshal.c: handle NATIVE_LPSTR for strings when it's
18188         explicitly specified.
18189
18190 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18191
18192         * reflection.c, reflection.h, icall.c: setup the reflection
18193         handle cache for ModuleBuilders and AssemblyBuilders.
18194
18195 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18196
18197         * reflection.c (reflection_methodbuilder_to_mono_method): set
18198         pinvoke flag
18199
18200 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18201
18202         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18203
18204 2003-01-29  Dick Porter  <dick@ximian.com>
18205
18206         * threads.c: No need for the fake_thread kludge now that Thread
18207         doesn't run a class constructor
18208         
18209 2003-01-29  Dick Porter  <dick@ximian.com>
18210
18211         * threads.c: Use g_direct_hash instead of the rather bogus
18212         g_int_hash
18213
18214 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18215
18216         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18217         (fix pinvoke12.exe)
18218         (mono_marshal_get_struct_to_ptr): generate valid IL code
18219         (mono_marshal_get_ptr_to_struct): generate valid IL code
18220         (*): correctly set sig->pinvoke, we need to memdup the signature
18221         to do that
18222
18223 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18224
18225         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18226         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18227
18228 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18229
18230         * profiler.c: provide more callers information.
18231
18232 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18233
18234         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18235
18236         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18237
18238         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18239
18240 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18241
18242         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18243         exception instead of going into an infinite loop on dates which it 
18244         can't yet handle.
18245
18246         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18247         out-of-range exception if needed.
18248
18249         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18250         an implementation for an interface method and to override an inherited
18251         method at the same time. 
18252         Imagine a scenario when a virtual method is used to override a
18253         virtual abstract method in a parent class, and this same method 
18254         provides an implementation for an method inherited from an interface. 
18255         In this case, the interface resolution code will set im->slot, which 
18256         means that the virtual method override pass will skip this method 
18257         which means a pointer to the abstract method inherited from the parent
18258         will remain in the vtable of this non-abstract class.
18259
18260         * class.c: (mono_class_setup_vtable): continue search for a real 
18261         method if only an abstract method is found.     
18262
18263 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18264
18265         * reflection.c: add size to encoding for ByValStr and ByValArray
18266         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18267
18268 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18269
18270         * class.c (mono_class_setup_vtable): pass the override info as an
18271         argument.
18272
18273         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18274         correctly.
18275         
18276         * reflection.c (ensure_runtime_vtable); add support for method 
18277         overrides.
18278         
18279 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18280
18281         * reflection.c (resolution_scope_from_image): Hack to work to work with
18282         dynamic assemblies.
18283
18284         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18285         added a 'force_ref' argument to force this function to allways return 
18286         a TypeRef. This is needed by mono_image_get_memberref_token ().
18287         
18288 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18289
18290         * reflection.c (mono_image_get_type_info): interfaces really don't have
18291         a parent.
18292
18293         * reflection.c (mono_image_basic_init): fill out missing fields of
18294         image structure.
18295
18296         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18297         dynamic assemblies. This is required so dynamic assemblies show up in
18298         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18299         Type::GetType() etc. This is consistent with MS behaviour.
18300
18301         * image.c image.h reflection.c: add newly created classes to the name 
18302         cache so mono_class_get () will find them.      
18303
18304 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18305
18306         First part of changes to get IKVM.NET running under mono.
18307         
18308         * appdomain.h, appdomain.c: added new function 
18309         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18310         This function will call AppDomain::DoTypeResolve to do the actual work.
18311
18312         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18313         moved existing code dealing with dynamic tokens to a new function 
18314         called mono_reflection_lookup_dynamic_token (). This function will 
18315         raise TypeResolve events when appropriate. Since reflection.c is not 
18316         part of libmetadata, a new hook function called 
18317         mono_lookup_dynamic_token() is added to class.c which will call this.
18318
18319         * assembly.h assembly.c: make the invoke_load_hook function public,
18320         so it can be called for dynamic assemblies.
18321
18322         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18323
18324         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18325         type isn't found.
18326
18327         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18328         MonoGHashTable, since it contains pointers to objects which the GC 
18329         needs to track.
18330
18331         * assembly.c (search_loaded): remove unused variable.
18332         
18333 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18334
18335         * object.c: fixed issue exposed by gcc-generated IL programs
18336         that use RVA data for pointers.
18337
18338 2003-01-25  Martin Baulig  <martin@ximian.com>
18339
18340         * threads.c (start_wrapper): Moved the initialization of
18341         `start_func' above the mono_new_thread_init() call to which we
18342         pass it as argument.
18343
18344 2003-01-24  Martin Baulig  <martin@ximian.com>
18345
18346         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18347         the MonoThread pointer.
18348
18349 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18350
18351         * icall.c: Rename `PowImpl' to Pow.
18352
18353 2003-01-23  Dick Porter  <dick@ximian.com>
18354
18355         * threads.c (start_wrapper): Create a Thread object if needed, so
18356         the Main() thread can do the class initialisation in a subthread
18357         that has been set up to allow managed code execution.
18358
18359         Pass the thread ID instead of the MonoThread pointer to the thread
18360         start and attach callbacks.  This change is required, because the
18361         jit thread start callback must be called _before_ the Thread
18362         object can be created.
18363         
18364         (mono_thread_init): Removed much object creation code that is no
18365         longer needed.  No managed code is called from here now.
18366
18367         * object.c (mono_runtime_exec_managed_code): Create a subthread
18368         for Main, and call back to the runtime to use it.
18369         Set the exit code when Main exits.
18370
18371         * gc.c: Make sure domain finalisation happens in a subthread.
18372         Re-enable threaded GC, fixing bug 31333 (again).
18373
18374         * environment.c: System.Environment internall calls (so far just
18375         ExitCode is here, the others are still in icall.c)
18376
18377         * appdomain.c (mono_runtime_cleanup): All threads running managed
18378         code should have finished before mono_runtime_cleanup() is
18379         reached, so no need to clean up threads.
18380
18381 2003-01-22  Martin Baulig  <martin@ximian.com>
18382
18383         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18384         `gpointer func' arguments.      
18385         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18386         but added `MonoThread *thread' argument.
18387         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18388
18389         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18390         and pass it to the mono_thread_start_cb callback.
18391         (mono_install_thread_callbacks): New public function to install a
18392         set of callbacks which are set by the debugger.
18393         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18394
18395 2003-01-22  Martin Baulig  <martin@ximian.com>
18396
18397         * Makefile.am: Install debug-mono-symfile.h.
18398
18399 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18400
18401         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18402
18403 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18404
18405         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18406         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18407         (mono_array_class_get): correctly set access levels of arrays
18408
18409 2003-01-20      Patrik Torstensson
18410         * image.h (MonoAssemblyName): changed major, minor, build, revision
18411         from signed to unsigned.
18412
18413 2003-01-20  sean kasun <skasun@azstarnet.com>
18414
18415         * reflection.c (load_cattr_value): Now this handles
18416         MONO_TYPE_SZARRAY.  Fixes bug #35629
18417
18418 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18419
18420         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18421         integer value
18422
18423 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18424
18425         * decimal.c: fixed bug #26056.
18426
18427 2003-01-17  Martin Baulig  <martin@ximian.com>
18428
18429         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18430
18431 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18432
18433         * exception.[ch]:
18434         (mono_get_exception_type_initialization): new function.
18435
18436         * object.c: throw a TypeInitializationException when an exception is
18437         thrown invoking the class constructor.
18438
18439 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18440
18441         * reflection.c: fixed attribute reading.
18442
18443 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18444
18445         * icall.c:
18446         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18447         provided, look for the type in the calling assembly and then in
18448         mscorlib; if the assembly name is provided, only try that one.
18449
18450 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18451
18452         * object.c: register the vtable before there is a chance it's
18453         queried again recursively.
18454
18455 2003-01-13  Duncan Mak  <duncan@ximian.com>
18456
18457         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18458         gc-internal.h. 
18459         
18460 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18461
18462         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18463
18464 2003-01-11  Martin Baulig  <martin@ximian.com>
18465
18466         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18467         this to 20 for the release.
18468
18469 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18470
18471         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18472
18473         * loader.c (mono_method_get_marshal_info): bug fix
18474
18475         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18476         structures with explicit layout
18477
18478 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18479
18480         * profiler.c: made the output more readable (and sorted). 
18481         Added caller information for the allocation profiler.
18482
18483 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18484
18485         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18486
18487 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18488
18489         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18490         to get value types.
18491         
18492 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18493
18494         * object.c, profiler.h, profiler.c, profiler-private.h:
18495         Added object allocation profiler.
18496
18497 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18498
18499         * reflection.h, reflection.c: handle global methods.
18500         Compress blob entries.
18501
18502 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18503
18504         * marshal.c: fix compilation.
18505
18506 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18507
18508         * loader.c (mono_method_get_marshal_info): impl.
18509
18510         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18511
18512 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18513
18514         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18515         for reference types.
18516
18517 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18518
18519         * loader.c: fixed off by one error in loaded parameter names.
18520
18521 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18522
18523         * marshal.c (mono_marshal_get_icall_wrapper): like
18524         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18525         instead of a MonoMethod.
18526
18527 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18528
18529         * decimal.c: fixed bug #36537.
18530
18531 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18532
18533         * marshal.c: throw a missing method exception if a
18534         P/Invoke method is not found.
18535
18536 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18537
18538         * icall.c: allow a null this for constructors.
18539
18540 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18541
18542         * icall.c: raise the proper exceptions if the arguments to the
18543         internal Invoke are incorrect.
18544
18545 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18546
18547         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18548
18549 2003-01-03  Martin Baulig  <martin@ximian.com>
18550
18551         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18552
18553 2002-12-31  Martin Baulig  <martin@ximian.com>
18554
18555         * debug-mono-symfile.c: Completely rewrote the type section.
18556         Instead of using individual malloc()ed fields, we use one big
18557         continuous memory area and offsets into this area.
18558         See the comments in the source code for details.
18559
18560 2002-12-30  Martin Baulig  <martin@ximian.com>
18561
18562         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18563
18564 2002-12-30  Martin Baulig  <martin@ximian.com>
18565
18566         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18567         line number table in this data blob instead of using an external
18568         pointer.
18569
18570 2002-12-28  Martin Baulig  <martin@ximian.com>
18571
18572         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18573
18574 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18575
18576         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18577         as a boxed return type.
18578
18579 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18580
18581         * appdomain.c
18582         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18583         g_build_filename to properly get separators on the filename created.
18584
18585         * object.h: Small change, introduce MonoMarshalByRefObject to
18586         track the layout of that structure in the C# universe as we make
18587         changes there.
18588
18589 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18590
18591         * object.c: removed assert to allow static fields on interfaces.
18592         * loader.c: a TypeSpec may be used for any type, not just arrays.
18593
18594 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18595
18596         * class.c, class.h: added mono_class_array_element_size ().
18597         Ignore static methods in interfaces.
18598
18599 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18600
18601         * threads.c: fixed the build under cygwin.
18602
18603 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18604
18605         * reflection.c: handle nullref constants. Allocate keys for
18606         reflection handles with the GC.
18607
18608 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18609
18610         * threads.c, threads.h: added mono_thread_get_abort_signal()
18611         to get a suitable signal for thread abort.
18612
18613 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18614
18615         * metadata.c: fix handling of ExportedType table.
18616
18617 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18618
18619         * icall.c: added WriteWindowsDebugString internal call.
18620
18621 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18622
18623         * reflection.h: added fields to match C# implementation.
18624
18625 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18626
18627         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18628
18629 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18630
18631         * gc.h, gc-internal.h: Rename header for GC internal calls to
18632         gc-internal.h from gc.h as to not clash with Boehm GC having its
18633         header installed as <gc.h> in outside include paths.
18634         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18635         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18636
18637 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18638
18639         * icall.c: assign minor, build and revision in FillName.
18640
18641 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18642
18643         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18644         Added support for running code generated by Reflection.Emit.
18645
18646 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18647
18648         * appdomain.c: check for NULL argument in LoadFrom.
18649
18650 2002-12-10  Dick Porter  <dick@ximian.com>
18651
18652         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18653
18654 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18655
18656         * appdomain.c: fix buglet when building exe file name.  Handle full
18657         assembly name (needed after latest changes to AssemblyName).
18658         * image.c:
18659         (mono_image_close): free some hashtables.
18660
18661 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18662
18663         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18664         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18665         on some systems (redhat 7.3) 
18666
18667 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18668
18669         * threads.c: delete the critical section of a sync block,
18670         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18671
18672 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18673
18674         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18675
18676 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18677
18678         * appdomain.[ch]: handle the assembly preload event to try loading the
18679         assemblies using the paths we have in the current domain.
18680
18681         * assembly.[ch]: created an assembly preload hook that is called to try
18682         loading the assembly by other means that the ones provided here.
18683
18684         * domain.c: initialize the domain search path.
18685
18686         From now on, assemblies (TODO: except corlib and System) are loaded
18687         according to these rules when using mono_assembly_load ():
18688
18689                 1. It tries to load the assembly from the ApplicationBase
18690                 of the current domain appending .dll and .exe (TODO: have to
18691                 try loading from name/name.dll and name/name.exe).
18692
18693                 2. It tries the search path specified in PrivateBinPath for the
18694                 current domain (if any).
18695
18696                 3. Previous behavior.
18697
18698 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18699
18700         * icall.c: implemented GetInterfaceMap() related icall.
18701         * domain.c, loader.h: load MethodInfo in mono_defaults.
18702
18703 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18704
18705         * gc.c: disable the finalizer thread for now, untill all the issues
18706         with it are resolved.
18707
18708 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18709
18710         * string-icalls.c: handle embedded nulls in string ctor when the
18711         length is specified.
18712
18713 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18714
18715         * class.c: look for explicit interface implementation in parent
18716         classes, too.
18717
18718 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18719
18720         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18721
18722 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18723
18724         * gc.c: protect handles with a critical section.
18725
18726 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18727
18728         * icall.c:
18729         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18730         parameters. If no assembly specified, try getting the type from all
18731         the assemblies in the current domain, else, load the assembly and get
18732         the type from it.
18733
18734 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18735
18736         * marshal.c: applied patch from Aleksey Demakov that fixes
18737         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18738
18739 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18740
18741         * icall.c: fixed get_location.
18742
18743 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18744
18745         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18746         declarations to make it work with older gcc. 
18747
18748         * loader.c (mono_get_method): set signature->pinvoke for native calls
18749
18750 2002-11-20  Dick Porter  <dick@ximian.com>
18751
18752         * threads.c (mono_thread_init): Set the main thread's handle
18753
18754 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18755
18756         * gc.c: allow compilation without GC support. Changed to match the
18757         mono coding style.
18758
18759 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18760
18761         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18762
18763 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18764
18765         * reflection.c: set a public key token on the core assemblies.
18766
18767 2002-11-18  Dick Porter  <dick@ximian.com>
18768
18769         * threads.c: Split out some thread initialisation so that other
18770         files can set the start callback function.
18771
18772         * gc.c: Run finalisers in a separate thread, to avoid stack
18773         overflow.  Fixes bug 31333.
18774
18775         * appdomain.c: Set up GC finalisation thread.
18776
18777         * reflection.c: 
18778         * object.c: 
18779         * domain.c: Use gc.h macros for GC_malloc
18780         
18781 2002-11-15  Dick Porter  <dick@ximian.com>
18782
18783         * threadpool.c: 
18784         * threads.c:
18785         * appdomain.c: Removed mono_runtime_init_with_attach(),
18786         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18787         merging the extra parameter with the existing function.  Removed
18788         unneeded code in mono_thread_attach().
18789
18790 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18791
18792         * image.c (mono_image_loaded_by_guid): a method to get loaded
18793         images by guid. 
18794         (load_metadata_ptrs): we store the guid as string.
18795
18796 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18797
18798         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18799
18800         * metadata.c (mono_guid_to_string): imported method form Zoltan
18801         Varga (slightly modified)
18802
18803         * assembly.c (mono_assembly_open): load precompiled code
18804
18805         * loader.h (MonoMethod): we store the method token for use in the
18806         aot compiler. 
18807
18808 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18809
18810         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18811         the hook function called when an assembly is loaded.
18812         
18813         * domain.c: Modified file.
18814         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18815
18816         Fixes bug #33196.
18817
18818 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18819
18820         * reflection.c: Map PEFileKind to the value expected by the WinNT
18821         image loader. 
18822
18823 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18824
18825         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18826         Read until the buffer is filled completely.
18827
18828 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18829
18830         * icall.c: implemented MonoType.InternalGetEvent ().
18831
18832 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18833
18834         * appdomain.c: implemented InitAppDomainSetup. Delayed
18835         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18836         the entry_assembly.
18837
18838         * assembly.c: base_dir is now an absolute path ending with
18839         G_DIR_SEPARATOR.
18840
18841         * icall.c: modified get_location according to the above changes.
18842
18843         * object.c: init AppDomain.SetupInformation for the default domain after
18844         we have the entry assembly.
18845
18846         * domain.c: when unloading a domain, setup = NULL.
18847
18848 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18849
18850         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18851
18852 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18853
18854         * object.h, object.c: introduced mono_object_get_virtual_method ()
18855         to lookup the method invoked on an object when a callvirt is done on
18856         a method.
18857         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18858
18859 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18860
18861         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18862         current domain when loaded an assembly and failed to load it.
18863
18864         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18865
18866 2002-10-31  Dick Porter  <dick@ximian.com>
18867
18868         * icall.c: 
18869         * file-io.h: 
18870         * file-io.c: Return the error status in a parameter, as the
18871         GetLastError() value has long since been blown away if we try and
18872         look it up in a subsequent internal call invocation.  Delete the
18873         GetLastError() internal call, because it's useless.
18874
18875 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18876
18877         * class.[ch]: added cast_class to fix bug 29517
18878
18879 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18880
18881         * marshal.c: create valid IL code in the filter clause:
18882         the new JIT is less forgiving:-)
18883
18884 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18885
18886         * icall.c: removed get_property internal call.
18887
18888 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18889
18890         * appdomain.h domain.c: Added an ID to appdomains.
18891         
18892         * threads.c threads.h icall.c: Implement icall
18893         Thread:GetDomainID(), and remove unused icall 
18894         CurrentThreadDomain_internal.
18895
18896 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18897
18898         * icall.c: Don't recurse through the base types in GetConstructor.
18899         Fixes bug #32063. 
18900
18901 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18902
18903         * mempool.h, mempool.c: added mono_mempool_empty() and
18904         mono_mempool_stats().
18905
18906 2002-10-23  Dick Porter  <dick@ximian.com>
18907
18908         * file-io.c: 
18909         * file-io.h: 
18910         * icall.c: Added MonoIO.GetFileType internal call
18911
18912 2002-10-17  Dick Porter  <dick@ximian.com>
18913
18914         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18915         delegate semaphore before waiting for all threads to finish,
18916         because new threads can also call async delegates.  Fixes bug
18917         32004.
18918
18919         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18920         of 3 seconds, in case another async job is queued.  (This part is
18921         needed because the bug fix reintroduced the 3s exit lag.)  This
18922         makes the mono_runtime_shutdown flag superfluous.
18923
18924 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18925
18926         * reflection.c: include ehader size in method section headers.
18927         Really check for suplicated modules entries.
18928
18929 2002-10-17  Martin Baulig  <martin@gnome.org>
18930
18931         * debug-mono-symfile.c: Added back support for locals.
18932
18933 2002-10-14  Martin Baulig  <martin@gnome.org>
18934
18935         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18936         MONO_TYPE_VOID.
18937
18938 2002-10-14  Martin Baulig  <martin@gnome.org>
18939
18940         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18941         mono_class_get() instead of looking in the class cache. 
18942
18943 2002-10-13  Martin Baulig  <martin@gnome.org>
18944
18945         * debug-mono-symfile.c: Set version number to 28, include the
18946         signature in method names.
18947
18948 2002-10-13  Martin Baulig  <martin@gnome.org>
18949
18950         * debug-mono-symfile.h: Set version number to 27.
18951
18952 2002-10-11  Martin Baulig  <martin@gnome.org>
18953
18954         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18955
18956 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18957
18958         * metadata.c, metadata.h: added helper function to allocate signatures.
18959
18960 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18961
18962         * icall.c: added internal call to get the location of machine.config.
18963
18964 2002-10-08  Martin Baulig  <martin@gnome.org>
18965
18966         * debug-mono-symfile.c: Ignore classes with a pending init for the
18967         moment.
18968
18969 2002-10-03  Dick Porter  <dick@ximian.com>
18970
18971         * threads.c: Freebsd pthread_t is a pointer
18972
18973 2002-10-03  Dick Porter  <dick@ximian.com>
18974
18975         * socket-io.c: Implemented GetHostName_internal
18976
18977 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18978
18979         * mono-config.c:
18980         (mono_config_parse_file): don't leak the text.
18981
18982 2002-10-02  Martin Baulig  <martin@gnome.org>
18983
18984         * debug-mono-symfile.c: Added support for methods.
18985
18986 2002-10-01  Martin Baulig  <martin@gnome.org>
18987
18988         * debug-mono-symfile.c: Don't emit methods and line numbers for
18989         the dynamic symbol file, just write the type table.  We can easily
18990         have an external helper program which creates a symbol file for an
18991         IL file.        
18992
18993 2002-10-01  Dick Porter  <dick@ximian.com>
18994
18995         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18996         Only add the handle to the cleanup array when we're about to
18997         launch the thread.  Bug 31425 deadlocked when the test was run on
18998         mono under w32.
18999
19000 2002-10-01  Martin Baulig  <martin@gnome.org>
19001
19002         * debug-mono-symfile.c: Added support for properties.
19003
19004 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19005
19006         * reflection.c: unaligned store fix from Mark Crichton
19007         <crichton@gimp.org>.
19008
19009 2002-09-27  Martin Baulig  <martin@gnome.org>
19010
19011         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19012         New interncall.
19013
19014 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19015
19016         * assembly.h, assembly.c: use a sane API to hook into the assembly
19017         loading process instead of a useless special-purpouse hack
19018         (ngen needs a hook, too, for example).
19019
19020 2002-09-27  Dick Porter  <dick@ximian.com>
19021
19022         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19023         io-layer can set up some process handle info.  Not needed on w32,
19024         but doesn't hurt either.
19025
19026         * process.c: Pass the program name in the second parameter to
19027         CreateProcess, so the path is searched.  Include the working
19028         directory. Implemented process name, process enumeration, and some
19029         process detail internal calls.
19030         
19031         * icall.c: Added internal calls for process lookup, and some
19032         process details
19033
19034 2002-09-26  Martin Baulig  <martin@gnome.org>
19035
19036         * assembly.c (mono_install_open_assembly_hook): New global
19037         function to install a function to be invoked each time a new
19038         assembly is loaded.
19039         (mono_assembly_open): Run this callback function if set.
19040
19041         * debug-mono-symfile.c: Put back line numbers for the dynamic
19042         symbol file and also record the .il file as source file.  This
19043         allows us to install the temporary symbol file as `file.dbg' just
19044         like a compiler-generated one.
19045
19046 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19047
19048         * Corrected typo in gc.c (BOHEM vs BOEHM).
19049
19050 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19051
19052         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19053         GetProperties. Also avoid calling g_slist_length in GetProperties and
19054         GetMethods.
19055
19056 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19057
19058         * reflection.c: avoid unaligned stores (bug spotted by
19059         Mark Crichton  <crichton@gimp.org>).
19060
19061 2002-09-25  Martin Baulig  <martin@gnome.org>
19062
19063         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19064         instead of guint64 for addresses and added prologue/epilogue info.
19065
19066 2002-09-25  Martin Baulig  <martin@gnome.org>
19067
19068         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19069         store line number info.  For the dynamic symbol file, we only need
19070         to provide the JIT generated dynamic line number info for the dynamic
19071         symbol file.
19072
19073 2002-09-25  Martin Baulig  <martin@gnome.org>
19074
19075         * debug-mono-symfile.h: Incremented version number.
19076
19077 2002-09-24  Martin Baulig  <martin@gnome.org>
19078
19079         * class.c (mono_debugger_class_init_func): New global function
19080         pointer variable.
19081         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19082         call it.
19083
19084         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19085         function.  This is called via the mono_debugger_class_init_func
19086         hook to add all types to the dynamic type table.
19087         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19088         from its metadata token.
19089
19090         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19091         New interncall for the debugger.
19092
19093 2002-09-24  Nick Drochak <ndrochak@gol.com>
19094
19095         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19096         before using it in case it is null.
19097         
19098 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19099
19100         * metadata.c: allow custom modifiers in local var signatures
19101         (bug spotted by Zoltan Varga).
19102
19103 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19104
19105         * class.c: deal with the <Module> class that may have a NULL vtable.
19106         Eliminate warnings.
19107
19108 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19109
19110         * image.c, image.h: more strong name helpers.
19111         * monosn.c: more work: convert pem keys to cryptoapi format.
19112
19113 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19114
19115         * string-icalls.c: speedup IndexOf.
19116
19117 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19118
19119         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19120
19121 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19122
19123         * icall.c: cleanup: use mono_object_domain ().
19124
19125 2002-09-23  Martin Baulig  <martin@gnome.org>
19126
19127         * debug-mono-symfile.c: Improved type support.
19128
19129 2002-09-22  Martin Baulig  <martin@gnome.org>
19130
19131         * debug-mono-symfile.c: Added support for reference types and strings.
19132
19133 2002-09-22  Martin Baulig  <martin@gnome.org>
19134
19135         * debug-mono-symfile.c: Started to work on the type table.
19136
19137 2002-09-21  Martin Baulig  <martin@gnome.org>
19138
19139         * debug-mono-symfile.c: Largely reworked the symbol table format.
19140         The symbol table is now incrementally updated each time a new
19141         method is added.  We're now also using our own magic and version
19142         so that you don't need to recompile all your classes if the
19143         dynamic table changes.
19144         (mono_debug_update_mono_symbol_file): Removed.
19145         (mono_debug_symfile_add_method): New function to add a method.
19146
19147 2002-09-21  Martin Baulig  <martin@gnome.org>
19148
19149         * icall.c
19150         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19151         New interncall.
19152
19153         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19154         New interncall to get a method from its metadata token.
19155
19156 2002-09-21  Martin Baulig  <martin@gnome.org>
19157
19158         * debug-mono-symfile.c: Create type table.
19159
19160 2002-09-20  Martin Baulig  <martin@gnome.org>
19161
19162         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19163
19164 2002-09-20  Martin Baulig  <martin@gnome.org>
19165
19166         * debug-mono-symfile.c: Provide information about params and locals.
19167
19168 2002-09-20  Martin Baulig  <martin@gnome.org>
19169
19170         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19171         New interncall.
19172
19173         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19174         interncall to get a method from its metadata token.
19175
19176 2002-09-20  Martin Baulig  <martin@gnome.org>
19177
19178         * debug-mono-symfile.c: Added a few checks for method->header
19179         being non-NULL.  This should never happen, but for the moment
19180         let's use a g_warning() rather than a g_assert().
19181
19182 2002-09-19  Mark Crichton  <crichton@gimp.org>
19183
19184         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19185         even if support for it isn't present.  Added an #ifdef to fix this.
19186
19187         * socket-io.c: Added checks back for Solaris support.
19188
19189 2002-09-19  Martin Baulig  <martin@gnome.org>
19190
19191         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19192         changes in the symbol file format.
19193
19194 2002-09-18  Martin Baulig  <martin@gnome.org>
19195
19196         * debug-mono-symfile.c: Set version number to 21.
19197
19198 2002-09-18  Dick Porter  <dick@ximian.com>
19199
19200         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19201         on netbsd.  Fixes bug 30051.
19202
19203 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19204
19205         * reflection.c:
19206         (set_version_from_string): little fix.
19207
19208 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19209
19210         * monosn.c, Makefile.am: added strong name utility.
19211         * reflection.h, reflection.c: implemented delayed signing,
19212         locale, version and hash id assembly attributes.
19213
19214 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19215
19216         * loader.c, metadata.c: load param attributes in signatures.
19217
19218 2002-09-16  Martin Baulig  <martin@gnome.org>
19219
19220         * debug-mono-symfile.c: Added string table with all method names.
19221
19222 2002-09-14  Martin Baulig  <martin@gnome.org>
19223
19224         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19225         fast method lookup.
19226
19227 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19228
19229         * reflection.c: record the public key token of referenced assemblies.
19230
19231 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19232
19233         * image.c, image.h: added functions to get the strong name and the
19234         public key of an assembly.
19235         * pedump.c: use them.
19236
19237 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19238
19239         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19240
19241 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19242
19243         * marshal.c (mono_marshal_get_managed_wrapper): Added
19244         MONO_TYPE_BOOLEAN 
19245
19246 2002-09-11  Martin Baulig  <martin@gnome.org>
19247
19248         * gc.c: Call GC_unregister_disappearing_link() on all links when
19249         finalizing them, this is necessary to aviod a crash in boehm's
19250         finalize handler.
19251
19252 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19253
19254         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19255         nick@chemlab.org.
19256
19257 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19258
19259         * icall.c: implemented MonoType::Module.
19260         * reflection.c, reflection.h: mono_module_get_object () from
19261         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19262
19263 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19264
19265         * icall.c: ignore overridden methods in GetMethods ().
19266         Fix for FieldInfo::SetValue().
19267         * object.c: handle float/double in runtime invoke.
19268
19269 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19270
19271         * object.c: allow a constructor to be called again on an object.
19272
19273 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19274
19275         * class.h, class.c: move field layout code to it's own function and
19276         export it. Get an interface id earlier. Move fields in MonoClass
19277         so they are more cache friendly and align the bitfields.
19278         * loader.c: temporary handle get_param_names() for a runtime method.
19279         * reflection.c, reflection.h: more code to handle runtime creation of
19280         types.
19281
19282 2002-09-09  Martin Baulig  <martin@gnome.org>
19283
19284         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19285         signature with the pinvoke field being set for the actual call.
19286
19287 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19288
19289         * icall.c: removed some unused icalls. Start of map of glib charsets
19290         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19291
19292 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19293
19294         * debug-helpers.c: break infinite loop (found and fixed by
19295         Holger Arnold <harnold@gmx.de>).
19296
19297 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19298
19299         * icall.c: target may be null in create_delegate.
19300
19301 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19302
19303         * marshal.c: handle a boolean return type.
19304
19305 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19306
19307         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19308
19309 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19310
19311         * gc.c: fix weakreferences.
19312
19313 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19314
19315         * icall.c: added icall to get default codepage.
19316
19317 2002-09-03  Dick Porter  <dick@ximian.com>
19318
19319         * threads.h: 
19320         * threads.c: Use MonoThread instead of MonoObject where
19321         apropriate.
19322
19323         Store running thread objects in a hash table, so that we have all
19324         the info to hand when waiting for them to finish
19325         (means we don't need OpenThread() any more, so mingw builds should
19326         be fully functional again.)
19327
19328         * verify.c:
19329         * object.h: Added thread ID to MonoThread
19330
19331 2002-09-03  Martin Baulig  <martin@gnome.org>
19332
19333         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19334
19335 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19336
19337         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19338
19339 2002-09-03  Martin Baulig  <martin@gnome.org>
19340
19341         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19342         argument to store the end address of the disassembled instruction.
19343
19344         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19345         here from debug-symfile.h.
19346         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19347         JIT into this struct.
19348         (MonoSymbolFile): Added `char *image_file' field.
19349         (MonoDebugGetMethodFunc): Removed.
19350         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19351         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19352         (mono_debug_find_method): New method.
19353
19354         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19355         create a full symbol file.
19356         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19357         and static symbol files.
19358         (mono_debug_find_method): The symbol file keeps an internal method hash,
19359         call this to get a MonoDebugMethodInfo from a MonoMethod.
19360
19361         * debug-symfile.[ch]: Removed.
19362
19363 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19364
19365         * image.c (do_mono_image_open): Remove linker version check.
19366
19367 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19368
19369         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19370         wrappers for instance methods.
19371         
19372 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19373
19374         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19375
19376 2002-08-28  Dick Porter  <dick@ximian.com>
19377
19378         * Makefile.am: Export HOST_CC for w32 builds
19379
19380 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19381
19382         * file-io.c process.c: MonoString are null terminated, no
19383         need for mono_string_to_utf16() anymore.
19384
19385 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19386
19387         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19388
19389 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19390
19391         * icall.c, reflection.h: speedup System.MonoType.
19392
19393 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19394
19395         * reflection.c: allow null as the value of a string argument in
19396         custom attributes constructors.
19397
19398 2002-08-27  Martin Baulig  <martin@gnome.org>
19399
19400         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19401         `trampoline_address' field.
19402
19403 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19404
19405         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19406         check (fixes bug #29486) 
19407
19408 2002-08-27  Martin Baulig  <martin@gnome.org>
19409
19410         * debug-mono-symfile.c: Changed the file format in a way that allows us
19411         open it read-only and to use a specially malloced area for all the
19412         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19413         debugging IL code and there is no MCS generated symbol file for it.
19414
19415 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19416
19417         * object.c: added a define for a good string and array
19418         creation speedup (not enabled by default because we need to deal with
19419         the synch stuff).
19420
19421 2002-08-26  Martin Baulig  <martin@gnome.org>
19422
19423         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19424         function to create a dynamic symbol file.  This is used by the
19425         debugger to create a symbol file for IL code on-the-fly.
19426
19427 2002-08-26  Martin Baulig  <martin@gnome.org>
19428
19429         * loader.c (mono_lookup_pinvoke_call): Include the error message
19430         from g_module_error() in the error message.
19431
19432 2002-08-24  Martin Baulig  <martin@gnome.org>
19433
19434         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19435         function to update the symbol file.  The symbol file is mmap()ed
19436         writable, but private.  This allows us to install the symbol file
19437         together with the assembly.
19438
19439 2002-08-24  Martin Baulig  <martin@gnome.org>
19440
19441         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19442         but they can read the new symbol file format which mcs is now creating.
19443
19444         * debug-symfile.c (mono_debug_find_source_location): Moved to
19445         debug-mono-symfile.c; this is now operating on the new symbol file.
19446
19447 2002-08-23  Martin Baulig  <martin@gnome.org>
19448
19449         * debug-helpers.c (mono_method_desc_from_method): New function to get
19450         a MonoMethodDesc from a MonoMethod.
19451
19452 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19453
19454         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19455         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19456
19457 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19458
19459         * string-icalls.[ch]: make helper methods static.
19460
19461 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19462
19463         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19464         types to it and to SetValueInternal.
19465
19466         * object.c: Moved handle_enum label to its proper place. This was the
19467         f... bug! ;-)
19468
19469         This time i compiled mcs and gtk-sharp and they both work.
19470
19471 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19472
19473         * icall.c: reverted partially my previous patch until 
19474         object.c:set_value handles enums correcly.
19475
19476 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19477
19478         * icall.c:
19479         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19480         (ves_icall_System_Environment_get_MachineName): removed warning when
19481         compiling under cygwin.
19482
19483 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19484
19485         * object.c: fixed field_get_value() for reference types.
19486
19487 2002-08-22  Dick Porter  <dick@ximian.com>
19488
19489         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19490         Don't free a buffer while it's still needed.  Patch from Jonathan
19491         Liger <Jonathan.liger@wanadoo.fr>
19492
19493 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19494
19495         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19496         internal call.
19497
19498 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19499
19500         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19501         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19502
19503         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19504         we call unmanaged code which throws exceptions.
19505
19506 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19507
19508         * appdomain.h: added per-domain entry_assembly.
19509         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19510         arguments.
19511         * icall.c: Assembly::GetEntryAssembly icall.
19512         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19513         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19514
19515 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19516
19517         * appdomain.h, gc.c: added mono_domain_finalize ().
19518
19519 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19520
19521         * object.c:
19522         (mono_print_unhandled_exception): changed g_warning by g_printerr
19523         because g_log has a 1024 characters limit (yeah, i got a big stack
19524         trace). Don't print exception name, that should be in ToString 
19525         returned string.
19526
19527 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19528
19529         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19530         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19531
19532 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19533
19534         * object.c:
19535         (mono_print_unhandled_exception): after previous commit, i realized
19536         that MS calls ToString on the exception. I changed this function to
19537         do that. This way we get stack_trace for free.
19538
19539 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19540
19541         * object.c:
19542         (mono_print_unhandled_exception): invoke Message property instead of
19543         getting 'message' field from Exception. Don't allocate memory for
19544         'trace' and 'message' if not needed.
19545
19546 2002-08-18  Dick Porter  <dick@ximian.com>
19547
19548         * unicode.c: Fix asserts to match Encoder.cs checks
19549
19550 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19551
19552         * marshal.c: fix unaligned store issue and a few wrong
19553         opcode argument types.
19554
19555 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19556
19557         * icall.c: added GetUninitializedObjectInternal internal call.
19558
19559 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19560
19561         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19562         to the right domain.
19563
19564 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19565
19566         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19567
19568         * class.c (class_compute_field_layout): set blittable to false for Strings
19569
19570         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19571
19572 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19573
19574         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19575         first chunk of code to create types at runtime. Code to
19576         handle ReflectedType/DeclaringType. Make reflection handles
19577         domain specific.
19578
19579 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19580
19581         * class.c: set correct name in arrays.
19582
19583 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19584
19585         * appdomain.c (mono_domain_transfer_object): make it work with
19586         valuetypes. bug fixes.
19587
19588 2002-08-12  Dick Porter  <dick@ximian.com>
19589
19590         * object.h: Rename some parameters to avoid c++ keywords (Patch
19591         from Joseph Wenninger <kde@jowenn.at>)
19592
19593 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19594
19595         * icall.c: added icall to implement Assembly.GetFile*.
19596
19597 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19598
19599         * reflection.h, reflection.c: code to embed managed resources.
19600
19601 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19602
19603         * class.c: move all the type size stuff into
19604         class_compute_field_layout().
19605
19606 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19607
19608         * class.c: ensure enums have always the correct instance size.
19609         * unicode.c: remove wrong assert.
19610
19611 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19612
19613         * assembly.c: fix mem corruption issue.
19614         * image.h, image.c: added mono_image_get_resource () to access
19615         managed resources.
19616         * icall.c: implemented Assembly.EntryPoint property and some
19617         Managed Resources related internalcalls.
19618
19619
19620 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19621
19622         * image.c, image.h: impemented mono_image_get_entry_point ().
19623         * appdomain.c: use mono_image_get_entry_point.
19624
19625 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19626
19627         * reflection.c: support the object type argument when loading
19628         custom attributes.
19629
19630 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19631
19632         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19633         String as return type.
19634
19635 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19636
19637         * reflection.c: fix encoding of named args for custom attrs to match
19638         the ms implementation. Read them back when instantiating custom
19639         attributes.
19640
19641 2002-08-02  Radek Doulik  <rodo@ximian.com>
19642
19643         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19644         by Dietmar as quick fix
19645         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19646         16 as stack size, used on more places as quick fix before Dietmar
19647         will fix it properly
19648
19649 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19650
19651         * object.h, object.c: added accessors for fields and properties.
19652
19653 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19654
19655         * class.c, class.h: made mono_class_get_field_from_name ()
19656         loop on parent types.
19657         Added mono_class_get_property_from_name ().
19658
19659 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19660
19661         * class.c, class.h: move the code to setup the type vtable in its own
19662         function so that it can be reused also for types created at runtime.
19663         Eliminate the "class" identifier from the header file.
19664         * reflection.c: setup the vtable for enums so that we can create
19665         objects for use in SetConstant ().
19666
19667 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19668
19669         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19670         instead of the delegate itself as this pointer (bug #28383)
19671
19672 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19673
19674         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19675         conversions.
19676
19677 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19678
19679         * loader.c: don't set the pinvoke bit on icalls.
19680
19681 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19682
19683         * debug-helpers.c (mono_method_full_name): only print a number to
19684         indicate wrapper type (so that the output is more readable in traces).
19685
19686 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19687
19688         * class.c (mono_class_init): include method override patch from Paolo
19689
19690 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19691
19692         * icall.c: fixed GetTypeCode().
19693
19694 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19695
19696         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19697         use real delegate invoke function to make it work with multicast
19698         delegates (fix bug# 28291).
19699
19700 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19701
19702         * object.c: load constant strings.
19703
19704 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19705
19706         * reflection.c: no magic numbers.
19707         * tabledefs.h: security action enum.
19708
19709 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19710
19711         * assembly.c: fix possible memory corruption.
19712
19713 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19714
19715         * reflection.h, reflection.c: added support for linking resources.
19716         * verify.c: check we have an updated corlib.
19717
19718 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19719
19720         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19721         string arrays.
19722         (mono_marshal_string_array): null terminate unmanaged string arrays.
19723         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19724
19725 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19726
19727         * icall.c: Type.GetType () can now return also types from the
19728         calling assembly.
19729
19730 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19731
19732         * loader.h, loader.c: stack walking support.
19733         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19734         GetCallingAssembly.
19735
19736 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19737
19738         * marshal.c: added optimisations for blittable types 
19739
19740         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19741         (mono_class_setup_mono_type): set blittable attribute for single
19742         and double.
19743
19744         * marshal.c (mono_string_utf8_to_builder): impl.
19745         (mono_string_builder_to_utf8): impl.
19746         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19747
19748 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19749
19750         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19751         (mono_marshal_get_managed_wrapper): impl. byref types
19752
19753 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19754
19755         * icall.c:
19756         (search_method): don't display debug message. 
19757
19758 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19759
19760         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19761
19762 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19763
19764         * appdomain.c: set the missing filename when throwing exception.
19765
19766 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19767
19768         * metadata.c (mono_type_size): code cleanup
19769         (mono_type_stack_size): removed some test code
19770
19771 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19772
19773         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19774         mono_get_exception_file_not_found now.
19775
19776         * exception.c (mono_exception_from_name_two_strings): New version
19777         that will call a constructor with two string arguments. 
19778         (mono_get_exception_file_not_found): New helper routine, used to
19779         report file-not-found errors.
19780
19781 2002-07-20  Dick Porter  <dick@ximian.com>
19782
19783         * process.h:
19784         * process.c: Pass file handles to CreateProcess
19785         
19786         * icall.c:
19787         * file-io.h:
19788         * file-io.c: Implemented CreatePipe
19789
19790 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19791
19792         * metadata.c (mono_get_param_info): set alignment for value types
19793
19794 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19795
19796         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19797         Constify mono_domain_assembly_open().
19798         * loader.c: handle null namespace in icalls.
19799
19800 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19801
19802         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19803         (emit_str_to_ptr_conv): marshal object as structs
19804
19805         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19806
19807         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19808
19809 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19810
19811         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19812         (mono_marshal_get_native_wrapper): we an now return value types
19813
19814 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19815
19816         * verify.c: more checks implemented.
19817
19818 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19819
19820         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19821         (fix bug #27695)
19822         (mono_marshal_get_native_wrapper): allow byref arguments
19823         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19824         impl. PtrToStringXXX methods
19825         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19826         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19827         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19828         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19829         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19830
19831 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19832
19833         * reflection.c: fix buglet in parsing an assembly name.
19834
19835 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19836
19837         * marshal.c (emit_ptr_to_str_conv): first impl.
19838
19839 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19840
19841         * object.c, class.h: cache the vtable in the class as suggested by
19842         vargaz@freemail.hu (Zoltan Varga).
19843
19844 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19845
19846         * class.h, loader.c: added mono_field_from_token().
19847         * verify.c: first cut of type checking code.
19848
19849 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19850
19851         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19852
19853 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19854
19855         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19856         (fix bug #27782)
19857         (mono_marshal_get_remoting_invoke): impl.
19858         (mono_delegate_begin_invoke): impl.
19859         (mono_mb_emit_save_args): impl.
19860         (mono_delegate_end_invoke): impl.
19861         (mono_marshal_get_delegate_begin_invoke):
19862         (mono_marshal_get_delegate_end_invoke):
19863         (mono_marshal_get_delegate_invoke): generate a special name for
19864         those methods (including the signature) and associate them whith
19865         the delegate class. 
19866
19867 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19868
19869         * reflection.[ch]: 
19870         (mono_reflection_type_from_name): now it has a MonoImage parameter
19871         which is used as the default image to search the type in. If the image
19872         is NULL or getting the type from it fails, it defaults to corlib.
19873
19874         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19875         new parameter.
19876
19877 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19878
19879         * reflection.c: update the parameter table index.
19880
19881 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19882
19883         * domain.c: don't include the mark byte in the string hash.
19884
19885 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19886
19887         * icall.cs: icall for Type.GetTypeCode ().
19888         * verify: a couple of fixes and disabled local initialization checks.
19889
19890 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19891
19892         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19893
19894         * debug-helpers.c (mono_method_full_name): print the type of the
19895         runtime wrapper
19896
19897         * metadata.c (mono_signature_hash): a hash function for signatures
19898         (mono_signature_hash): better hash algorithm
19899
19900         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19901
19902         * debug-helpers.c (mono_method_full_name): this can now generate
19903         method names with signatures
19904
19905         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19906         method dont have this pointers.
19907
19908 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19909
19910         * reflection.c: fixup typebuilder tokens.
19911         * image.c: fix buglet.
19912         * marshal.h: remove whitespace.
19913         * metadata.h, metadata.c: reinstate code that was removed.
19914         * verify.c: handle catch directives and fix another couple of bugs.
19915
19916 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19917
19918         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19919         (mono_marshal_get_native_wrapper): make it comp. with the old code
19920         (mono_marshal_get_native_wrapper): support boolean
19921         (mono_marshal_get_managed_wrapper): support more types
19922
19923 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19924
19925         * class.c (class_compute_field_layout): compute class->blittable attribute.
19926
19927 2002-07-09  Dick Porter  <dick@ximian.com>
19928
19929         * threads.c: Make the thread cleaning up cope with threads that
19930         call ExitThread()
19931
19932 2002-07-08  Radek Doulik  <rodo@ximian.com>
19933
19934         * reflection.c (method_encode_code): use non-translated values to
19935         compute finally_start, this fixes exception handling on ppc, yay!
19936
19937         * decimal.h (struct signscale): fix endianess
19938
19939 2002-07-07  Radek Doulik  <rodo@ximian.com>
19940
19941         * reflection.c: swap box_val and not val
19942
19943 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19944
19945         * reflection.c, reflection.h: handle full assembly info in type name.
19946         Handle Type arguments when loading custom attributes.
19947         * icall.c: updated to use new mono_reflection_type_from_name () method.
19948
19949 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19950
19951         * loader.c:
19952         (method_from_memberref): also print assembly name when method not found.
19953
19954 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19955
19956         * icall.c:
19957         (ves_icall_TypeGetProperties): fixed bug #27473. 
19958
19959 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19960
19961         * reflection.c: display image name and token when cannot find the
19962         .ctor for an attribute.
19963
19964 2002-07-05  Martin Baulig  <martin@gnome.org>
19965
19966         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19967
19968 2002-07-04  Dick Porter  <dick@ximian.com>
19969
19970         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19971         compile on mingw.  This will cause mingw builds to not wait for
19972         subthreads to terminate after the main thread does.  I've lodged a
19973         bug with the mingw developers for them to wrap OpenThread().
19974
19975 2002-07-03  Dick Porter  <dick@ximian.com>
19976
19977         * threads.c: Store thread IDs instead of handles, because
19978         GetCurrentThread() returns a pseudohandle and therefore stores
19979         useless values.  mono_thread_cleanup() continues checking the
19980         array of threads until it is empty, to cope with subthreads
19981         spawning new threads after the main thread has finished.
19982
19983         * profiler.h:
19984         * profiler.c:
19985         * profiler-private.h: Pass the thread ID to thread profiler
19986         functions, instead of a handle
19987
19988 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19989
19990         * verify.c: fixes to make it more usable.
19991         * pedump.c: added --verify code to verify IL code in an assembly.
19992
19993 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19994
19995         * reflection.c: turn errors into warnings to allow compiling corlib.
19996
19997 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19998
19999         * reflection.c: add special cases to compile corlib.
20000
20001 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20002
20003         * reflection.c: handle properties with only a set method.
20004
20005 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20006
20007         * opcodes.h: add enum with opcodes in opval order.
20008
20009 2002-07-01  Dick Porter  <dick@ximian.com>
20010         
20011         * object.h:
20012         * object.c (mono_runtime_run_main): Removed unneeded argument
20013
20014 2002-06-28  Martin Baulig  <martin@gnome.org>
20015
20016         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20017
20018 2002-06-27  Dick Porter  <dick@ximian.com>
20019
20020         * threads.c: Store the handle in both the parent thread and in the
20021         subthread, to minimise the time between starting a new thread and
20022         storing its ID.
20023
20024 2002-06-26  Dick Porter  <dick@ximian.com>
20025
20026         * appdomain.c (mono_runtime_cleanup): Close the socket library
20027         after all the threads have finished, not before
20028
20029 2002-06-26  Martin Baulig  <martin@gnome.org>
20030
20031         * debug-symfile.c (mono_debug_find_source_location): Added
20032         `guint32 *line_number' argument.  If it's not NULL, store the line number
20033         there and return the file name without the line number.
20034
20035 2002-06-25  Dick Porter  <dick@ximian.com>
20036
20037         * icall.c:
20038         * process.h:
20039         * process.c: Process forking and other support functions
20040
20041 2002-06-25  Dick Porter  <dick@ximian.com>
20042
20043         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20044         things dont happen when the image is closed.
20045         (mono_image_lookup_resource): Walk the resource section looking
20046         for a particular entry
20047
20048         * cil-coff.h: PE resource section decoding
20049
20050 2002-06-25  Dick Porter  <dick@ximian.com>
20051         
20052         * assembly.h:
20053         * assembly.c: 
20054         (mono_assembly_foreach): Accessor functions to walk the list of
20055         loaded assemblies
20056         (mono_assembly_set_main):
20057         (mono_assembly_get_main): Process methods need to know which
20058         assembly is the "main" one
20059
20060         * object.c (mono_runtime_run_main): Record the main assembly
20061
20062         * debug-helpers.c: Fix typo
20063
20064 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20065
20066         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20067         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20068
20069 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20070
20071         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20072
20073 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20074
20075         * image.c (do_mono_image_open): Initialize reference count,
20076         otherwise we leak the MonoImage.
20077
20078 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20079
20080         * reflection.c: small tweak to handle self-hosting.
20081
20082 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20083
20084         * reflection.c: fix type name parse code.
20085
20086 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20087
20088         * reflection.c: break out of the loop.
20089         * image.c: special case corlib.
20090
20091 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20092
20093         * reflection.c: add all the custom attrs at the end to ensure the
20094         ctors have been properly initialized when the attributes are defined
20095         in the current assembly.
20096
20097 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20098
20099         * reflection.c: handle correctly multiple-nested types.
20100
20101 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20102
20103         * row-indexes.h: fix typos.
20104         * reflection.c: adjust for typos and fix method_def_or_ref
20105         encoding in MethodImpl table.
20106
20107 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20108
20109         * reflection.c: fix entry point patching (thanks Serge!).
20110
20111 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20112
20113         * verify.c: add check for System.Exception
20114
20115 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20116
20117         * image.c, class.c: minifix for code just c&p'ed.
20118         * reflection.c: warning fix.
20119         * object.h, loader.h, domain.c: load also StringBuilder.
20120
20121 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20122
20123         * marshal.h, marshal.c: some support code to handle complex marshaling.
20124
20125 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20126
20127         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20128         Better signatures with vtable error dump.
20129
20130 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20131
20132         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20133
20134 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20135
20136         * icall.c (ves_icall_Type_GetField): impl.
20137
20138 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20139
20140         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20141         to retrieve a marshal description blob for a field or param.
20142
20143 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20144
20145         * reflection.h, reflection.c: change order of nested type emission
20146         to avoid table corruption. The NestedTypes table is sorted.
20147         * icall.c: change order of GetConstructor results to workaround mcs bug.
20148
20149 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20150
20151         * reflection.h, reflection.c: handle field and param marshal
20152         information.
20153
20154 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20155
20156         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20157
20158 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20159
20160         * reflection.c: fix call convention.
20161
20162 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20163
20164         * reflection.h, reflection.c: mono_image_get_memberref_token()
20165         takes a type instead of a class, now. Added
20166         mono_image_get_array_token() to create tokens for the special
20167         multi-dim array methods.
20168
20169 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20170
20171         * assembly.c: handle modules (no assembly table). Split
20172         loading references in its own function.
20173         * class.c: handle moduleref resolution scope.
20174         * image.c, image.h: cache module name in image.
20175
20176 2002-06-07  Martin Baulig  <martin@gnome.org>
20177
20178         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20179         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20180
20181 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20182
20183         * icall.c: more signature fixes that used uint instead of int.
20184
20185 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20186
20187         * reflection.c: fixed signature of field refs.
20188
20189 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20190
20191         * class.c, reflection.c: handle typerefs of nested types
20192         (both on read and when writing files).
20193
20194 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20195
20196         * icall.c: fix method signatures that tried to workaround the previous
20197         typo, d'oh!
20198
20199 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20200
20201         * debug-helpers.c: fix typo.
20202
20203 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20204
20205         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20206         rewrote the PE/COFF writing code (our programs are understood by the
20207         ms runtime, now).
20208
20209 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20210
20211         * gc.c, gc.h, icall.c: weakreference support.
20212
20213 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20214
20215         * Makefile.am, mono-config.c: use $(sysconfdir).
20216
20217 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20218
20219         * icall.c: changed default precision of Double.ToString() to 15.
20220         Fixed memory leak. Unified with Single.ToString.
20221
20222 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20223
20224         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20225
20226 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20227
20228         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20229         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20230         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20231         and myself.
20232
20233 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20234
20235         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20236
20237 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20238
20239         * reflection.c, socket-io.c: more compilation fixes.
20240
20241 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20242
20243         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20244         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20245         unicode.c: warning and compiler compatibility fixes.
20246
20247 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20248
20249         * class.h, metadata.c: fixed warnings/compilation errors.
20250
20251 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20252
20253         * Makefile.am, mono-config.c, mono-config.h: configuration file
20254         support routines.
20255         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20256         config file. Export methods to insert and lookup mappings.
20257
20258 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20259
20260         * reflection.c: handle types and boxed objects in custom attr
20261         constructors.
20262
20263 2002-05-30  Martin Baulig  <martin@gnome.org>
20264
20265         * debug-symfile.c
20266         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20267
20268 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20269
20270         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20271         to lookup the implmap row for a P/Invoke method.
20272         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20273         P/Invoke method from the runtime on an as needed basis.
20274
20275 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20276
20277         * metadata.c (mono_metadata_parse_signature): impl.
20278
20279 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20280
20281         * class.c: handle .pack directive.
20282
20283 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20284
20285         * object.c: initialize static fields with RVA data.
20286
20287 2002-05-25  Martin Baulig  <martin@gnome.org>
20288
20289         * debug-symfile.c
20290         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20291
20292 2002-05-24  Martin Baulig  <martin@gnome.org>
20293
20294         * debug-symfile.c
20295         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20296         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20297         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20298
20299 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20300
20301         * object.c: special case string ctros in invoke.
20302         * gc.c: silly whitespace changes.
20303
20304 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20305
20306         * threadpool.[ch]: impl. a threadpool that can
20307         be used by mint and mono.
20308
20309 2002-05-22  Martin Baulig  <martin@gnome.org>
20310
20311         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20312         The first argument is now a `MonoReflectionModuleBuilder *', the return
20313         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20314         `methods' field to get the method builder.  The `token' argument is the
20315         unfixed token.
20316
20317         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20318         invalid characters instead of g_assert_not_reached()ing.  This seems
20319         to be the behaviour of mscorlib.
20320
20321 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20322
20323         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20324         Hestilow to fix bug #25104
20325
20326 2002-05-21  Martin Baulig  <martin@gnome.org>
20327
20328         * debug-symfile.c (mono_debug_find_source_location): New function.
20329         Looks up an IL offset in the line number table and returns the source
20330         location as a string.
20331
20332 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20333
20334         * icall.c:
20335         (mono_double_ToStringImpl): changed %f by %g until we have something
20336         better.
20337
20338 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20339
20340         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20341         parameters first in C#.
20342
20343 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20344
20345         * icall.c, reflection.h: added icall to get info about an event.
20346
20347 2002-05-20  Radek Doulik  <rodo@ximian.com>
20348
20349         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20350         endian
20351         (mono_value_box): don't use memcpy for small sizes on
20352         architectures with unaligned access
20353
20354 2002-05-20  Martin Baulig  <martin@gnome.org>
20355
20356         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20357         if `tb->parent == NULL'.
20358         (mono_reflection_create_internal_class): New function.  This is
20359         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20360         for enum types.
20361
20362         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20363         New interncall.
20364
20365 2002-05-19  Martin Baulig  <martin@gnome.org>
20366
20367         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20368         argument to get the length, don't default to the array length.
20369
20370 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20371
20372         * assembly.c (mono_assembly_setrootdir): New function used to
20373         override the MONO_ASSEMBLIES directory.
20374
20375 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20376
20377         * icall.c: ValueType_GetHashCode() initialize local var.
20378
20379 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20380
20381         * reflection.c: sort custom attributes table.
20382
20383 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20384
20385         * reflection.c: support named args in custom attributes (write support).
20386
20387 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20388
20389         * reflection.c: fix finally position calculation.
20390
20391 2002-05-15  Radek Doulik  <rodo@ximian.com>
20392
20393         * reflection.c: fixed endianess at many places
20394
20395         * icall.c (ves_icall_InitializeArray): comment out debug msg
20396
20397 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20398
20399         * object.c (mono_unhandled_exception): new function to handle
20400         unhandled exceptions.
20401         (mono_unhandled_exception): call the UnhandledException event.
20402         (mono_runtime_delegate_invoke): impl.
20403
20404 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20405
20406         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20407         returns the RVA, not the direct pointer to the data. Handle the case
20408         when the class size is fixed.
20409
20410 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20411
20412         * reflection.c: fix some endianess issues.
20413
20414 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20415
20416         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20417
20418         * threads.c (mono_thread_init): added a callback which is invoked
20419         at thread start.
20420
20421 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20422         
20423         * icall.c: make GetHashCode return non-negative values.
20424
20425 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20426
20427         * object.c, icall.c, gc.c: revert to address-based hashcode.
20428
20429 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20430
20431         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20432
20433 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20434
20435         * icall.c, class.c: special case <Module>.
20436
20437 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20438
20439         * icall.c: fix bug in GetNow().
20440
20441 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20442
20443         * object.c (mono_runtime_class_init): make sure that we call all
20444         static class constructors.
20445
20446 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20447
20448         * reflection.c: sort methodsemantics table.
20449
20450 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20451
20452         * reflection.h, reflection.c: honour init locals setting.
20453
20454 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20455
20456         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20457
20458 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20459
20460         * reflection.c: support ContructorBuilders in attribute blob creation.
20461
20462 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20463
20464         * reflection.c: some changes to build a binary that can be run
20465         directly in windows.
20466
20467 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20468
20469         * loader.c: print a big message when an icall can't be found.
20470
20471 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20472
20473         * string-icalls.c: fix bug 24248.
20474
20475 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20476
20477         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20478         icall.c, reflection.h: separate assembly loading by pathname and by
20479         assembly name. Use the MONO_PATH env var to search for assemblies.
20480
20481 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20482
20483         * assembly.c, image.h: add some support for assemblies
20484         with multiple modules.
20485         * class.c, class.h: export mono_class_from_typeref().
20486         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20487         instead.
20488
20489 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20490
20491         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20492         documentation says (the ECMA one is correct).
20493
20494 2002-05-02  Dick Porter  <dick@ximian.com>
20495
20496         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20497         Don't name the synchronisation mutex.
20498
20499 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20500
20501         * rand.c
20502         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20503         Make the prototypes match.
20504         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20505         Same.
20506
20507         * icall.c
20508         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20509         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20510         all systems have tm.tm_zone, so use strftime() with %Z to print
20511         the timezone abreviation into a temp string.
20512
20513         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20514         rather than mono_array_addr() on a MonoString on Big Endian
20515         machines.
20516
20517 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20518
20519         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20520         fix bug 24041
20521
20522 2002-04-30  Dick Porter  <dick@ximian.com>
20523
20524         * socket-io.c: Cope with SOCKET being an integer rather than a
20525         pointer now.
20526
20527         * threads.c: Added Thread_free_internal, to deal with thread
20528         handle cleanup.  Moved calls to handle_store() and handle_remove()
20529         to start_wrapper(), so each can only be called once.  Allocate
20530         synchronisation blocks with GC_malloc(), and use GC finalisation
20531         to close the handles.
20532
20533         * icall.c: added System.Threading.Thread::Thread_free_internal
20534
20535 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20536
20537         * icall.c: support Environment.Exit, CommandLineArgs().
20538
20539 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20540
20541         * object.c, object.h: added mono_runtime_run_main () and
20542         mono_runtime_get_main_args () for use in System.Environment.
20543
20544 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20545
20546         * gc.c: fix thinko, enable actual finalization since the jit is now
20547         fixed.
20548
20549 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20550
20551         * gc.c, object.c: take into account that an object may be offset wrt the address
20552         returned by GC_malloc().
20553
20554 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20555
20556         * image.c: handle files without entries in the assembly table (modules).
20557
20558 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20559
20560         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20561         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20562         allowed to be null when it's System.Object class setup.
20563
20564 2002-04-27  Martin Baulig  <martin@gnome.org>
20565
20566         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20567         if `tb->parent == NULL' rather than crashing.
20568
20569 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20570
20571         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20572         calling acos() where asin() should have been called.
20573
20574 2002-04-26  Martin Baulig  <martin@gnome.org>
20575
20576         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20577         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20578         there's a subdirectory called `System', but we don't want to read that
20579         subdirectory as an assembly.
20580
20581 2002-04-25  Martin Baulig  <martin@gnome.org>
20582
20583         * debug-symfile.c: Reflect latest MonoString changes.
20584
20585 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20586
20587         * rand.c, rand.h: instance method icalls need to have an explicit
20588         this pointer as first argument in the C implementation.
20589
20590 2002-04-25  Nick Drochak <ndrochak@gol.com>
20591
20592         * icall.c: Fix typo in map for GetNonZeroBytes
20593
20594 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20595
20596         * string-icalls.c : String does now passes unit tests without any 
20597         errors, the following changes has been made:
20598         
20599         Implemented replace methods.
20600         Renaming of methods to (try) follow the standard.
20601         Fixed compare ordinal
20602         Made all memory allocated directly to function instead of via icall function.
20603         Small performance fix in is_in_array function
20604                         
20605  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20606
20607         c (mono_string_Internal_ctor_charp_int_int):
20608         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20609         sindex < 0, throw ArgumentOutOfRangeException instead of
20610         ArgumentNullException.
20611
20612         Added new check for length == 0, however
20613         I need to make it return String.Empty from the C code.
20614         
20615         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20616         that calculate the length for us here.
20617         
20618         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20619         mono_string_new_utf16 with mono_string_new, since value is utf8.
20620
20621 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20622
20623         * object.c: register the object for finalization if needed.
20624         Allocate one more char in the string for the terminating 0 char.
20625
20626 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20627
20628         * class.c, class.h, image.c: check if a type implemenst a destructor.
20629         Use the proper key for array class lookups.
20630         * icall.c: register the icalls in the System.GC class.
20631         * gc.c, gc.h: GC-related functions and icalls.
20632
20633 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20634
20635         * icall.c:
20636         * socket-io.c:
20637         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20638         changed a couple of free () by g_free ().
20639
20640         * decimal.c: one-liner in the comments for decimal2string ().
20641
20642 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20643
20644         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20645
20646 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20647
20648         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20649         * object.c (mono_runtime_invoke_array) : handle null in params
20650
20651 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20652
20653         * string-icalls.c: fixed bug in split (one off bug)
20654
20655 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20656
20657         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20658         * icalls.c: added String::Equals as internal method
20659
20660 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20661
20662         * threads.c: fixed bug in the double interlocked functions
20663
20664 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20665
20666         * threads.c: implemented all of the new interlocked icalls.
20667         * string-icalls.c: fix a bug in insert.
20668         * icalls.c: added the icalls for interlocked, removed old string functions.
20669         
20670 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20671
20672         * loader.c: fix off-by-one error when reading argument names.
20673
20674 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20675
20676         * profiler.c: win32 counter implementation (untested).
20677         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20678         (the latter needs testing and more complete impl. from win32 folks).
20679
20680 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20681
20682         * object.c: mono_array_new_full workaround mono_array_class_get
20683         problem.
20684
20685 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20686
20687         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20688         * object.h (mono_string_chars): Changed casting type.
20689
20690 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20691
20692         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20693                            method signatures to use gunichar2 instead of gint16.
20694
20695 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20696
20697         * object.h, object.c: domain-specific versions of mono_object_new and
20698         mono_array_new.
20699
20700 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20701
20702         * object.c: changed String layout
20703
20704         * string-icalls.c (mono_string_Internal_ctor_chara): added
20705         internal string constructors.
20706
20707 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20708
20709         * threads.c: pass 'this' to the thread start routine.
20710
20711 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20712
20713         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20714         InternalCompareStr don't call twice mono_string_cmp_char for the last
20715         character. Improved performance in mono_string_cmp_char.
20716
20717 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20718
20719         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20720         code into its own library: libmonoruntime.
20721
20722 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20723
20724         * object.h, object.c: changed array format so that szarrays do not
20725         require a bounds structure.
20726         * icall.c, appdomain.c: support for new szarray format.
20727
20728 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20729
20730         * metadata.c: compare also the retuns type when comparing signatures:
20731         we didn't do this as an optimization since really overloaded methods
20732         must differ also in the arguments, but this doesn't work with
20733         low-level IL code (or when using explicit conversion operators: see
20734         bug#23498 for an example).
20735
20736 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20737
20738         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20739
20740 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20741
20742         * icall.c: make MonoType::GetElementType its own icall.
20743
20744 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20745
20746         * icall.c: remove MonoMethod_get_Name().
20747         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20748         object.
20749
20750 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20751
20752         * string-icalls.c: optimized a few methods.
20753
20754 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20755
20756         * icall.c: added all new string internal calls
20757         * string-icalls.c: added, new string internal call implementation.
20758         * object.c: added mono_string_new_size for allocating a string a size
20759
20760 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20761
20762         * object.c (mono_object_isinst): use the same code as in the
20763         optimized x86 version.
20764
20765 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20766
20767         * profiler.c: TSC-based timer code (faster and more accurate).
20768         Not hooked up in configure, yet (set USE_X86TSC to 1).
20769
20770 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20771
20772         * profiler.c, profiler.h: track time spent compiling methods.
20773         * threads.c: track thread creation/destruction.
20774
20775 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20776
20777         * profiler.c, profiler.h, profiler-private.h: profiling interface
20778         and sample implementation. Moved here so that it can be used also by
20779         the jit.
20780
20781 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20782
20783         * reflection.c, reflection.h: keep types and other handles separate in
20784         the hash tables for referred tokens. Add guid for modules.
20785
20786 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20787
20788         * assembly.c: fix bugs found with valgrind.
20789         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20790
20791 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20792
20793         * threads: added icall support for getting current domain for
20794                    the thread.
20795  
20796 2002-04-13  Martin Baulig  <martin@gnome.org>
20797
20798         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20799         (MonoDebugVarInfo): Added `index' field for register based addresses.
20800         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20801         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20802         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20803         `MonoDebugVarInfo *this_var'.
20804
20805         * debug-symfile.c (relocate_variable): New static function to write
20806         a location description for a local variable or method parameter.
20807
20808 2002-04-12  Martin Baulig  <martin@gnome.org>
20809
20810         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20811         stack offset and begin/end scope address of a local variable.
20812         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20813         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20814         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20815
20816         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20817         Added new relocation types for start/end scope of a local variable.
20818
20819 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20820
20821         * object.h: add mono_object_domain() macro.
20822         * reflection.c: handle typespecs.
20823         * icall.c: MonoMethod::get_Name() implementation.
20824
20825 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20826
20827         * icall.c: String::GetHashCode() icall implementation.
20828
20829 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20830
20831         * icall.c: String::IndexOfAny icall.
20832         * object.c, object.h: make array->max_length more useful.
20833         Intrduced mono_object_class() and mono_string_length() macros.
20834
20835 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20836
20837         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20838         instead of g_unichar_isdigit.
20839
20840 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20841
20842         * icall.c: Implement a simple Double.ToString().
20843
20844 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20845
20846         * appdomain.h: only io-layer.h is supposed to be included.
20847         * icall.c: explicitly import environ. Fix warning.
20848
20849 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20850
20851         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20852                 return true even if it's not Daylight Savings time.
20853                 Only return false for the case where the function isn't
20854                 implemented for a plaform (read Windows).
20855
20856 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20857
20858         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20859         data with a mutex.
20860
20861 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20862
20863         * mempool.c (mono_mempool_alloc): only use g_malloc when
20864         absolutely necessary.
20865
20866 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20867
20868         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20869
20870         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20871         (mono_class_proxy_vtable): use domain mempool
20872
20873 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20874
20875         * appdomain.h, appdomain.c: split initialization that requires the
20876         execution engine support into mono_runtime_init().
20877
20878 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20879
20880         * class.c (mono_class_init): don't include vtable inside MonoClass
20881         to save some memory, gather some statistics.
20882         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20883
20884 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20885
20886         * icall.c: internalcall implementation for ValueType.Equals().
20887
20888 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20889
20890         * object.c (mono_message_init): moved 
20891         (mono_runtime_exec_main): new arch. independent impl.
20892         (mono_runtime_invoke_array): new method - like
20893         mono_runtime_invoke, but you can pass an array of objects.
20894         (mono_remoting_invoke): new arch. independent impl.
20895         (mono_message_invoke): new arch. independent impl.
20896         (mono_runtime_class_init): new arch. independent impl.
20897         (mono_runtime_object_init): new arch. independent impl.
20898
20899 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20900
20901         * metadata.c, object.c, reflection.c: documented the exported
20902         functions.
20903
20904 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20905
20906         * icall.c: simpler code to pass the assembly builder data to corlib.
20907         Implement GetNestedTypes() internalcall.
20908
20909 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20910
20911         * class.c: warn if a type can't be loaded.
20912
20913 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20914
20915         * image.h: typedef MonoImageOpenStatus
20916         * types.h: removed unused file
20917         
20918 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20919
20920         * icall.c: Enum_ToObject accepts enum value arguments.
20921
20922 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20923
20924         * class.c: move initialization of properties, events and nested
20925         classes, so that they happen for interfaces, too.
20926
20927 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20928
20929         * icall.c: cleanup some ugly casts in Array_SetValue*.
20930
20931 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20932
20933         * icall.c: the values array fro enums is of the correct type, now.
20934         Implement (correctly) getFullName instead of assQualifiedName for
20935         MonoType.
20936         * reflection.h, reflection.c: added mono_type_get_name ().
20937
20938 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20939
20940         * assembly.c, image.h: for each MonoImage, record from wich assembly
20941         it was loaded.
20942         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20943         Make Type.Assembly work.
20944
20945 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20946
20947         * debug-symfile.h: use char* instead of gpointer to avoid
20948         unnecessary casts.
20949
20950         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20951
20952         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20953         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20954
20955 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20956
20957         * icall.c (mono_message_init): impl. (code cleanup)
20958         (ves_icall_InternalExecute): impl. FieldGetter
20959
20960         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20961         defined we call all (non-static)methods through the vtable. 
20962
20963 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20964
20965         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20966         finalizer even though the memory is still referenced (and the chunk of
20967         memory is not freed).
20968
20969 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20970
20971         * assembly.c: fix brokeness.
20972
20973 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20974
20975         * class.c: kill some warnings. Check explicit interface method
20976         implementation also without considering the namespace.
20977         Load also literal strings in static class data.
20978
20979 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20980
20981         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20982         (default_assembly_name_resolver): Make the resolver take the
20983         "base" directory where the assembly was originally defined, so we
20984         can load DLLs that are in the same directory as the assembly that
20985         is being referenced.
20986
20987 2002-03-28  Dick Porter  <dick@ximian.com>
20988
20989         * file-io.h: 
20990         * file-io.c:
20991         * socket-io.c: 
20992         * unicode.h: 
20993         * unicode.c: Warning cleanups
20994
20995 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20996
20997         * object.h, reflection.h: use the correct type instead of MonoObject.
20998
20999 2002-03-28  Martin Baulig  <martin@gnome.org>
21000
21001         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21002         (mono_debug_update_symbol_file): Initialize classes if necessary.
21003
21004 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21005
21006         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21007         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21008
21009 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21010
21011         * assembly.h: fix function prototype.
21012         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21013         * mono-endian.h: use const cast.
21014
21015 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21016
21017         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21018
21019 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21020
21021         * loader.c: don't assert when a typeref can't be loaded, give
21022         a chance to the runtime to trow an exception instead.
21023         * loader.h: fix warning.
21024
21025 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21026
21027         * class.c (mono_class_proxy_vtable): added proxy support
21028
21029 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21030
21031         * icall.c: removed last of PAL calls, added System.Environment
21032         * file-io.h, file-io.c: MonoIO implementation
21033         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21034
21035 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21036
21037         * appdomain.c: do not use the byte marker in ldstr table lookup.
21038         * debug-helpers.c: allow two ':' to separate class and method name.
21039         * object.c: allocate arrays bounds with the GC, too.
21040         * verify: add a few more checks.
21041
21042 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21043
21044         * reflection.c: output also literal strings. Allocate parameter data
21045         with GC_malloc() (thanks, Martin, for catching this!).
21046
21047 2002-03-26  Martin Baulig  <martin@gnome.org>
21048
21049         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21050         include the `this' offset in the `param_offsets'.
21051
21052 2002-03-25  Martin Baulig  <martin@gnome.org>
21053
21054         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21055         mono_debug_get_class() function to get the classes. Added new
21056         relocation types for arrays and strings.
21057         (mono_debug_get_class): New static function to search in all
21058         referenced assemblies for a metadata token.
21059
21060         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21061
21062 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21063
21064         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21065         hold gc-allocated objects. Make the string heap a stream like the
21066         others. Removed duplicated code when writing stream info.
21067         Added asserts to catch possible buffer overflows. Set the sorted map
21068         for tables that need sorting. Added some documentation.
21069
21070 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21071
21072         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21073         for interned strings and vtables.
21074
21075 2002-03-24  Martin Baulig  <martin@gnome.org>
21076
21077         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21078         it in the array since it was created with g_slist_prepend().
21079
21080 2002-03-24  Martin Baulig  <martin@gnome.org>
21081
21082         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21083         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21084         (mono_debug_method_from_token): Renamed to
21085         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21086         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21087
21088         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21089         relocation types.
21090
21091         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21092
21093 2002-03-24  Martin Baulig  <martin@gnome.org>
21094
21095         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21096         (mono_debug_method_from_token): New func.
21097
21098         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21099         New interncall, calls mono_debug_local_type_from_signature().
21100         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21101         calls mono_debug_method_from_token().
21102
21103 2002-03-23  Martin Baulig  <martin@gnome.org>
21104
21105         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21106         specifies the number of bytes to be converted, not the array size.
21107         Return the number of chars, not the number of bytes.
21108         (ves_icall_iconv_get_chars): The `byteCount' argument
21109         specifies the number of bytes to be converted, not the array size.
21110
21111 2002-03-23  Martin Baulig  <martin@gnome.org>
21112
21113         * reflection.h (MonoReflectionSigHelper): New type.
21114
21115         * reflection.c (mono_reflection_sighelper_get_signature_local),
21116         (mono_reflection_sighelper_get_signature_local): New functions.
21117
21118         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21119         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21120         interncalls.
21121
21122 2002-03-23  Martin Baulig  <martin@gnome.org>
21123
21124         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21125         is_writeable is set.
21126         (mono_raw_buffer_update): New function to write the modified map
21127         back to disk.
21128
21129         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21130
21131         * debug-symfile.c (mono_debug_update_symbol_file): Call
21132         mono_raw_buffer_update() when done writing.
21133
21134 2002-03-23  Martin Baulig  <martin@gnome.org>
21135
21136         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21137
21138         * debug-symfile.c: Added support for arguments and local variables.
21139
21140 2002-03-23  Dick Porter  <dick@ximian.com>
21141
21142         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21143         protected by ifdefs, hence breaking the w32 build.
21144
21145 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21146
21147         * object.c: implement is_interned() the right way.
21148
21149 2002-03-21  Martin Baulig  <martin@gnome.org>
21150
21151         * debug-symfile.[ch]: New files to handle debugging information
21152         files. There's also support to dynamically update these symbol
21153         files to include machine dependent information.
21154
21155 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21156
21157         * threads.c (mono_thread_create): new function to create thread
21158         from C
21159
21160 2002-03-20  Martin Baulig  <martin@gnome.org>
21161
21162         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21163         method is a constructor.
21164         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21165         points to ves_icall_InternalInvoke().
21166
21167 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21168
21169         * file-io.c: Flush shouldn't throw exceptions.
21170
21171 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21172
21173         * file-io.c: FileStream flush support; FileSetLength now
21174         restores file pointer.
21175
21176 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21177
21178         * class.c: set image for pointer classes.
21179
21180 2002/03/19  Nick Drochak <ndrochak@gol.com>
21181
21182         * sysmath.c: Forgot one.
21183
21184 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21185
21186         * sysmath.c: Avoid redefining existing names.
21187
21188 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21189
21190         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21191         handled by runtime as icall rather than dllimport from libm.so
21192         * file-io.c, file-io.h: fixed handle argument type.
21193
21194 2002-03-18  Dick Porter  <dick@ximian.com>
21195
21196         * reflection.c (mono_image_get_type_info): rename interface to
21197         iface, because of "#define interface struct" on windows.
21198
21199 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21200
21201         * class.c, class.h: rename and export mono_ptr_class_get().
21202         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21203         * reflection.c, reflection.h, icall.c: better/saner type name
21204         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21205         method signatures.
21206
21207 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21208
21209         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21210
21211         * icall.c (ves_icall_InternalInvoke): impl.
21212
21213 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21214
21215         * reflection.c: output the interface map table, too.
21216
21217 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21218
21219         * class.c (class_compute_field_layout): separate computation of 
21220         static field layout
21221
21222 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21223
21224         * icall.c: added System.Buffer support.
21225         * file-io.c: moved file icalls from PAL to FileStream.
21226
21227 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21228
21229         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21230
21231 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21232
21233         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21234
21235 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21236
21237         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21238
21239 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21240
21241         * debug-helpers.{c,h}: moved here from monograph some useful functions
21242         to locate a method by name/signature in a class or image. Included
21243         also a small and flexible IL disassembler.
21244
21245 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21246
21247         * reflection.c: fixup tokens in methods with small header size, too.
21248
21249 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21250
21251         * object.c (mono_string_to_utf8): remove assert(!error), instead
21252         print a warning. 
21253
21254 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21255
21256         * icall.c: update to the new mono_Array_class_get interface.
21257
21258 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21259
21260         * appdomain.c, object.c: Boehm-GC enable.
21261         * icall.c: make get_data_chunk() support split data requests.
21262         Ensure a class is initialized in more cases. Return only the first
21263         property found in GetProperties() or the compiler gets confused. 
21264         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21265         * reflection.h, reflection.c: add fixup mechanism for field and method
21266         tokens. Initialize assembly->typeref in a single place. Output
21267         properties after events. Support custom attributes for events, too.
21268         Typo fix for paramter custom attrs.
21269
21270 2002-03-07  Martin Baulig  <martin@gnome.org>
21271
21272         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21273
21274 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21275
21276         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21277
21278 2002-03-06  Martin Baulig  <martin@gnome.org>
21279
21280         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21281         non-zero lower bounds. See testcases #F10-#F13.
21282
21283 2002-03-05  Martin Baulig  <martin@gnome.org>
21284
21285         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21286
21287         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21288         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21289         here.
21290         (ves_icall_System_Array_SetValue): Likewise.
21291         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21292         as argument and does the actual work. This function is used when copying a
21293         multi-dimensional array.
21294         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21295         now do all the widening conversions of value types.
21296         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21297
21298 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21299
21300         * class.c: remove some magic numbers and use the smbolic names,
21301         instead. Added init_events() to load event info at class init time.
21302         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21303         and mono_metadata_methods_from_event().
21304         * reflection.h, reflection.c: added support for writing out the evnets
21305         related information.
21306
21307 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21308
21309         * reflection.h, icall.c: use a different method (GetInterfaces)
21310         to gather interface info and add isbyref, isprimitive and
21311         ispointer to the ves_icall_get_type_info() return value.
21312
21313 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21314
21315         * class.h: stared adding support for events.
21316         * icall.c: split find_members implementation. Added debug icall to get
21317         the address of an object.
21318         * reflection.c: handle TypeBuilders in mono_type_get_object().
21319
21320 2002-03-01  Martin Baulig  <martin@gnome.org>
21321
21322         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21323         ArgumentOutOfRangeException(), not an ArgumentException().
21324         (ves_icall_System_Array_GetLowerBound): Likewise.
21325         (ves_icall_System_Array_GetValue): Improved argument checking.
21326         (ves_icall_System_Array_SetValue): Improved argument checking.
21327
21328 2002-03-01  Martin Baulig  <martin@gnome.org>
21329
21330         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21331         called with invalid arguments rather than just dying with g_assert().
21332         (ves_icall_System_Array_SetValue): Likewise.
21333         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21334         raise a NotImplementedException instead.
21335         (ves_icall_System_Array_GetLength): Added argument checking.
21336         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21337
21338 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21339
21340         * object.h (mono_assert): new macros mono_assert and
21341         mono_assert_not_reached
21342
21343 2002-02-28  Martin Baulig  <martin@gnome.org>
21344
21345         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21346         and "System::String::IsInterned" to "System::String::_IsInterned".
21347
21348 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21349
21350         * icall.c: remove hacks for typebuilder. Added icall to create a
21351         modified type from a tybebuilder.
21352         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21353         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21354         to create a backing MonoClass for a TypeBuilder.
21355
21356 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21357
21358         * class.c, class.h: more refactoring of class init.
21359         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21360
21361 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21362
21363         * marshal.c, marshal.h: start of marshaling interface.
21364
21365 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21366
21367         * icall.c: fix order in assembly qualified name icall.
21368
21369 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21370
21371         * class.c: do not free str, since we store it in the hash table.
21372         * reflection.h: add label field to MonoILExceptionInfo.
21373         * reflection.c: handle references to more than one assembly. Handle
21374         case when there isn't a module created in the assembly.
21375
21376 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21377
21378         * class.c: Fix typo. Start refactoring of class init code.
21379
21380 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21381
21382         * appdomain.c: exit with 1 on error.
21383         * class.c: we already have the name in MonoClassField.
21384         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21385         MonoStreamHeader instead of an offset of image->raw_metadata.
21386
21387 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21388
21389         * appdomain.c (mono_init): Be even more descriptive about the error.
21390
21391 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21392
21393         * appdomain.c: give the user an informative message when corlib can't
21394         be loaded.
21395
21396 2002-02-26  Martin Baulig  <martin@gnome.org>
21397
21398         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21399         New icall to get the time zone data.
21400
21401 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21402
21403         * reflection.c: set virtual and raw size of section correctly.
21404         * threads.c: transfer domain information to newly created threads.
21405
21406 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21407
21408         * class.c: when instancing a class in a domain, load the default
21409         vaules for static fields from the constant table. Fix System.Enum to
21410         not be an enum.
21411         * icall.c: implement Object::GetType() internalcall. Implemented
21412         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21413         Fixed checking of binding flags in find_members().
21414         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21415         * reflection.c: handle enumerations when writing to the constant
21416         table. Use a different object cache for types.
21417
21418
21419 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21420
21421         * object.c (mono_object_isinst): fix for arrays
21422
21423         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21424
21425 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21426
21427         * object.c: don't use mprotect ()  and fix intern pool hash table
21428         lookup for big endian systems.
21429
21430 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21431
21432         * icall.c: change type_is_subtype_of () signature.
21433
21434 2002-02-21  Mark Crichton  <crichton@gimp.org>
21435
21436         * rand.c, rand.h: Added random number generator for
21437         System.Security.Cryptography classes.
21438
21439         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21440
21441         * icall.c: Added System.Security.Cryptography calls.
21442
21443 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21444
21445         * class.c, icall.c, metadata.c: better support for pointer types.
21446         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21447         * reflection.c: Add support for getting custom attrs for properties
21448         and simplify some code.
21449
21450 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21451
21452         * icall.c: change getToken () and add custom attribute GetBlob()helper
21453         method.
21454         * reflection.h: add custom attrs array to the reflection builder structures.
21455         * reflection.c: encode and emit custom attributes for all the relevant
21456         reflection objects. Cache fieldref and methodref tokens. Change
21457         mono_image_create_token() interface to take a MonoDynamicAssembly.
21458         More complete custom attributes decoder. Load custom attributes for
21459         Assembly, Field, Method and Constructor objects, too. Make the
21460         returned array an Attribute[] one, not object[]. Added
21461         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21462         custom attribute constructor.
21463
21464 2002-02-20  Dick Porter  <dick@ximian.com>
21465
21466         * icall.c:
21467         * rawbuffer.c:
21468         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21469         problem code out for now).
21470
21471 2002-02-19  Radek Doulik  <rodo@ximian.com>
21472
21473         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21474
21475 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21476
21477         * icall.c: register the GetCustomAttributes method.
21478         * object.c, object.h: add mono_string_new_len ().
21479         * reflection.h, reflection.c: added mono_runtime_invoke(),
21480         mono_install_runtime_invoke(). Added
21481         mono_reflection_get_custom_attrs () to load custom attributes and
21482         create the attribute objects.
21483
21484 2002-02-19  Dick Porter  <dick@ximian.com>
21485         * threads-dummy-types.c:
21486         * threads-dummy-types.h:
21487         * threads-dummy.c:
21488         * threads-dummy.h:
21489         * threads-pthread-types.c:
21490         * threads-pthread-types.h:
21491         * threads-pthread.c:
21492         * threads-pthread.h:  Deleted obsolete files
21493
21494 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21495
21496         * class.c (mono_class_vtable): runtime init the class when we
21497         allocate static class data.
21498
21499         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21500
21501         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21502         and String - but we will need generic marshalling support in the
21503         future. 
21504         (mono_init): set the domain name in a ms compatible way
21505
21506         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21507         String[].
21508
21509 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21510
21511         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21512         for sizes
21513
21514         * appdomain.c (mono_domain_unload): impl.
21515
21516 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21517
21518         * appdomain.c, object.c: fix intern pool implementation.
21519         * class.c: fix alignment code.
21520
21521 2002-02-16  Radek Doulik  <rodo@ximian.com>
21522
21523         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21524         and s2 > s1, just copy lower bytes to be compatible with little
21525         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21526         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21527
21528         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21529         force big_endian to be 1 for big endian machines 
21530         (ves_icall_iconv_new_decoder): ditto
21531
21532 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21533
21534         * socket-io.c (convert_sockopt_level_and_name): If the system
21535         doesn't define SOL_IP or SOL_TCP, get them by hand using
21536         getprotobyname() and caching the values (because this could be a
21537         slow operation).
21538         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21539         Use the appropriate struct when the system does support it. Ie,
21540         not all systems have struct ip_mreqn so use struct ip_mreq when
21541         appropriate.
21542
21543 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21544
21545         * reflection.c: handle finally clauses.
21546
21547 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21548
21549         * socket-io.c: use g_snprintf() instead of snprintf.
21550
21551 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21552
21553         * reflection.c (mono_param_get_objects): Cast second argument to
21554         mono_method_get_param_names to a const char** to silence the
21555         compiler warning.
21556
21557         * appdomain.c (mono_domain_assembly_open): Put parens around the
21558         truth statement in the for-loop.
21559
21560         * unicode.c (iconv_convert): Got rid of a compiler warning about
21561         int i being unused when the system has a new iconv.
21562         (iconv_get_length): Same.
21563
21564         * image.c (load_class_names): Cast the second argument to
21565         g_hash_table_insert() to char* to hush compiler warnings about the
21566         arg being a const.
21567         (mono_image_open): Same here.
21568
21569         * socket-io.c: Don't conditionally include sys/filio.h or
21570         sys/sockio.h here anymore since we now get them from
21571         io-layer/io-layer.h
21572         (inet_pton): If the system doesn't support inet_aton, implement
21573         using inet_addr and also #define INADDR_NONE if it isn't defined
21574         by the system.
21575
21576 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21577
21578         * metadata.c, metadata.h: added function to get packing and size info
21579         of a typedef.
21580         * reflection.h, reflection.c: handle field RVA data. Save info about
21581         the table layout if needed. Assign typedef indexes to all the types
21582         before dumping the info about them to avoid forward reference problems.
21583
21584 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21585
21586         * socket-io.c (convert_sockopt_level_and_name): ifdef
21587         SO_ACCEPTCONN because it is not defined on my system (old debian)
21588
21589 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21590
21591         * opcode.c: use stddef.h to get NULL.
21592
21593 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21594
21595         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21596         for FIONBIO, FIONREAD and SIOCATMARK.
21597         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21598         define INADDR_NONE and besides, inet_addr() is deprecated and
21599         should not be used. Use inet_pton() instead - it also has the
21600         added bonus that it can easily handle IPv6 addresses as well.
21601         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21602
21603 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21604
21605         * decimal.c: remove _MSC_VER conditional.
21606
21607 2002-02-13  Dick Porter  <dick@ximian.com>
21608
21609         * socket-io.c: 
21610         * icall.c: Internal calls for Blocking, Select, Shutdown,
21611         GetSocketOption and SetSocketOption
21612
21613 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21614
21615         * assembly.cs: better resolver: use it instead of some kludgy
21616         code.
21617
21618 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21619
21620         * reflection.c: the best way to speed-up the compiler is to avoid
21621         infinite loops.
21622
21623 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21624
21625         * class.c (mono_class_vtable): changed the object layout
21626         (obj->vtable->class). 
21627         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21628
21629 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21630
21631         * assembly.c: look for assemblies in the assembly dir, too.
21632
21633 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21634
21635         * class.c: fix thinko in mono_class_from_type().
21636
21637 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21638
21639         * exception.h, exception.c: added TypeLoadException.
21640         * object.h, object.c: added mono_array_clone ().
21641         * icall.c: handle throwOnError in AssemblyGetType().
21642         Added Array.Clone().
21643         * opcode.h, opcode.c: use a single value for the opcode val.
21644         Compile fix for non-gcc compilers.
21645
21646 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21647
21648         * opcodes.c, opcodes.h: export interesting info about opcodes.
21649
21650 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21651
21652         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21653         icalls. 
21654
21655         * class.c (class_compute_field_layout): set element_class for enums
21656         (mono_class_create_from_typedef): set element_class for normal classes
21657
21658         * icall.c (ves_icall_System_Enum_get_value): impl.
21659
21660         * class.c (mono_class_create_from_typedef): do not set valuetype
21661         flag for System.ValueType and System.Enum
21662
21663 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21664
21665         * unicode.c (iconv_convert): fix big endian problem.
21666
21667 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21668
21669         * class.c: add asserts if we are ever going to scribble over memory.
21670         * socket-io.c: not all systems have AF_IRDA defined.
21671
21672 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21673
21674         * class.c (class_compute_field_layout): do not consider static
21675         fields to compute alignment
21676
21677 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21678
21679         * appdomain.c (mono_appdomain_get): impl.
21680         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21681
21682 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21683
21684         * icall.c: ignore "file://" prefix when loading an assembly.
21685
21686 2002-01-23  Dick Porter  <dick@ximian.com>
21687
21688         * socket-io.c:
21689         * icall.c:
21690         * Makefile.am: Added socket support
21691
21692 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21693
21694         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21695         code back.  This should return the assemblies that are loaded by
21696         the runtime on behalf of an application domain. 
21697
21698         The current implementation is still broken, it just returns every
21699         assembly loaded, but until we get real applications domain this
21700         will do.
21701
21702 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21703
21704         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21705         AppDomain object.
21706
21707 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21708
21709         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21710         the mono_class_from_name lookup.
21711         (ves_icall_get_parameter_info): ditto.
21712         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21713         method.
21714         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21715
21716 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21717
21718         * class.c: load also nested classes on class init.
21719         System.ValueType instance methods gets passed boxed
21720         values, unless methods in derived classed that get a pointer to the
21721         data.
21722         * icall.c: use better name parsing code in GetType().
21723         * image.c, image.h: add mono_image_loaded ().
21724         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21725         * reflection.c, reflection.h: added mono_reflection_parse_type().
21726
21727 2002-01-22  Veronica De Santis <veron78@interfree.it>
21728
21729         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21730         * threads.c : Added the implementation of internal calls for events
21731         * threads.h : Added prototypes of internal calls for events
21732         
21733 2002-01-21  Radek Doulik  <rodo@ximian.com>
21734
21735         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21736
21737 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21738
21739         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21740         (mono_class_value_size): use min_align
21741
21742 2002-01-20  Dick Porter  <dick@ximian.com>
21743
21744         * threads.h:
21745         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21746         so it compiles on w32.
21747
21748 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21749
21750         * metadata.c (mono_type_stack_size): impl.
21751
21752         * class.c (mono_class_get_field): impl. memberref token
21753
21754 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21755
21756         * icall.h : Added the internal calls mapping for CreateMutex_internal
21757                     and ReleaseMutex_internal.
21758         * threads.h : Added the prototype of mutexes internal calls.
21759         * threads.c : Added the implementations of mutexes internal calls.
21760
21761 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21762
21763         * metaparse.h: removed unused file.
21764         * reflection.c, reflection.h: added stream_data_align () function 
21765         to align data in streams and keep stream aligned. Add support for
21766         exception support in method headers.
21767
21768 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21769
21770         * unicode.c: make iconv_convert () return the number of bytess written
21771         in the output buffer.
21772
21773 2002-01-15  Dick Porter  <dick@ximian.com>
21774         * threads.c: Make the runtime's idea of infinite timeouts coincide
21775         with the class library's
21776
21777         Fix a particularly egregious bug in mono_thread_cleanup(). That
21778         code was so utterly bogus it must have been written on a Monday.
21779
21780 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21781
21782         * reflection.h: add subtypes field to TypeBuilder.
21783         * reflection.c: encode constants for literal fields.
21784         Handle subtypes. Fix user string token (and add a zero byte)
21785         at the end.
21786         
21787 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21788
21789         * class.c (mono_class_init): bug fix: assign slot numbers for
21790         abstract methods.
21791
21792 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21793
21794         * reflection.c: don't try to output a code RVA for abstract methods.
21795         Small fixes for method header format. Output parameter info to the
21796         ParamDef table. Save method overriding info to MethodImpl table.
21797         Fix property support. Allow typedef.extends to be a type in the
21798         building assembly.
21799         * verify.c: fix off-by-one error.
21800
21801 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21802
21803         * class.c: fix mono_class_from_mono_type () for szarray types.
21804         Remove unused cache check in mono_class_from_type_spec().
21805         * icall.c: *type_from_name () functions handle simple arrays and byref.
21806         * reflection.c: handle byref and szarray types. Handle methods without
21807         body (gets P/Invoke compilation working). Handle types and fields in
21808         get_token ().
21809         * reflection.h: add rank to MonoTypeInfo.
21810
21811 2002-01-10  Dick Porter  <dick@ximian.com>
21812
21813         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21814         internal calls
21815
21816 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21817
21818         * icall.c: initialize class in type_from_handle ().
21819         Loop also in parent classes for get_method ().
21820         * reflection.c: properly encode class and valuetype types.
21821         Start on encoding TypeBuilder types. Handle fieldrefs.
21822         Use correct length when registering a user string.
21823         Handle ConstructorBuilder and MonoMethod in get_token ().
21824         Make mono_type_get_object () aware of cached types.
21825         * object.c: back out change to mono_string_new ().
21826
21827 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21828         * object.c: mono_string_new should return a NULL when the string 
21829         passed in is NULL -- not try to deference it.
21830         
21831 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21832
21833         * icall.c: hack to make IsSubType work for TypeBuilders.
21834         * reflection.c: emit constructors before methods.
21835         Retrieve param names in mono_param_get_objects().
21836
21837 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21838
21839         * Makefile.am: fix list of headers and sources so automake 1.5
21840         doesn't complain. Removed \# at end of list.
21841
21842 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21843
21844         * reflection.c: get token for a method ref. Set return type of
21845         constructor to void.
21846         * loader.c: debug message.
21847         * class.c: typo fix.
21848
21849 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21850
21851         * icall.c: fix array init with rank > 1. FindMembers
21852         loops in parent class as well.
21853         * image.c: do not insert nested types in name cache.
21854         * reflection.c: warning fix.
21855         * reflection.h: add override method (for interface impl).
21856
21857 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21858
21859         * metadata.c: fix customattr decoding.
21860
21861 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21862
21863         * rawbuffer.cs: Added native Win32 implementation, avoids using
21864         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21865
21866 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21867
21868         * class.c: make the low-level routines handle the cache.
21869
21870 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21871
21872         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21873
21874 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21875
21876         * class.c: fix mono_array_element_size() for objects.
21877         * class.h, class.c: add properties to MonoClass and load them
21878         at init time.
21879         * icall.c: check with isinst() when assigning a value to an array
21880         instead of requiring the classes to match exactly.
21881         Implemented icall for System.Type::GetType().
21882         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21883         enums. Handle bindingflags when looking for methods and fields.
21884         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21885         and mono_metadata_methods_from_property().
21886         * reflection.h, reflection.c: added structures for propreties,
21887         parameters and enums. Implemented mono_property_get_object() and
21888         mono_param_get_objects().
21889
21890 2001-12-18  Dick Porter  <dick@ximian.com>
21891
21892         * file-io.c: Use mono_string_to_utf16() instead of
21893         mono_string_chars()
21894
21895         * object.c: Added mono_string_to_utf16(), which copies the non
21896         NULL-terminated MonoString into a new double-null-terminated
21897         buffer.
21898
21899 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21900
21901         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21902
21903 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21904
21905         * file-io.c: raise exceptions if handle is invalid.
21906
21907 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21908
21909         * assembly.c: yet another check for mscorlib.
21910         * class.c, class.h: load nesting info for classes.
21911         * icall.c: many new functions to support the Reflection classes.
21912         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21913         * reflection.h, reflection.c: mono_image_create_token(),
21914         mono_assembly_get_object(), mono_type_get_object(),
21915         mono_method_get_object(), mono_field_get_object(): methods to return
21916         objects that parallel the C representation of assemblies, types,
21917         methods, fields.
21918
21919 2001-12-11  Dick Porter  <dick@ximian.com>
21920
21921         * icall.c:
21922         * file-io.c: Internal calls for file IO.
21923
21924 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21925
21926         * tabledefs.h: missing FileAttributes.
21927         * verify.h, verify.c: use is_valid_string () to simplify and check for
21928         valid strings more correctly. Fix warnings and speeling.
21929         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21930         Check code: branches, maxstack, method calls.
21931
21932 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21933
21934         * object.c (mono_object_allocate): removed static, so that the jit
21935         can allocate value types.
21936
21937         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21938
21939 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21940
21941         * class.c: init enum types right away and register the
21942         token->MonoClass map in mono_class_create_from_typedef ().
21943         * verify.h, verify.c: first cut of the verifier.
21944         * pedump.c: add --verify switch to verify metadata tables.
21945         * tabledefs.h: add some missing enums.
21946
21947 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21948
21949         * class.c (mono_install_runtime_class_init): impl.
21950         (mono_class_init): renamed mono_class_metadata_init to
21951         mono_class_init, also removed the metadata_inited flag
21952
21953         * object.c (mono_object_isinst): use faster algorithm
21954
21955 2001-11-30  Radek Doulik  <rodo@ximian.com>
21956
21957         * mono-endian.h: reverted last change
21958         added function prototypes
21959
21960         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21961         add mono-endian.c back
21962
21963         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21964         for unaligned access, I've mistaked it with endianess. I am
21965         sorry.
21966         (mono_read16): fix reverted endianess
21967         (mono_read64): ditto
21968         (mono_read32): ditto
21969
21970 2001-11-30  Dick Porter  <dick@ximian.com>
21971
21972         * exception.c: Implement mono_exception_from_name()
21973
21974 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21975
21976         * metadata.h, metadata.c: remove params_size and locals_size and their
21977         calculation from the metadata code: they are only usefult to the
21978         interp.
21979
21980 2001-11-29  Radek Doulik  <rodo@ximian.com>
21981
21982         * object.c (mono_ldstr): swap bytes here, it's probably not the
21983         best place, but works for me now, I'll redo it once I know mono
21984         better, also note that I add PROT_WRITE and don't reset back, also
21985         note that it's only affects big endians, so x86 should be OK
21986
21987         * mono-endian.h (read16): use just glib macros for both endians
21988
21989         * mono-endian.c: removed as glib macros are used in in
21990         mono-endian.h so we don't need to care about endianess for read
21991         macros as glib does that for us already
21992
21993 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21994
21995         * class.h, class.h: take minimum alignment into consideration so
21996         that the fields of a class remain aligned also when in an array.
21997
21998 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21999
22000         * loader.h, loader.c: add mono_method_get_param_names().
22001         * class.c: 0-init class fields.
22002
22003 2001-11-26  Dick Porter  <dick@ximian.com>
22004
22005         * icall.c:
22006         * threads-types.h:
22007         * threads.c: New file that handles System.Threading on all platforms
22008
22009         * object.c: 
22010         * object.h: Remove the synchronisation struct from MonoObject,
22011         replace it with a pointer that gets initialised on demand
22012
22013         * Makefile.am: Replace all the system-specific threading code with
22014         a single file that uses the new wrapper library
22015
22016 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22017
22018         * class.c, class.h: add mono_install_trampoline() so that the runtime
22019         can register a function to create a trampoline: removes the ugly
22020         requirement that a runtime needed to export arch_create_jit_trampoline.
22021         * object.h, object.c: added mono_install_handler() so that the runtime
22022         can install an handler for exceptions generated in C code (with
22023         mono_raise_exception()). Added C struct for System.Delegate.
22024         * pedump.c: removed arch_create_jit_trampoline.
22025         * reflection.c: some cleanups to allow registering user strings and
22026         later getting a token for methodrefs and fieldrefs before the assembly
22027         is built.
22028         * row-indexes.h: updates and fixes from the new ECMA specs.
22029
22030 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22031
22032         * class.h, class.c: add enum_basetype field to MonoClass.
22033         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22034         to get index in the constant table reated to a field, param or
22035         property.
22036         * reflection.h, reflection.c: handle constructors. Set public-key and
22037         version number of the built assembly to 0.
22038         * row-indexes.h: update from new ECMA spec.
22039
22040 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22041
22042         * class.h, class.c: add a max_interface_id to MonoClass.
22043         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22044         since it's used to do that. Added mono_type_type_from_obj().
22045         Make GetType() return NULL instead of segfaulting if the type was not
22046         found. Handle simple arrays in assQualifiedName.
22047         * object.h: add a struct to represent an Exception.
22048         * reflection.c: output call convention in method signature.
22049         Add code to support P/Invoke methods and fixed offsets for fields.
22050
22051 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22052
22053         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22054         the value.
22055         * icall.c: use mono_array_addr instead of array->vector: fixes the
22056         reflection image writing.
22057         * reflection.c: init call convention byte to 0 in method signature.
22058         Encode the property signature. Don't output property-related methods
22059         twice. Really process the properties for a type (don't cast a field to
22060         a property, my mom always told me that).
22061         Fix 64 bit issues in pointer alignment in a different and more
22062         readable way.
22063
22064 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22065
22066         * loader.h: Removed type class from MonoDefaults, added monotype
22067
22068         * loader.c: Loaded MonoType, removed loading of Type
22069
22070         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22071         and fills in System.Type._impl with a RuntimeTypeHandle rather
22072         than the actual MonoClass *
22073
22074         (ves_icall_type_from_handle): change from type_class to
22075         monotype_class
22076
22077         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22078         implemented
22079
22080         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22081         implemented
22082
22083         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22084
22085         (ves_icall_System_Reflection_Assembly_GetType): implemented
22086
22087         (ves_icall_System_MonoType_assQualifiedName): implemented
22088
22089         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22090
22091 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22092
22093         * assembly.c (mono_assembly_open): Implement a cache for the
22094         assemblies. 
22095
22096         (mono_assembly_close): only destroy the assembly when the last
22097         reference is gone.
22098         
22099 2001-11-09  Dick Porter  <dick@ximian.com>
22100
22101         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22102
22103 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22104
22105         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22106
22107 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22108
22109         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22110         from Martin Weindel.
22111         * object.h: add mono_string_chars ().
22112
22113 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22114
22115         * reflection.c (build_compressed_metadata): Eliminates warnings
22116         and uses 64-bit clean code.
22117
22118         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22119         (mono_type_equal): Change signature to eliminate warnings.
22120
22121 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22122
22123         * icall.c, loader.c: remove the internalcall array constructors.
22124         Changes to match the new MonoArray structure.
22125         * object.h, object.c: an array object doesn't allocate an extra
22126         vector. Add mono_array_new_full () to create jagged arrays easily.
22127
22128 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22129
22130         * metadata.h, metadata.c: add mono_metadata_field_info () to
22131         retreive all the info about a field from vairous tables.
22132         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22133         * class.h, class.c: augment MonoClassField with more info.
22134         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22135         policy and load a field's RVA if needed.
22136
22137 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22138
22139         * class.c (mono_class_metadata_init): create a trampoline for all
22140         virtual functions instead of actually compiling them.
22141
22142 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22143
22144         * class.h, class.c: include name in MonoClassField.
22145         * class.c: fix fundamental type of System.Object and System.String.
22146         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22147         tokens in ldtoken.
22148         * icall.c: remove internalcalls for the Reflection stuff that is now
22149         done in C# code.
22150         * loader.c: mono_field_from_memberref () implementation.
22151         * mono-endian.c: thinko (s/struct/union/g).
22152         * object.c, object.h: make the mono_string_* prototypes actually use
22153         MonoString instead of MonoObject.
22154         * reflection.c, reflection.h: updates for changes in the reflection
22155         code in corlib: we use C structures that map to the actual C# classes.
22156         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22157         fat method header if needed and use the info from the ILGenerator for
22158         methods. Handle fields in types. Misc fixes.
22159
22160 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22161
22162         * class.c (mono_class_metadata_init): bug fix: always allocate
22163         space for static class data
22164
22165 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22166
22167         * class.c (mono_compute_relative_numbering): use relative
22168         numbering to support fast runtime type checks.
22169
22170 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22171
22172         * class.c (mono_class_create_from_typeref): added debugging output
22173         to print class name when MonoDummy is returned instead of real class
22174
22175 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22176
22177         * class.c (mono_class_metadata_init): interface offset table now
22178         contains pointers into the vtable - this is more efficient for the jit
22179
22180 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22181
22182         * class.c (mono_class_metadata_init): use a temporary vtable (the
22183         old algorithm only worked for the interpreter, but not for the jit)
22184
22185 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22186
22187         * loader.c (method_from_memberref): use mono_class_get to get the
22188         class of an array instead of using System.Array directly.
22189         (mono_get_method): also add MEMBERREF methods to the method cache
22190         which usefull for arrays.
22191
22192 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22193
22194         * pedump.c (arch_compile_method): added to compute vtable entry
22195
22196         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22197         number of interfaces.
22198         
22199         * class.h: merged MonoArrayClass into MonoClass
22200
22201         * class.c (mono_class_create_from_typedef): compute the vtable size and
22202         allocate space to include the vtable inside MonoClass
22203         (mono_class_metadata_init): initialize the vtable
22204
22205 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22206
22207         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22208         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22209         * image.c: endian fixes by Laurent Rioux.
22210         * object.h, object.c: rename MonoStringObject to MonoString and
22211         MonoArrayObject to MonoArray. Change some function names to conform to
22212         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22213         guint16* as first argument, so don't use char*.
22214         Provide macros to do the interesting things on arrays in a portable way.
22215         * threads-pthread.c: updates for the API changes and #include <sched.h>
22216         (required for sched_yield()).
22217         * icall.c: updates for the API changes above.
22218         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22219         platforms that need them.
22220
22221 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22222
22223         * class.c: set the correct type for all the fundamental
22224         type when loading the class.
22225
22226 2001-10-05  Dick Porter  <dick@ximian.com>
22227
22228         * threads-pthread.c (pthread_mutex_timedlock): Simple
22229         compatibility version for C libraries that lack this call.
22230
22231 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22232
22233         * class.c: MonoTypes stored in MonoClass are stored as
22234         fundamental MonoTypes when the class represents a
22235         fundamental type (System.Int32, ...).
22236         The TypeHandle return by ldtoken is a MonoType*.
22237         * icall.c: ves_icall_get_data_chunk () write out all the
22238         PE/COFF stuff. Implement ves_icall_define_method (),
22239         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22240         * image.c: properly skip unknown streams.
22241         * loader.h, loader.c: add type_class to mono_defaults.
22242         * metadata.c, metadata.h: export compute_size () as
22243         mono_metadata_compute_size () with a better interface.
22244         Typo and C&P fixes.
22245         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22246         * reflection.c, reflection.h: many cleanups, fixes, output method
22247         signatures and headers, typedef and typeref info, compress the metadata
22248         tables, output all the heap streams, cli header etc.
22249         * row-indexes.h: typo fixes.
22250
22251 2001-10-04  Dick Porter  <dick@ximian.com>
22252
22253         * object.h: Add a synchronisation mutex struct to MonoObject
22254
22255         * object.c (mono_new_object): Initialise the object
22256         synchronisation mutexes
22257
22258         * icall.c: System.Threading.Monitor internal calls
22259         
22260         * threads-pthread.h:
22261         * threads-pthread.c: System.Threading.Monitor internal calls
22262
22263         * threads-types.h: New file, includes the system-specific thread
22264         structures
22265         
22266         * threads-pthread-types.h:
22267         * threads-pthread-types.c: New files, handle pthread-specific
22268         synchronisation types
22269
22270         * threads-dummy-types.h: 
22271         * threads-dummy-types.c: New files of dummy support for
22272         thread-specific types
22273
22274         * metadata.c:
22275         * image.c:
22276         * pedump.c: include mono-endian.h not endian.h
22277         
22278         * Makefile.am: More threads files.
22279         Name mono-endian.h not endian.h
22280
22281 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22282
22283         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22284         stuff and implement a few more bits.
22285         * icall.c: a field needs to be dereferenced twice. Do not use the same
22286         name for two variables in the same scope.
22287         * image.c, image.h: cleanups.
22288
22289 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22290
22291         * class.c (mono_class_metadata_init): bug fix: compute the right size
22292
22293 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22294
22295         * icall.c: implemented some of the Reflection internalcalls.
22296         * image.c, image.h: start writing out the PE/COFF image.
22297         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22298         that does the reverse than decode_blob_size ().
22299         * object.c: use mono_metadata_encode_value (). Move here
22300         temporary implementation of mono_string_to_utf8 ().
22301         * rawbuffer.c: make malloc_map static.
22302
22303 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22304
22305         * metadata.c: fix type comparison for arrays.
22306         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22307         Added a couple of new classes to monodefaults.
22308         * icall.c: added a couple of Reflection-related internalcalls.
22309         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22310         Added a byval_arg MonoType to MonoClass.
22311
22312 2001-09-28  Dick Porter  <dick@ximian.com>
22313
22314         * icall.c:
22315         * threads-pthread.h: 
22316         * threads-pthread.c: Implemented internal calls for
22317         LocalDataStoreSlot operations.  Applied mutexes around all shared
22318         data.  Reworked the thread creation and Start() operations to
22319         avoid a race condition.
22320         
22321         * threads-dummy.h:
22322         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22323
22324 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22325
22326         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22327
22328 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22329
22330         * class.c, loader.c: warn and return NULL instead of erroring out.
22331         * icall.c: added System.AppDomain::getCurDomain().
22332         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22333
22334 2001-09-25  Dick Porter  <dick@ximian.com>
22335
22336         * threads-pthread.h:
22337         * threads-pthread.c: Implemented timed thread joining and added
22338         System.Threading.Thread::Join_internal internal call
22339
22340         * icall.c: Added System.Threading.Thread::Join_internal internal call
22341
22342         * threads-dummy.h:
22343         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22344
22345 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22346
22347         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22348         mono_string_intern () to implement the semantics of the ldstr opcode
22349         and the interning of System.Strings.
22350         * icall.c: provide hooks to make String::IsIntern and String::Intern
22351         internalcalls.
22352
22353 2001-09-23  Dick Porter  <dick@ximian.com>
22354
22355         * threads-dummy.c: 
22356         * threads-dummy.h: New files of dummy threading routines
22357
22358         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22359         support code based on system specifics
22360
22361         Rename PTHREAD_LIBS to THREAD_LIBS
22362         
22363 2001-09-23  Dick Porter  <dick@ximian.com>
22364
22365         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22366         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22367         internal calls.
22368         (mono_thread_init): Set up a Thread object instance to return when
22369         the main thread calls Thread.CurrentThread
22370         (mono_thread_cleanup): Wait for all subthreads to exit
22371
22372         * icall.c: New internal calls for System.Threading.Thread::Sleep
22373         (including Schedule) and CurrentThread
22374
22375         * threads.h: New file, to insulate thread-specific stuff from the
22376         rest of the code
22377
22378 2001-09-21  Dick Porter  <dick@ximian.com>
22379
22380         * threads-pthread.h: 
22381         * threads-pthread.c: New file, for handling pthreads-style
22382         threading support.  Start() now starts a new thread and executes
22383         the ThreadStart delegate instance.
22384
22385         * icall.c: Added the internalcall for
22386         System.Threading.Thread::Start_internal
22387
22388         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22389
22390 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22391
22392         * loader.c: work around the different signatures for delegates
22393         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22394
22395 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22396
22397         * class.h, class.c: add mono_class_get_field_from_name ().
22398         * *: Fix C comments and other ANSI C issues.
22399
22400 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22401
22402         * endian.h, assembly.c: fix some endianness issues.
22403
22404 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22405
22406         * loader.h, load.c: add delegate_class to mono_defaults.
22407         Handle runtime provided methods in mono_get_method ().
22408
22409 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22410
22411         * loader.c (mono_get_method): use pinvoke for internal call
22412
22413         * icall.c: use pinvoke for internal call
22414
22415         * loader.c (method_from_memberref): set the method name
22416
22417 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22418
22419         * metadata.c: help the compiler generate better code for
22420         mono_class_from_mono_type ().
22421
22422 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22423
22424         * class.c (mono_class_metadata_init): delayed computing of the
22425         class size to mono_class_metadata_init ()
22426
22427 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22428
22429         * class.c, class.h: add an interfaces member to MonoClass.
22430         * image.c, image.h: add assembly_name field to MonoImage
22431         from the assembly table.
22432         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22433
22434 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22435
22436         * class.c: Handle Array in mono_class_from_mono_type ().
22437         * metadata.c, pedump.c: some endian fixes.
22438
22439 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22440
22441         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22442         * metadata.c: fix small problem introduced with the latest commit.
22443
22444 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22445
22446         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22447         We don't need a MonoMetadata pointer anymore to compare signatures in
22448         mono_metadata_signature_equal (), update callers.
22449         Reduced memory usage an number of allocations for MonoMethodHeader and
22450         MonoMethodSignature.
22451
22452 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22453
22454         * metadata.c: added compare for szarray.
22455
22456 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22457
22458         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22459         and add a couple more types to it and mono_defaults. Give an hint on
22460         classes that need implementing in our corlib and are referenced
22461         in mscorlib.
22462
22463 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22464
22465         * class.h, class.c: keep track if a class is also an Enum.
22466         * loader.c: Implement a couple more types for use in libffi
22467         marshalling. Gives better diagnostics when failing to dlopen
22468         a library. Set method->klass for P/Invoke methods, too.
22469
22470 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22471
22472         * class.c, class.h: add a MonoType this_arg to MonoClass that
22473         represents a pointer to an object of the class' type that
22474         can be used by the interpreter and later the type cache.
22475         Add best guess alignment info for valuetype objects.
22476
22477 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22478
22479         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22480         into MonoType: one less level of indirection and allocation and
22481         simplifies quite a bit of code. Added cache for MonoTypes that are
22482         used frequently, so that we don't need to allocate them all the time.
22483
22484 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22485
22486         * class.c (mono_class_create_from_typedef): System.Enum is also a
22487         value type, although it does not derive from System.ValueType
22488         (maybe a bug in the ms compiler?)
22489
22490         * metadata.c (mono_type_size): return the right size for value types
22491
22492         * loader.c (mono_get_method): only initialize method header if not abstract
22493
22494         * class.c (mono_class_from_mono_type): use mono_default values. 
22495
22496 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22497
22498         * *: use MonoClass pointers instead of <type_tokens>
22499         
22500         * class.h: new flag: metadata_inited.
22501
22502         * class.c (mono_class_metadata_init): impl.
22503         (mono_class_instance_size): impl.
22504         (mono_class_data_size): impl.
22505
22506 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22507
22508         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22509         MonoClass now has the name and name_space fields. 
22510         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22511         mono_get_method () takes and optional MonoClass as argument.
22512         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22513         instead that takes advantage of a map from class names to typedef
22514         tokens in MonoImage.
22515
22516 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22517
22518         * metadata.c: zero is not a valid alignment boundary.
22519         Merge MONO_TYPE_VOID in default decoding code.
22520
22521 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22522
22523         * image.h: merged MonoMetadata into MonoImage
22524
22525         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22526         identify the type of elements.
22527
22528 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22529
22530         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22531         * cil-coff.h: split MonoMSDOSHeader and add size info.
22532         * image.c: add some consistency checks.
22533         * metadata.c: fix row size computation: one programmer
22534         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22535         add explanation for the locator routine.
22536         Fix decoding of size in method header.
22537         
22538 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22539
22540         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22541         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22542         function from gnome-libs.  This uses the right path separator
22543         based on the OS, and also works around a bug in some systems where
22544         a double slash is not allowed. 
22545         (default_assembly_name_resolver): Use g_concat_dir_and_file
22546         (mono_assembly_open): ditto.
22547
22548 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22549
22550         * metadata.c (mono_metadata_signature_equal): impl.
22551
22552         * *: void is now a realy MonoType (instead of using NULL)
22553         
22554         * metadata.c (do_mono_metadata_parse_type): use
22555         mono_metadata_parse_type to parse void value.
22556
22557 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22558
22559         * metadata.c, metadata.h: in the signature and method header store
22560         only the space required for holding the loca vars and incoming arguments.
22561
22562 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22563
22564         * metadata.c (do_mono_metadata_parse_type): treat void like any
22565         other type (instead of assigning NULL);
22566
22567 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22568
22569         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22570
22571 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22572
22573         * image.c (do_mono_image_open): added a cache for arrays.
22574
22575 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22576
22577         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22578         decode a single column from a row in a metadata table and changes
22579         to take advantage of it in the typedef locator (gives a nice speed up).
22580         Store offset info for function params.
22581
22582 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22583
22584         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22585
22586 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22587
22588         * assembly.c: how could mono_assembly_close () had ever worked?
22589         * metadata.c, metadata.h: provide offset info for local vars.
22590         Implement mono_type_size () to take care of alignment as well
22591         as size (it was mono_field_type_size in cli/class.c before).
22592
22593 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22594
22595         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22596
22597         * assembly.h (CORLIB_NAME): set to corlib.dll
22598
22599         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22600
22601 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22602
22603         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22604         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22605         tokentype.h: massive namespace cleanup.
22606
22607 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22608
22609         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22610
22611 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22612
22613         * metadata.c (mono_metadata_free_type): added check for type !=
22614         NULL (void) before calling mono_metadata_free_type()
22615
22616 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22617
22618         * metadata.h, row_indexes.h: added header with enumerations to use
22619         to index in the columns from tables in metadata and to decode coded
22620         tokens: we should start using this instead of embedding magic numbers
22621         all over the code.
22622
22623 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22624
22625         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22626         Move metadata_t info from cli_image_info_t to MonoImage, where
22627         it's easily accessible. Changed all the uses accordingly.
22628         Added the method and class caches to MonoImage.
22629         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22630         and mono_metadata_decode_value () signature to be more consistent
22631         with the other parse functions (and simplify code). Taken advantage
22632         of zero-length array allocation with GCC. Removed reduntant (and
22633         wrong) MonoFieldType struct and use MonoParam instead. Changed
22634         mono_metadata_parse_field_type () to use common code for parsing.
22635         Added mono_metadata_typedef_from_field () and
22636         mono_metadata_typedef_from_method () to lookup a typedef index from a
22637         field or method token.
22638         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22639
22640 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22641
22642         * metadata.c (mono_metadata_parse_field_type): Implement. 
22643         (do_mono_metadata_parse_type): Split engine from
22644         mono_metadata_parse_type, so that we can create smaller structures
22645         for things that just have one pointer to the MonoType (look at
22646         the MonoFieldType)
22647
22648 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22649
22650         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22651         as Jan Gray found out, it is incorrect. 
22652
22653 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22654
22655         * assembly.c: Implement asssembly loading.  This loads an image
22656         and loads all the referenced assemblies.  Come to think of it, we
22657         could always do lazy loading of the assemblies. 
22658
22659         * image.c (mono_image_open): Keep loaded images in a hashtable.
22660
22661         * image.h (MonoImage): Add reference count.
22662
22663 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22664
22665         * assembly.c (mono_assembly_open): Keep track of the file name in
22666         case the assembly has no ASSEMBLY table.
22667
22668         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22669         from get.c here.
22670
22671 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22672
22673         * metadata.c, metadata.h: decode local vars in method header
22674         parse function. Change callers accordingly.
22675
22676 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22677
22678         * metadata.h, cil-coff.h: protect against multiple inclusion.
22679         Added some new structures to hold information decoded from metadata:
22680         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22681         and relevant decoding/free functions.
22682         * metadata.c: implement decoding functions. Add warning for out of bounds
22683         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22684         all the info about a method signature and invocation. Remove check on
22685         uninitialized local var in parse_mh() and fix memory leak.
22686
22687 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22688
22689         * metadata.h: More macros.
22690
22691         * tokentype.h: New file.
22692
22693 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22694
22695         * assembly.c: added a consistency check and initialize
22696         some structures with g_new0().
22697         * metadata.c: fixed a couple more bugs in table size computation
22698         and add other checks for out-of bound access to metadata.
22699
22700 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22701
22702         * metatada.c: fix bugs computing table sizes. Spew a
22703         warning when index in string heap is out of bounds.
22704
22705 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22706
22707         * metadata.h: Add a couple of macros to manipulate tokens. 
22708
22709 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22710
22711         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22712         cli_section_tables).
22713
22714 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22715
22716         * metadata.c (mono_metadata_user_string): New function, provides
22717         access to the UserString heap. 
22718
22719 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22720
22721         * metadata.c: Add inline documentation.
22722
22723 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22724
22725         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22726         files. 
22727
22728 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22729
22730         * typeattr.h: New file, TypeAttribute flags. 
22731
22732 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22733
22734         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22735         mono_assembly_ensure_section): Section loading code.
22736         (load_section_tables): Load the sections.
22737
22738         * mono/metadata/metadata.c (mono_metadata_locate_token,
22739         mono_metadata_locate): Functions to locate the information
22740         definition given a token or a table and an index.
22741         (mono_metadata_compute_table_bases): New.
22742         (compute_size): New function to compute the sizes of the various
22743         tables.
22744
22745         * mono/metadata/metadata.h: Finish listing the different index
22746         types. 
22747
22748         * mono/metadata/pedump.c: Improve to dump new information.
22749
22750 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22751
22752         * mono/metadata/metadata.c: Entered all the tables matching
22753         Beta2. 
22754
22755         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22756
22757
22758