2007-09-17 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
2
3         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
4         mempool.
5         (mono_type_create_from_typespec): Ditto.
6
7         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
8         MonoImage to the caller.
9         (mono_init_internal): Save the opened image in a global variable.
10         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
11
12         * reflection.c (resolve_object): Fix a leak.
13
14         * metadata.c: Fix the freeing of data in the generics caches.
15         
16         * metadata.c (free_generic_inst): Comment this out to fix the build.
17         (free_generic_class): Ditto.
18
19         * metadata.c: Free cached generic methods, instantinations and classes when
20         they are removed from the caches.
21         (mono_metadata_free_type): Free the type itself.
22
23         * class.c: Free the result of mono_class_inflate_generic_type () in a few
24         places.
25
26 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
27
28         * boehm-gc.c: restrict managed allocs to __thread supporting
29         architectures.
30
31 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
32
33         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
34         (mono_generic_class_get_class): Fix a leak.
35
36         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
37         mono_metadata_free_type ().
38         (mono_metadata_inflate_generic_inst): Fix a leak.
39
40 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
41
42         * mono-debug.c (free_header_data): Fix a leak missed earlier.
43
44         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
45         mempool.
46
47         * mono-debug.c (mono_debug_close_image): Fix call to 
48         g_hash_table_remove ().
49
50 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
51
52         * icall-def.h: redirect all the string ctor to the managed
53         CreateString () methods.
54         * string-icalls.c, string-icalls.h: removed dead code for string
55         ctors and icalls.
56
57 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
58
59         * mono-debug.c: Fix memory leaks.
60
61 2007-09-14  Jonathan Chambers <joncham@gmail.com>
62
63         * threads-types.h: Implement mono_hazard_pointer_set and 
64         mono_hazard_pointer_clear macros using do/while(0) to fix
65         compilation with MSVC.
66         
67         Code is contributed under MIT/X11 license.
68
69 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
70
71         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
72         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
73
74 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
75
76         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
77         icalls.
78
79 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
80
81         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
82         managed-code allocated as well.
83
84 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
85
86         * class.c (mono_class_is_assignable_from): Add support for generic variance.
87
88 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
89
90         * boehm-gc.c: fixed the build after the AOT changes.
91
92 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
93
94         * wrapper-types.h: Add an ALLOC wrapper type.
95
96         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
97         reference managed allocator methods.
98
99 2007-09-12  Marek Safar  <marek.safar@gmail.com>
100
101         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
102         of Type array and not MonoType, a fix suggested by Hari.
103         
104 2007-09-12  Jonathan Chambers <joncham@gmail.com>
105
106         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
107         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
108         
109         Code is contributed under MIT/X11 license.
110
111 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
112
113         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
114
115 2007-09-12  Marek Habersack  <mhabersack@novell.com>
116
117         * image.c (do_mono_image_open): if assembly file fails to open and
118         MONO_IOMAP is in effect, try to find the path in a
119         case-insensitive way.
120
121         * appdomain.c (mono_runtime_init): do not install postload hooks -
122         tests show that MS.NET doesn't use anything of that sort to
123         trigger the AppDomain.AssemblyResolve event.
124         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
125         made non-static.
126         (mono_runtime_init): init portability helpers here.
127
128         * assembly.c (mono_assembly_load_with_partial_name): if other   
129         attempts fail, trigger the AppDomain.AssemblyResolve event handler
130         to resolve the assembly.
131
132         * domain-internals.h: added mono_try_assembly_resolve and marked
133         it as internal.
134
135 2007-09-11  Jb Evain  <jbevain@novell.com>
136
137         * object-internals.h (MonoReflectionDynamicMethod): add
138         a `MonoReflectionType *owner` field. The owner is used
139         * reflection.c:
140         (mono_reflection_create_dynamic_method): use the owner of the dynamic
141         method as the class declaring the dynamic method.
142         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
143         dynamic method to the declaring type of the methodbuilder.
144
145 2007-09-11  Mark Probst  <mark.probst@gmail.com>
146
147         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
148         rules for calling methods via reflection.
149
150 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
151
152         * reflection.c (resolve_object): Add support for MonoGenericClass. 
153         Inflate MonoType's.
154
155 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
156
157         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
158         provide a managed method that does fast allocations without needing
159         a managed->unmanaged transition. Boehm GC implementation currently
160         enabled for ptrfree objects on sane architectures.
161
162 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
163
164         * marshal.c, marshal.h: exported a couple of useful functions and
165         added mono_mb_get_label () to easily handle backward branches.
166
167 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
168
169         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
170
171 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
172
173         * loader.c (find_method): Fixed the regression introduced while
174         fixing bug #81466.
175
176 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
177
178         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
179         well.
180         
181         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
182         icall.c reflection.c: Pass a MonoGenericContext argument to 
183         mono_lookup_dynamic_token ().
184
185         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
186         #82744.
187         
188 2007-09-09  Robert Jordan  <robertj@gmx.net>
189
190         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
191         for generic methods.
192
193         * object.c (mono_object_get_virtual_method): Handle generic methods.
194         Fixes bug #78882.
195
196         Code is contributed under MIT/X11 license.
197
198 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
199
200         * image.c: fix locking in mono_image_load_file_for_image ().
201
202 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
203
204         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
205         used only as a cache: added an icall to fill it.
206
207 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
208
209         * reflection.h: exposed mono_reflection_free_type_info
210         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
211         since mono_reflection_bind_generic_parameters makes a copy of it.
212         * reflection.c (free_type_info): subinfos should be freed.
213         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
214         made non static.
215         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
216         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
217         this fixes #82695 and #81726.
218    
219
220 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
221
222         * process.h, process.c:  added support for user profile/info in
223           ProcessStartInfo. For now only Windows works.
224
225 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
226
227         * metadata.c: consider the generic arguments when comparing
228         signatures (bug #82614).
229
230 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
231
232         * cil-coff.h, image.c: updated assembly loader to cope with the
233         PE32+ 64 bit file format.
234
235 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
236
237         * assembly.c, class.c, domain.c, loader.c: remove useless
238         inclusion of cil-coff.h.
239
240 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
241
242         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
243         if interface is marked with CoClassAttribute. 
244    
245         Code is contributed under MIT/X11 license.
246
247 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
248
249         * sgen-gc.c: ensure no object from the to space is copied again or finalized
250         if it's seen twice in major collections.
251
252 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
253
254         * sgen-gc.c: big objects are not copied to the gray area, but they
255         need to be considered for scanning, too, if they are brought alive
256         by an object ready for finalizations or a survived one.
257
258 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
259
260         * sgen-gc.c: properly account the number of disappearing links when
261         they are nullified.
262
263 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
264
265         * sgen-gc.c: share the code to scan the registered roots between the
266         different types of collections.
267
268 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
269
270         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
271
272 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
273
274         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
275         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
276
277 2007-08-28  Mark Probst  <mark.probst@gmail.com>
278
279         * security-manager.c (mono_security_manager_get_methods):
280         LinkDemandSecurityException now has 2 arguments instead of 3.
281
282 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
283
284         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
285         platforms which need it.
286
287 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
288
289         * sgen-gc.c: unregister thread data structures with a pthread_key_t
290         dtor.
291
292 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
293
294         * threads.c: free the thread static data on thread exit.
295
296 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
297
298         * class.c: walk the hierarchy to find the generic definition for
299         a class (fixes runtime part of bug #82498).
300
301 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
302
303         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
304         ...
305
306         * image.c (mono_image_close): Here. Hopefully fixes #82510.
307
308 2007-08-24  Mark Probst  <mark.probst@gmail.com>
309
310         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
311
312 2007-08-24  Robert Jordan  <robertj@gmx.net>
313
314         * appdomain.c: don't perform the ':'->';' substitution on Win32.
315
316 2007-08-24  Jb Evain  <jbevain@novell.com>
317
318         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
319         for byref types.
320
321 2007-08-24  Mark Probst  <mark.probst@gmail.com>
322
323         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
324         #82286.
325
326 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
327
328         * assembly.c: Fix a warning.
329         
330 2007-08-23  Marek Habersack  <mhabersack@novell.com>
331
332         * appdomain.c: parse the <runtime> section looking for the probing
333         element with the 'privatePath' attribute, which sets additional
334         directories in which the runtime should look for assemblies.
335
336 2007-08-23  Robert Jordan  <robertj@gmx.net>
337
338         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
339         Fixes #82499.
340
341 2007-08-23  Martin Baulig  <martin@ximian.com>
342
343         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
344         _mono_debug_init_corlib() and remove it from the header file.
345
346 2007-08-23  Martin Baulig  <martin@ximian.com>
347
348         * mono-debug-debugger.c
349         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
350         don't notify the debugger about it.
351
352         * mono-debug-debugger.h
353         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
354
355 2007-08-23  Robert Jordan  <robertj@gmx.net>
356
357         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
358         Code is contributed under MIT/X11 license.
359
360 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
361
362         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
363
364 2007-08-22  Martin Baulig  <martin@ximian.com>
365
366         * mono-debug.c: Store debugging info on a per-domain basis and
367         free it on domain unload.  Add support for unloading symbol files.
368
369         * mono-debug.h
370         (MonoDebugList): New typedef.
371         (MonoSymbolTable):
372         - add `data_tables and `type_table'.
373         - replace 'symbol_files' and `num_symbol_files' with a
374           `MonoDebugList *'.
375         (mono_debug_data_table): Removed.
376         (mono_debug_list_add): New public function.
377         (mono_debug_list_remove): New public function.
378         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
379         (mono_debug_init_2_memory): Renamed into
380         mono_debug_open_image_from_memory().
381         (mono_debug_close_image): New public function.
382         (mono_debug_domain_create): Likewise.
383         (mono_debug_domain_unload): Likewise.
384         (MONO_DEBUGGER_VERSION): Bump to 60.
385
386         * mono-debug-debugger.h
387         (MonoDebuggerEvent):
388         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
389         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
390         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
391         - rename `THREAD_CREATED' and `THREAD_EXITED' into
392           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
393         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
394           meaning.
395         (mono_debugger_add_symbol_file): Removed.
396         (mono_debugger_add_type): Removed.
397         (mono_debugger_lookup_type): Removed.
398         (mono_debugger_lookup_assembly): Removed.
399
400         * domain.c
401         (mono_domain_create): Call mono_debug_domain_create().
402         (mono_init_internal): Call mono_debug_init_corlib().
403
404         * assembly.c
405         (mono_assembly_close): Call mono_debug_close_image().
406
407 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
408
409         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
410         mmap call.
411
412 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
413
414         * sgen-gc.c: ensure section->pin_queue_end is initialized
415         correctly when non pinning objects in the section have been found.
416
417 2007-08-22  Marek Habersack  <mhabersack@novell.com>
418
419         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
420         containing a list of directories separated by ':'. MSDN docs say
421         the directories should be separated with ';'. Part of a bugfix for
422         bug #81446
423
424 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
425
426         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
427         it should MonoType and not MonoClass.
428
429 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
430
431         * culture-info-table.h : regenerated.
432
433 2007-08-20  William Holmes  <billholmes54@gmail.com>
434
435         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
436          to call ReplaceFile Kernel32 on windows or in io-layer.
437         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
438         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
439          as an internal call.
440
441         Code is contributed under MIT/X11 license.
442
443 2007-08-20  Jb Evain  <jbevain@novell.com>
444
445         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
446         and MONO_EXCEPTION_FIELD_ACCESS.
447
448         * debug-helpers.[c|h]: new mono_field_full_name function.
449
450 2007-08-20  Mark Probst  <mark.probst@gmail.com>
451
452         * class.c: Removed class_security_level() and moved it to
453         security-core-clr.c.
454
455         * security-core-clr.c, security-core-clr.h: class_security_level()
456         is now public and renamed to mono_security_core_clr_class_level().
457         It also looks for security attributes in the classes a class is
458         nested in.
459
460 2007-08-20  Mark Probst  <mark.probst@gmail.com>
461
462         * security-core-clr.c, security-core-clr.h: CoreCLR security
463         utility functions.
464
465         * Makefile.am: Added security-core-clr.[ch].
466
467         * security-manager.c, security-manager.h: Functions and enum for
468         setting and getting the security mode.
469
470         * class.c: CoreCLR security checks.
471
472 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
473
474         * icall-def.h, process.c, process.h: implemented icall to get
475         user/system processor times.
476
477 2007-08-17  Mark Probst  <mark.probst@gmail.com>
478
479         * domain.c, threads.c, class-internals.h, domain-internals.h: New
480         reader-lock-free jit_info_table.
481
482 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
483
484         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
485
486         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
487
488         * object-internals.h (MonoException): Add missing _data member.
489
490 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
491
492         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
493         checking that only methods with matching qname or fqname are picked
494         from implemented interfaces.
495
496 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
497
498         * verify.c (do_newarr):added, do type verification of
499         newarr ops, push the right value on the eval stack.
500         * verify.c (mono_method_verify): use do_newarr
501
502
503 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
504
505         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
506         factored the common code into get_boxable_mono_type, which
507         is now using mono_type_get_full, this fixed byref related tests.
508
509 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
510
511         * class.c: added mono_type_get_full, this function has the same
512         behavior of mono_class_get_full but the returned MonoType has
513         all metadata of the associated token in case of a typespec token.
514         * class.c: added mono_type_retrieve_from_typespec, used by 
515         mono_type_get_full to retrieve the token type.
516         * class.c (mono_class_create_from_typespec): changed to use
517         mono_type_retrieve_from_typespec.
518         * class.c (mono_ldtoken): changed to use mono_type_get_full
519         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
520         * class-internals.h: exported mono_type_get_full for internal use.
521
522 2007-08-16  Jb Evain  <jbevain@novell.com>
523
524         * domain.c (supported_runtimes): add entry for
525         the 'moonlight' runtime version.
526
527 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
528
529         * verify.c (mono_method_verify): small typo sliped in.  
530
531 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
532
533         * verify.c (do_unbox_value): added, do type verification of
534         unboxing ops
535         * verify.c (mono_method_verify): use do_unbox_value
536
537
538 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
539
540         * verify.c (dump_stack_value): fixed typo, was printing string
541         instead of object on stack.
542         * verify.c (do_box_value): moved the byref check up as it leads
543         to invalid code and should be done earlier.
544         * verify.c: improved error messages for and ldobj
545
546 2007-08-15  William Holmes  <billholmes54@gmail.com>
547
548         * marshal.c (emit_marshal_custom): Omit the call to 
549           marshal_native_to_managed when calling native to managed 
550           and the argument is specified as an out argument.
551
552         Code is contributed under MIT/X11 license.
553
554 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
555
556         * verify.c: fixed the type checks for generics, function pointers and vectors.
557         Added type verification for ldobj and ldtoken. The verifier
558         would segfault if header or signature of a method contained references
559         to non-existant types.
560
561 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
562
563         * marshal.c (cominterop_get_ccw): Patch from
564         Bill Holmes to no walk up interface hierarchy. 
565         All parent methods should be present in the interface for COM.
566    
567         Code is contributed under MIT/X11 license.
568
569 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
570
571         * marshal.c (emit_marshal_com_interface): Patch from
572         Bill Holmes to handle COM Interfaces as return values
573         for native->managed calls.
574    
575         Code is contributed under MIT/X11 license.
576
577 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
578
579         * marshal.c (cominterop_get_idispatch_for_object): Implement
580         for runtime callable wrappers.
581    
582         Code is contributed under MIT/X11 license.
583
584 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
585
586         * pedump.c (main): changed from mono_init to mono_init_from_assembly
587         so 2.0 types are accessible
588
589
590 2007-08-13  Miguel de Icaza  <miguel@novell.com>
591
592         * domain.c (mono_init_internal): Call mono_assembly_load_friends
593         once we load mscorlib.   Due to the order in which we initialize,
594         the mono_assembly_load_full routine that loads mscorlib did not
595         load friends.   We now load it once we load the
596         mono_defaults.internals_visible_class class. 
597
598         * assembly.c: Expose the mono_load_friend_assemblies method.
599
600 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
601
602         * verify.c: improved the handling of boxing, better
603         type checking for unary ops and conversion. Fix bug
604         regarding managed pointer compatibility checking
605
606 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
607
608         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
609
610         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
611
612 2007-08-09  Raja R Harinath  <rharinath@novell.com>
613
614         * reflection.c (dup_type): Remove.
615         * class.c (dup_type): Remove.
616         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
617         instead of the dodgy 'dup_type'.
618         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
619         handle the case where 'dup_type' needed the second argument.
620
621 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
622
623         * domain.c: Fix a warning.
624
625 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
626
627         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
628         checking that methods with the same fqname are not overridden
629         with a method from an ancestor.
630
631 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
632
633         * threads.c (free_thread_static_data_helper): Avoid a crash if
634         thread->static_data is not yet set.
635
636 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
637
638         * marshal.c: Use correct image when emitting
639         native wrapper for COM calls.
640    
641         Code is contributed under MIT/X11 license.
642
643 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
644
645         * icall-def.h, security.c, security.h :
646           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
647
648 2007-08-07  Martin Baulig  <martin@ximian.com>
649
650         * mono-debug-debugger.h
651         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
652
653         * domain.c (mono_domain_free): Call
654         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
655
656 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
657
658         * verify.c (check_underflow, check_overflow): error message now returns IL offset
659         * verify.c (in_same_block): code should test if either offset is inside the clauses
660         * verify.c (mono_method_verify): push the exception into the eval stack of exception
661         and filter blocks
662
663 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
664
665         * image.c (mono_image_close): Fix a leak.
666
667         * object.c (mono_runtime_invoke_array): Avoid using alloca.
668
669         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
670
671 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
672
673         * domain.c, threads.c, threads-types.h: fix memory retention issue
674         with thread static variables not being cleared on domain unload.
675         Reuse thread static slots after domain unload.
676
677 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
678
679         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
680         nullable type.
681
682         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
683         now done in mono_runtime_invoke_array.
684
685         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
686         receiver is a nullable type.
687
688         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
689         generic parameter.
690
691 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
692
693         * marshal.c: Implement COM Objects as return type for 
694         managed->unmanaged calls. Added Release calls for COM Object
695         out/return values in managed->unmanaged calls.
696
697         Code is contributed under MIT/X11 license.
698
699 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
700
701         * threads.h, threads-type.h: move the hazard pointer declarations
702         to the private header.
703
704 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
705
706         * file-io.c, appdomain.c: memory leak fixes.
707
708 2007-08-02  Dick Porter  <dick@ximian.com>
709
710         * socket-io.c
711         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
712         SO_REUSEADDR setting into io-layer/sockets.c.
713
714 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
715
716         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
717         from Object when called on a generic parameter. Fixes #82211.
718
719 2007-08-01  Dick Porter  <dick@ximian.com>
720
721         * file-io.c (convert_share): Test FileShare values bit-by-bit.
722         Fixes bug 79250 yet again.
723
724 2007-07-30  Martin Baulig  <martin@ximian.com>
725
726         Merged the `debugger-dublin' branch.
727
728         * mono-debug.h
729         (MonoDebugDataTable): New typedef.
730         (MonoDebugMethodAddressList): New typedef.
731         (MonoDebugWrapperData): Removed.
732         (MonoDebugSymbolTable): Removed `current_data_table',
733         `current_data_table_size', `current_data_table_offset'.
734         (MonoDebugDataItemType): Moved into mono-debug.c.
735         (MonoDebugMethodJitInfo): Remove `address'.
736         (mono_debug_data_table): New global variable.
737         (mono_debug_lookup_method_addresses): New public function.
738         (mono_debug_find_method): Take a `MonoMethod *', not a
739         `MonoDebugMethodInfo *'.
740
741         * mono-debug.c: Drop support for the old symbol tables.
742
743 2007-06-28  Martin Baulig  <martin@ximian.com>
744
745         * mono-debug.c (mono_debug_debugger_version): New public variable.
746
747 2007-07-31  William Holmes  <billholmes54@gmail.com>
748
749         * metadata.c Changed mono_type_create_from_typespec to not insert
750           the type into the hash map until after
751           do_mono_metadata_parse_type has completed.
752         Fixes Bug #82194
753         Code is contributed under MIT/X11 license.
754
755 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
756
757         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
758         generic parameter. Fixes #82211.
759
760 2007-07-27  Jb Evain  <jbevain@novell.com>
761
762         * pedump.c (dump_metadata, dump_metadata_header): dump
763         versions contained in the metadata header.
764
765 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
766
767         * threads.c: register small_id_table with the GC.
768
769 2007-07-27  Mark Probst  <mark.probst@gmail.com>
770
771         * threads.c, threads.h, class-internals.h, object-internals.h:
772         Hazard pointers, to be used by lock-free parallel algorithms.
773
774 2007-07-26  Dick Porter  <dick@ximian.com>
775
776         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
777         routine on non-windows platforms, as I've not managed to think of
778         a non-kludgy way of doing this.  Finishes off bug 78739.
779
780 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
781
782         * object.c: properly setup interface_bitmap in proxy vtables.
783
784 2007-07-25  Marek Habersack  <mhabersack@novell.com>
785
786         * appdomain.c (get_shadow_assembly_location): do not use TickCount
787         to create unique shadow copy target directories, use the domain's
788         serial number instead. Each domain gets a unique target directory
789         that way.
790
791         * domain.c (mono_domain_create): added code to increment domain
792         shadow copy serial number and cache the value in the current
793         domain structure.
794
795         * domain-internals.h (struct _MonoDomain): added a new field -
796         shadow_serial to hold the serial number used in generation of
797         shadow-copy directories. This is to make sure that the directory
798         name is unique for each and every domain created. We avoid a race
799         condition with overriding assemblies already in use by other app
800         domains.
801
802 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
803
804         * class.c (mono_bounded_array_class_get): fixed memory leak when 
805         binding generic parameters.
806
807 2007-07-24  Raja R Harinath  <rharinath@novell.com>
808
809         * metadata.c (do_mono_metadata_parse_generic_class): Use
810         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
811         error.
812
813 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
814
815         * loader.c, class-internals.h, reflection.c: removed the per-method
816         generics hashtable: we use the global one through the call of
817         mono_class_inflate_generic_method ().
818
819 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
820
821         * class.c, metadata.c, class-internals.h: introduce yet another
822         generics global cache for inflated methods (fixes 98% of the perf
823         issue in bug #81806).
824
825 2007-07-23  Raja R Harinath  <rharinath@novell.com>
826
827         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
828         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
829         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
830         return a MonoGenericInst containing (a copy) of those types.
831         (mono_metadata_inflate_generic_inst): Update to changes.
832         (mono_metadata_parse_generic_inst): Likewise.
833         (mono_get_shared_generic_inst): Likewise.
834         * reflection.c (mono_class_bind_generic_parameters): Likewise.
835         (mono_reflection_bind_generic_method_parameters): Likewise.
836         * metadata-internals.h: Likewise.
837         * icall.c (free_generic_context): Kill.
838         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
839
840         * reflection.c (reflection_methodbuilder_to_mono_method): Use
841         mono_metadata_type_dup.
842         * marshal.c (mono_mb_create_method): Likewise.
843
844         * metadata.c (mono_metadata_type_dup): Rename from
845         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
846         MonoImage.  Handle a few more cases, esp. when no mempool is given.
847         * marshal.c, metadata-internals.h: Update to changes.
848
849 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
850
851         * class.c: fixed a small leak for array classes and removed warning.
852
853 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
854
855         * loader.c (mono_method_get_param_token): Make this work on generic methods.
856         Return 0x8000000 for return parameters. Fixes #82161.
857
858 2007-07-21  Marek Habersack  <grendello@gmail.com>
859
860         * appdomain.c (get_shadow_assembly_location): append the current
861         ticks value to the path. Avoids overwriting the same assemblies by
862         several threads at the same time.
863
864 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
865         and Raja R Harinath  <rharinath@novell.com>
866
867         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
868         Simplify slightly.
869         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
870         property for testing if a method is a generic method definition.
871
872 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
873
874         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
875
876 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
877
878         * verify.c: used function from private branch, reverted to the one in class.h 
879
880 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
881
882         * verify.c: a typo slipped in and the code wont compile
883
884 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
885
886         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
887         disabled box instruction as it is doing the wrong thing
888         improved stack dump messages, now it is easier to debug type related issues
889
890
891 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
892
893         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
894
895 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
896
897         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
898         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
899         grouped with class and valuetype. This change will simply 
900         the code as it should be handled just like unmanaged pointers.
901
902 2007-07-19  Mark Probst  <mark.probst@gmail.com>
903
904         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
905
906 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
907
908         * verify.c: several stack merge issues fixed, reference comparisons now
909         check the type size. strict type check now works correctly.
910         added more uses of IS_MANAGED_POINTER macro.
911         fixed issues pointed by running the test suite against .net.
912         
913
914 2007-07-19  Mark Probst  <mark.probst@gmail.com>
915
916         * class.c, loader.c, class-internals.h: Removed the
917         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
918         defines.
919
920         * icall.c: Better error checking in some internal reflection
921         methods.
922
923 2007-07-18  William Holmes  <billholmes54@gmail.com>
924
925         * filewatcher.c : removed unused variable 'filename' in 
926           ves_icall_System_IO_FSW_SupportsFSW
927
928 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
929
930         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
931         obsolete, removed.
932
933 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
934
935         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
936         
937         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
938
939 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
940
941         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
942         Implement generics support.
943         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
944
945         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
946         type_args and method_args arguments.
947         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
948         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
949         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
950
951 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
952
953         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
954           It adds a rootimage parameter to mono_reflection_get_type_internal,
955           adds new function mono_reflection_get_type_with_rootimage and use
956           the rootimage to resolve the types instead of the current image
957
958 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
959
960         * culture-info-table.h: Forgot to update after r78304.
961
962 2007-07-13  Raja R Harinath  <rharinath@novell.com>
963
964         * class.c (mono_class_is_open_constructed_type)
965         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
966
967 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
968
969         * class.c (mono_bounded_array_class_get):  method fails if used with
970         an incomplete TypeBuilder enum (no basetype field), fixed it by 
971         avoiding calculating the size for such array as it cannot be instantiated.
972         Fix bug #82015
973
974 2007-07-12  Raja R Harinath  <rharinath@novell.com>
975
976         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
977         field.
978         * metadata.c, reflection.c: Update to changes.
979
980 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
981
982         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
983         mono_class_is_valid_enum, they are used to valide a enum when loading.
984         * reflection.c: used new functions to throw TypeLoadException when and
985         invalid enum is build with TypeBuilder. Fixes #82018
986   
987 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
988
989         * object.c: forgot commit of mono_class_setup_methods () to access
990         iface->methods.
991         * object-internals.h: added a few more handy fields to
992         MonoIMTCheckItem.
993
994 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
995
996         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
997         iface->methods.
998
999 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1000
1001         * class-internals.h, object-internals.h, object.c: IMT-based
1002         interface invocation core from Massimiliano Mantione
1003         (massi@ximian.com) with a reworked arch-specific interface,
1004         bsearch implementation and a few bugfixes and memory savings by me.
1005
1006 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1007
1008         * class.c (mono_class_create_from_typedef): mono would segfault if 
1009         an enum did not have a __value field. It now throws a TypeLoadException
1010         for such cases. Fix bug #82022
1011
1012 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1013
1014         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1015
1016 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1017
1018         * class.c (mono_class_init): If a class is already inited but has
1019         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1020
1021 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1022
1023         * class.c: Properly handle the case of an unimplemented interface
1024         method.  Fixes: 81673.
1025
1026 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1027
1028         * class-internals.h, object.c: cleanup patch from massi: use
1029         MonoVTable->interface_bitmap since the vtable interfaces offset array
1030         is going away.
1031
1032 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1033
1034         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1035         GetMDStreamVersion icall instead.
1036
1037 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1038
1039         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1040         not use mono_dl_build_path() with a full library name: makes
1041         fallbacks to libgaim and libfam work.
1042
1043 2007-07-06  William Holmes  <billholmes54@gmail.com>
1044
1045         * assembly.c: Added a continue statement in probe_for_partial_name when
1046          parse_assembly_directory_name fails.  Fixes : 82002
1047
1048 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1049
1050         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1051         and added a verification  for TYPEDBYREF.
1052         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1053         make native int interchangeable with int32 and some small cleanup and formating.
1054         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1055         handle byref of byref.
1056         * verify.c (push_local): handle byref of byref.
1057         * verify.c (do_binop): invalid mix of values is unverifiable
1058         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1059         added visibility checks
1060         * verify.c (field related method): added visibility checks
1061         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1062
1063 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1064
1065         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1066         string.
1067
1068 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1069
1070         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1071
1072         * marshal.c (emit_marshal_string): When returning a string from managed code,
1073         allways make a copy even for unicode strings. Fixes #81990.
1074
1075 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1076
1077         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1078         of byref generic inst types (bug #81997).
1079
1080 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1081
1082         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1083         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1084
1085 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1086
1087         * marshal.c (emit_marshal_string): Add support for unicode strings in
1088         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1089
1090 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1091
1092         * verify.c: field load/store are now verified, missing only access checks now
1093
1094 2007-06-28  Martin Baulig  <martin@ximian.com>
1095
1096         * mono-debug.c (mono_debug_debugger_version): New public variable.
1097
1098 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1099
1100         * locales.c: When constructing DateTimeFormat or NumberFormat for
1101         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1102         MonoCultureInfo contructed from the current locale is always
1103         read-only and has UseUserOverride set to true. All MonoCultureInfo
1104         instances returned for GetCultures have both IsReadOnly and
1105         UseUserOverride set to true. Fixes part of bug #81930.
1106
1107 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1108
1109        * icall-def.h: Update System.__ComObject icalls
1110        * marshal.c: Avoid managed transition (and object creation)
1111        when looking up COM interface in RCW.
1112        * marshal.h: Ditto.
1113        
1114        Code is contributed under MIT/X11 license.
1115
1116 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1117
1118         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1119         to avoid crashes during assembly unloading.
1120
1121 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1122
1123         Fix MethodInfo.IsGenericMethodDefinition
1124         * reflection.c (mono_reflection_bind_generic_method_parameters):
1125         Rearrange code to ensure we always uses a generic method definition.
1126         * class.c (mono_class_inflate_generic_method_full): Set
1127         'generic_container' field only for generic method definitions.
1128         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1129         Use presense of 'generic_container' field as indication of being a
1130         generic method definition.
1131
1132 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1133
1134         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1135
1136         * object-internals.h: Reflect changes in the layout of the managed Delegate
1137         class.
1138         
1139         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1140         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1141         runtime memory used by the dynamic method. Fixes #77146.
1142
1143 2007-06-21  Dick Porter  <dick@ximian.com>
1144
1145         * file-io.h: 
1146         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1147         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1148         81767.
1149
1150 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1151
1152         * reflection.c (method_encode_methodspec): Add a tripwire.
1153         * class.c (inflate_generic_type): The fully open generic type is
1154         not the same as the generic type definition.
1155
1156 2007-06-21  Martin Baulig  <martin@ximian.com>
1157
1158         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1159
1160         * mono-debug-debugger.h
1161         (MonoDebuggerBreakpointInfo): Removed.
1162         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1163         (mono_debugger_remove_breakpoint): Likewise.
1164         (mono_debugger_breakpoint_callback): Likewise.
1165         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1166
1167 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1168
1169         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1170         generic type is not the same as the generic type definition.
1171         * class.c (mono_generic_class_get_class): Likewise.
1172
1173 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1174
1175         * icall.c: The second argument to 
1176         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1177         is a MonoType not a MonoClass.
1178
1179 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1180
1181         * verify.c: support for function pointers in the verifier
1182
1183 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1184
1185         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1186
1187 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1188
1189         * assembly.c: removed Mono.Data.SqliteClient from the list of
1190         forward-compatible assemblies as it breaks the ABI (bug #81899).
1191
1192 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1193
1194         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1195         lookup/update with the loader lock.
1196         * reflection.c (mono_class_bind_generic_parameters): No need to
1197         protect mono_metadata_lookup_* with the loader lock.
1198         * class.c (inflate_generic_type): Likewise.
1199         
1200         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1201         on a generic instantiated type.
1202
1203 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1204
1205         *verify.c: produce meanfull error messages on verification error
1206         *verify.c: fixed some cases of verification errors reported as validation errors
1207         *pedump.c: fixed the error name array, now it shows validation errors properly
1208         *verify.h: fixed the contant that should be used for verification errors
1209
1210 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1211
1212         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1213         for bug #77596, 81858 and 80743 (generics data structures on domain
1214         unload).
1215
1216 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1217
1218         Avoid allocating 'MonoGenericContext' on the heap.
1219         * class-internals (_MonoMethodInflated::context): Make field
1220         inline, not a pointer.
1221         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1222         stack.  Use the context embedded within the inflated method as the
1223         hash key, rather than 'new_context'.
1224         * class.c (inflate_generic_context): Simplify.  Return a struct
1225         rather than allocating on the heap.
1226         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1227         doesn't salt away a copy of the context -- simplifying the
1228         lifetime rules of a 'MonoGenericContext *'.
1229         (mono_method_get_context): Return pointer to embedded context.
1230         (setup_generic_array_ifaces): Allocate temporary context on stack.
1231         * reflection.c (inflate_mono_method): Likewise.
1232         (mono_reflection_bind_generic_method_parameters): Likewise.
1233         Use the context embedded within the inflated method as the hash key.
1234
1235         Avoid a source of allocation of 'MonoGenericContext'.
1236         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1237         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1238         * class.c: Update to changes.
1239         (mono_generic_class_get_context): Simplify drastically.  Now just
1240         returns a pointer to the field.
1241         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1242         argument as a const pointer.
1243         (mono_metadata_generic_context_equal): Likewise.
1244         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1245         Update to changes.
1246
1247 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1248
1249         * verify.c improved the handling of brtrue/brfalse, factored out common code
1250
1251 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1252
1253         Kill MonoGenericMethod.
1254         * class-internals.h (MonoGenericContext::method_inst): Rename from
1255         'gmethod' and convert to a MonoGenericInst.
1256         (MonoGenericMethod): Remove.
1257         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1258         * loader.c (method_from_methodspec): Update to changes.  Use a
1259         MonoGenericContext as the key to the hashtable.
1260         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1261         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1262         (mono_metadata_generic_context_hash): Likewise from
1263         'mono_metadata_generic_method_hash'.  Change hash function.
1264         (mono_metadata_load_generic_params): Update to changes.
1265         (mono_get_shared_generic_method): Remove.
1266         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1267         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1268         (inflate_generic_context): Likewise.
1269         (mono_class_inflate_generic_method_full): Likewise.
1270         (setup_generic_array_ifaces): Likewise.
1271         (mono_class_create_from_typespec): Likewise.
1272         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1273         (method_encode_methodspec): Update callsite.
1274         (reflection_methodbuilder_to_mono_method): Update to changes.
1275         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1276         MonoGenericContext as the key to the hashtable.
1277         (inflate_mono_method): Update to changes.
1278
1279         * class-internals.h (MonoGenericMethod::container): Remove.
1280         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1281
1282 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1283
1284         * profiler-private.h, profiler.c, profiler.h: added API to profile
1285         exception events.
1286
1287 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1288
1289         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1290
1291 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1292
1293         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1294         Fixed overflow and underflow not aborting the verification process.
1295
1296 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1297
1298         * class-internals.h (MonoStats): Added stats entries for dynamic
1299         code allocations.
1300
1301 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1302
1303         * loader.c (mono_free_method): Free header->locals and header->clauses.
1304
1305         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1306         dynamic case.
1307
1308         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1309
1310         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1311
1312 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1313
1314         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1315         the tables.
1316
1317 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1318
1319         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1320
1321 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1322
1323         MonoGenericMethod on a diet
1324         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1325         here ...
1326         (_MonoGenericMethod::reflection_info): ... from here.
1327         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1328         Update to changes.
1329         * reflection.c (inflate_mono_method): Likewise.
1330         (mono_reflection_bind_generic_method_parameters): Likewise.
1331
1332 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1333
1334         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1335         *verify.c: factored long ldarg forms to share code with short forms
1336
1337 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1338
1339         *verify.c: fixed code formating factored some duplicate code
1340         into a new function
1341
1342         *verify.h: fixed binary incompatibility introduced earlier
1343
1344         *pedump.c: fixed formating
1345
1346 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1347
1348         Fix assertion when disassembling Mono.C5.dll
1349         * loader.c (method_from_methodspec): Avoid inflating a method
1350         twice with the same context.  If the methodref is inflated, use
1351         the declaring method instead.
1352
1353         * class.c (mono_class_from_generic_parameter): Fix case similar to
1354         bug #81830 handled below, but for method containers.
1355
1356 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1357
1358         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1359         get_shared_generic_class.  Directly inflate the instance.
1360         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1361         (inflate_generic_class): Delete.
1362         (get_shared_generic_class): Delete.  Move setting of
1363         'cached_class' and 'cached_context' ...
1364         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1365
1366         * metadata.c (mono_metadata_lookup_generic_class): Change
1367         signature to take the components of a MonoGenericClass rather than
1368         an allocated MonoGenericClass.  Change semantics to be intern-like.
1369         * reflection.c (mono_class_bind_generic_parameters): Update to
1370         changes.  Make locking region tighter.
1371         * class.c (inflate_generic_class): Update to changes.
1372         (get_shared_generic_class): Likewise.
1373         * metadata-internals.h: Likewise.
1374
1375         * reflection.c (mono_class_bind_generic_parameters): Take and
1376         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1377         (mono_reflection_bind_generic_parameters): Use
1378         'mono_class_bind_generic_parameters' rather than duplicate the code.
1379         * class.c (mono_bounded_array_class_get): Update to changes.
1380         * object-internals.h: Likewise.
1381
1382         * reflection.c (mono_class_bind_generic_parameters): Only support
1383         parameterizing generic type definitions.  Remove support for other
1384         open types.
1385
1386 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1387
1388         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1389
1390         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1391         in the dynamic case.
1392
1393 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1394
1395         * threads.c: When cleaning up thread, reset the Background bit.
1396         Fixes bug #81720.
1397
1398 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1399
1400        * metadata.c: Move variable declarations to top of scope.
1401        * verify.c: Move variable declarations to top of scope.
1402
1403        Code is contributed under MIT/X11 license.
1404
1405 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1406
1407         * reflection.c (mono_class_bind_generic_parameters): Replace
1408         open-coded loop with mono_metadata_inflate_generic_inst.
1409
1410         * class.c (get_shared_generic_class): Don't call
1411         mono_get_shared_generic_inst.  Use the container's own
1412         'class_inst'.
1413
1414         * metadata.c (mono_metadata_load_generic_params): Move
1415         initialization of 'context' field here from ...
1416         * class.c (mono_class_create_from_typedef): ... here, and ...
1417         * loader.c (mono_get_method_from_token): ... here.
1418
1419         * class.c (get_shared_generic_class): Rename from
1420         mono_get_shared_generic_class and make static.
1421         (mono_get_shared_generic_inst): Move to metadata.c.
1422         * loader.c (mono_get_shared_generic_method): Likewise.
1423         * class-internals.h, metadata-internals.h: Update to changes.
1424
1425         Fix #81830
1426         * class.c (mono_class_from_generic_parameter): Don't assume a
1427         generic container owner exists.  Generic containers from monodis
1428         don't have any.
1429
1430 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1431
1432         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1433         * verify.h: new typedefs to returns the non-verifiable status
1434         * verify.c: initial implementation of generics, stack merging and object compatibility check
1435
1436 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1437
1438         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1439         a MonoInternalHashTable again (fixed bug in internal hash table
1440         code).
1441
1442 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1443
1444         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1445         MonoInternalHashTable again (fixed bug in internal hash table
1446         code).
1447
1448 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1449
1450         * class.c, image.c, class-internals.h, domain.c,
1451         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1452         changes.  Have to figure out what makes them break the SWF
1453         regression.
1454
1455 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1456
1457         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1458         a MonoInternalHashTable now.
1459
1460 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1461
1462         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1463         MonoInternalHashTable now.
1464
1465 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1466
1467         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1468         invoke_impl code.
1469
1470         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1471
1472         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1473         dependent trampoline.
1474
1475         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1476
1477         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1478
1479 2007-05-29  Robert Jordan  <robertj@gmx.net>
1480
1481         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1482
1483 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1484
1485         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1486
1487 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1488
1489        * marshal.c: Fix interface lookup loops for
1490        cominterop_get_com_slot_for_method and 
1491        cominterop_get_method_interface. Only need to lookup
1492        if type is a class, else use interface type method is on.
1493
1494        Code is contributed under MIT/X11 license.
1495
1496 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1497
1498         * reflection.c: HasSecurity can be present even if no specially 
1499         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1500         SecurityAttribute). Fix CAS regression tests on buildbot.
1501
1502 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1503
1504        * appdomain.c: Add configure checks for header files.
1505        * image.c: Add configure checks for header files.
1506        * file-io.c: Add configure checks for header files.
1507        * debug-mono-symfile.c: Add configure checks for header files.
1508        * threadpool.c: Add configure checks for header files.
1509        * console-io.c: Add configure checks for header files.
1510        * profiler.c: Add configure checks for header files.
1511        * rawbuffer.c: Add configure checks for header files.
1512        * icall.c: Add configure checks for header files.
1513        * rand.c: Add configure checks for header files.
1514        * socket-io.c: Add configure checks for header files.
1515
1516        Code is contributed under MIT/X11 license.
1517
1518 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1519
1520         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1521         assertion as it breaks the build.
1522         
1523         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1524
1525         * reflection.c (lookup_custom_attr): Make a copy here too.
1526
1527         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1528         dynamic images.
1529
1530         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1531         images.
1532
1533         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1534         info.
1535
1536 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1537
1538         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1539         (load_cattr_value): Ditto.
1540
1541 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1542
1543         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1544
1545 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1546
1547         * threads.c: In "start_wrapper", set apartment_state to MTA if
1548         apartment_state is Unknown and we're running on 2.0 profile or
1549         higher.
1550         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1551         to main method, then set apartment_state to Unknown on 1.0 profile,
1552         and MTA on 2.0 profile.
1553
1554 2007-05-16  Jb Evain  <jb@nurv.fr>
1555
1556         * class-internals.h (MonoDefaults): Add an attribute_class and
1557           customattribute_data_class.
1558         * domain.c (mono_init_internal): Populate them.
1559         * reflection.c: Use them to remove duplicates. Make a vew
1560         MonoClass variables `static'.
1561
1562 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1563
1564         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1565         step in implementing IMT, so that all isinst checks now can go
1566         through the bitmap.
1567         This was needed because vtables for TransparentProxy need to look
1568         like the vtable of the "target" class, so they need to point to
1569         its interface bitmap directly.
1570
1571         * object.c: inside "mono_class_create_runtime_vtable" and
1572         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1573
1574 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1575
1576         * object-internals.h
1577           culture-info.h : added territory field in MonoCulture and
1578           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1579         * locales.c : fill territory field above too.
1580         * culture-info-table.h : regenerated.
1581
1582 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1583
1584         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1585         Fixes #81599.
1586
1587 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1588
1589         * object.c: Always initialize apartment, even if 
1590         there is no custom attributes on entry point.
1591         
1592         Code is contributed under MIT/X11 license.
1593
1594 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1595
1596         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1597         * metadata.c: If no encoding is set, check for unicode
1598         on class.
1599         
1600         Code is contributed under MIT/X11 license.
1601
1602 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1603
1604         * threads.c: Handle if mono_thread_current returns NULL 
1605         
1606         Code is contributed under MIT/X11 license.
1607
1608 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1609
1610         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1611         in start_wrapper. Added mono_thread_init_apartment_state and
1612         mono_thread_cleanup_apartment_state.
1613         * object.c: Initialize thread apartment state on main thread
1614         by checking for STAThreadAttribute on entry point.
1615         * object-internals.h: Add apartment_state field to MonoThread.
1616         * threads-types.h: Add unmanaged definition of 
1617         System.Threading.ApartmentState, MonoThreadApartmentState.
1618         
1619         Code is contributed under MIT/X11 license.
1620         
1621 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1622
1623         * class.c: Fix windows build.
1624         * class-internals.h: Fix windows build.
1625         
1626         Code is contributed under MIT/X11 license.
1627
1628 2007-05-08  Robert Jordan  <robertj@gmx.net>
1629
1630         * process.c (CreateProcess_internal):
1631         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1632         .CreateNoWindow was specified. Fixes #81496.
1633
1634 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1635
1636         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1637         step in implementing IMT, replaced it with two compact arrays
1638         (interfaces_packed and interface_offsets_packed) and a bitmap that
1639         is used for isinst checks (interface_bitmap).
1640
1641         * class.c: (compare_interface_ids): compare function to pass to
1642         bsearch when looking for an interface with a given id.
1643         (mono_class_interface_offset): reimplemented using bsearch on
1644         interfaces_packed, getting the offset from interface_offsets_packed.
1645         (print_implemented_interfaces): utility debugging function.
1646         (setup_interface_offsets): reworked to initialize interfaces_packed,
1647         interface_offsets_packed and interface_bitmap.
1648
1649         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1650         with uses of interfaces_packed and interface_offsets_packed.
1651
1652 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1653
1654         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1655         mono_class_interface_offset prototype to wrap all accesses to
1656         "MonoClass.interface_offsets".
1657
1658         * class.c: Implemented mono_class_interface_offset, and wrapped all
1659         accesses to "MonoClass.interface_offsets".
1660
1661         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1662         "MonoClass.interface_offsets".
1663
1664 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1665
1666         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1667         GetMethodFromHandle overloads (bug #78637).
1668
1669 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1670
1671         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1672         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1673
1674 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1675
1676         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1677         #81498.
1678
1679         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1680         gracefully.
1681         (mono_custom_attrs_from_index): Ditto.
1682
1683         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1684         Fixes #81501.
1685
1686 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1687
1688         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1689         is now allocated from a mempool.
1690
1691 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1692
1693         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1694         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1695
1696 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1697
1698         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1699         mono_loader_clear_error () too late. Fixes #81463.
1700
1701 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1702
1703         * culture-info-table.h : regenerated.
1704
1705 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1706
1707         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1708         is missing.
1709
1710 2007-04-25  Dick Porter  <dick@ximian.com>
1711
1712         * Makefile.am: Put the mingw enforced-optimisation back into the
1713         PLATFORM_WIN32 section.
1714
1715 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1716
1717         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1718         patch.
1719
1720         * image.c (mono_image_load_module): New API function to load a module reference.
1721
1722         * image.c (load_modules): Load modules lazily. Fixes #80812.
1723
1724         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1725         
1726         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1727
1728         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1729         to mono_image_load_module_dynamic.
1730
1731 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1732
1733         * marshal.c: Fix calling convention for CCW on non-windows
1734         platforms. STDCALL on windows, CDECL everywhere else to work 
1735         with XPCOM and MainWin COM.
1736         
1737         Code is contributed under MIT/X11 license.
1738
1739 2007-04-23  Martin Baulig  <martin@ximian.com>
1740
1741         Fix #80969.
1742
1743         * loader.c
1744         (method_from_memberref): Added `gboolean *used_context' argument.
1745         (mono_get_method_from_token): Likewise.
1746         (mono_get_method_full): Don't insert the method in the cache when
1747         `used_context' is true.
1748
1749 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1750
1751         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1752
1753         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1754         create new MonoTypes for returned types.
1755         * class.c (mono_generic_class_get_class): Export mono-internal.
1756         * class-internals.h: Update to changes.
1757
1758 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1759
1760         * threadpool.c, threadpool.h, icall-def.h: patch from
1761         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1762
1763 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1764
1765         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1766         
1767         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1768
1769         * threads.c (mono_thread_get_stack_bounds): New helper function.
1770
1771         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1772         Correctly compute stack bounds when attaching. Fixes #81394.
1773
1774 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1775
1776         * reflection.c: fix handling of doubles in custom attributes
1777         for the arm-fpa format (bug #81368).
1778
1779 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1780
1781         * reflection.c (assembly_add_win32_resources): Mildly relax an
1782         bounds check to let the end pointer point just past the end of the
1783         allocated buffer.  (may fix #81384)
1784
1785 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1786
1787         * culture-info-table.h : regenerated.
1788
1789 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1790
1791         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1792         the thread is aborted early.
1793
1794 2007-04-05  Dick Porter  <dick@ximian.com>
1795
1796         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1797         FindFirstFile()/FindNextFile() to find entries.  This lets the
1798         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1799         81038.
1800
1801         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1802         the parameters of
1803         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1804
1805 2007-04-04  Martin Baulig  <martin@ximian.com>
1806
1807         * debug-helpers.c
1808         (mono_method_desc_full_match): Add support for nested classes.
1809
1810 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1811
1812         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1813
1814 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1815
1816         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1817         waiting for too many threads.
1818
1819 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1820
1821         * environment.c: Fix return value check on uname so we can get the 
1822         executing version on Solaris operating systems.
1823
1824 2007-03-28  Jb Evain  <jbevain@gmail.com>
1825
1826         * class.c (mono_type_get_name_recurse): Complete the
1827         fix for the creation of assembly qualified names for
1828         pointer types. Fixes #81208.
1829
1830 2007-03-27  Dick Porter  <dick@ximian.com>
1831
1832         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1833         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1834         changed.
1835
1836         * threads.c
1837         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1838         the value of ReleaseMutex().
1839
1840 2007-03-27  Dick Porter  <dick@ximian.com>
1841
1842         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1843         in little-endian order, not network endian, so must be converted
1844         to host endian here.  Fixes bug 80593.
1845
1846 2007-03-22  Jb Evain  <jbevain@gmail.com>
1847
1848         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1849         qualified names for pointer types. Fixes #81208.
1850
1851 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1852
1853         * marshal.c: Add support for PreserveSigAttribute. 
1854         
1855         Code is contributed under MIT/X11 license.
1856
1857 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1858
1859         * process.c: Fix endianness issues. Fixes #81126.
1860
1861         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1862         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1863
1864         * image.c (mono_image_lookup_resource): Make this work on big-endian
1865         machines.Change API contract so the caller needs to free the return value.
1866         
1867         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1868         API change.
1869         
1870 2007-03-14  Martin Baulig  <martin@ximian.com>
1871
1872         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1873         mono_type_get_desc() as well.
1874
1875 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1876
1877         * icall.c:  Fix environ access in VS.  
1878         
1879 2007-03-13  Alp Toker  <alp@atoker.com>
1880
1881         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1882         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1883         #63841.
1884
1885 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1886
1887         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1888         circular references among dynamic methods. Fixes #81091.
1889
1890         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1891
1892 2007-03-09  Martin Baulig  <martin@ximian.com>
1893
1894         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1895
1896 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1897
1898         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1899         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1900         
1901         Code is contributed under MIT/X11 license.
1902         
1903 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1904
1905         * loader.c: Reapply patch for bug #79424.
1906
1907 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1908
1909         * metadata.c (mono_type_to_unmanaged): Only convert object to
1910         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1911
1912 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1913
1914         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1915         (and incorrectly set) is_reference field from MonoGenericInst.
1916
1917 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1918
1919         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1920         a little earlier.
1921
1922         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1923
1924         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1925
1926 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1927
1928         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1929         FileOptions.1 value to mean "temporary", map that to
1930         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1931
1932         Fixes 80688
1933
1934 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1935
1936         * appdomain.c: implement MS .Net style shadow copying. Copies of
1937         the assemblies are made in a subdirectory of the dynamic base
1938         directory, the assembly names are preserved.
1939         Copy .mdb and .config files along with the assemblies being shadowed.
1940
1941 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1942
1943         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1944         (emit_marshal_handleref): Ditto.
1945
1946         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1947         on Visual C++. Fixes #80671.
1948
1949 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1950
1951         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1952         for clone operations.
1953
1954 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1955
1956         * marshal.c: Fix warnings.
1957
1958 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1959
1960         * loader.c: allow case-insensitive matching of the dll name
1961         in dllmap handling when prefixed with "i:".
1962
1963 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1964
1965         * threads.c: Fix #ifdef for dummy_apc function for VS.
1966
1967 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1968
1969         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1970
1971 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1972         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1973         giving precedence to the methods with a fully qualified name
1974         (InterfaceName.MethodName) when building the interface sections
1975         of the vtable.
1976
1977 2007-02-16  Dick Porter  <dick@ximian.com>
1978
1979         * threadpool.c (append_job): Fix fast-path array handling, so it's
1980         less likely the array will grow exponentially when the load is
1981         heavy.
1982
1983 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1984
1985         * metadata-internals.h, loader.c: fix dllmap lookup order
1986         for non-function maps, too, and prepare for fallback code.
1987
1988 2007-02-12  Robert Jordan  <robertj@gmx.net>
1989
1990         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1991         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1992         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1993         GlobalFree. Fixes a part of bug #77075.
1994
1995 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1996
1997         * loader.c: implemented typedef parent in field memberref.
1998
1999 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2000
2001         * marshal.c: Fix warnings and remember to call Release on
2002         IUnknown of RCW.
2003         
2004         Code is contributed under MIT/X11 license.
2005
2006 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2007
2008         * class-internals.h: Add MonoHandleRef definition, and
2009         handleref_class to mono_defaults. 
2010
2011         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2012         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2013
2014         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2015         (do nothing on this stage)
2016         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2017         (emit_marshal_handleref): New method, used for argument handling
2018         of HandleRefs. 
2019
2020 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2021
2022         * class.c (mono_class_setup_parent): Lazily init com types.
2023         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2024         init com types.
2025         * object.c (mono_remote_class_vtable): Lazily init com types.
2026         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2027         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2028         * domain-internals.h: Expose mono_init_com_types.
2029         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2030         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2031         Add support for COM Callable Wrapper marshalling.
2032         * marshal.h: Add icall definitions.
2033         * gc.c: Handle freeing of CCWs in finalizer code.
2034         
2035         Code is contributed under MIT/X11 license.
2036
2037 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2038
2039         * reflection.c: changed all the signature encoding code to use
2040         a variable-sized buffer.
2041
2042 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2043
2044         * marshal.c: locking fixes: never take the loader lock
2045         or other runtime locks when holding the marshal lock
2046         (fixes bug#80664).
2047
2048 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2049
2050         * marshal.c: make the delegate function pointer mapping
2051         work for the moving GC.
2052
2053 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2054
2055         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2056         for bug #80618.
2057
2058 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2059
2060         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2061         gmodule.
2062
2063 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2064
2065         * threadpool.c: made the code moving-GC safe.
2066
2067 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2068
2069         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2070         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2071         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2072         warning cleanup.
2073         * reflection.c: warning cleanup, some threading and moving GC fixes.
2074
2075 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2076
2077         * class.c, loader.c: create the needed Set/Get/Address array methods
2078         as well as the .ctors in mono_class_init (), fixes bug #80567.
2079
2080 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2081
2082         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2083         we doesn't decrease its alignment. Should fix the sparc build.
2084
2085 2007-01-24  Dick Porter  <dick@ximian.com>
2086
2087         * socket-io.c
2088         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2089         Create the returned object if we need to ignore an unsupported
2090         socket option.  Fixes a segfault reported by Atsushi.
2091
2092 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2093
2094         * class.c, object.c: restrict GC-tracked fields to
2095         UIntPtr fields used inside corlib, so we provide better
2096         type info to the GC and also allow broken packing as in
2097         bug #80580.
2098
2099 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2100
2101         * sgen-gc.c: removed duplicated function.
2102
2103 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2104
2105         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2106         value that means that the value is not supported, but that we
2107         should not return a failure, but instead report this as a
2108         successful operation.
2109
2110 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2111
2112         Fix tests/bug79956.2.il
2113         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2114         (mono_generic_class_get_class): If the generic definition in an
2115         enum, copy over other fields related to it.
2116
2117 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2118
2119         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2120         genericinst enums (bug #79215).
2121
2122 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2123         * class.c: Fix bug 80307.
2124
2125 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2126
2127         * image.c: if the file table is not present, try to load
2128         all the modules, since we don't have info about them
2129         having or not metadata (bug #80517).
2130         * assembly.c: allow mono_assembly_load_references () to
2131         work for netmodules.
2132
2133 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2134
2135         * image.c, metadata-internals.h, object.c: execute module
2136         cctors when running on the 2 runtime if present (bug #80487).
2137
2138 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2139
2140         * icall.c: optimized InitializeArray() on bigendian.
2141
2142 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2143
2144         * icall.c: fix for the broken ARM FPA double format.
2145
2146 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2147
2148         * icall.c: handle endian issues for r4 and r8 types, too, in
2149         the InitializeArray() icall.
2150
2151 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2152
2153         * loader.c (mono_loader_error_prepare_exception): Clear the error
2154         once we have extracted the information from it, do this before we
2155         call into the JIT's class loading mechanisms.
2156
2157         * object.c (mono_class_create_runtime_vtable): Do not clear the
2158         loader error before calling mono_class_get_exception_for_failure
2159         as the loader error is needed inside
2160         mono_class_get_exception_for_failure to throw the error (thinko).
2161
2162         Fixes #80521
2163         
2164 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2165
2166         * reflection.c: align fields rva data so it's faster to load at
2167         runtime.
2168
2169 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2170
2171         Prepare to simplify GenericMethod handling.
2172         * class-internals.h (mono_method_get_context): New accessor function.
2173         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2174         rather than directly accessing '->context' field.
2175
2176         * class-internals.h (_MonoGenericParam.method): Move ...
2177         (_MonoGenericContainer): ... here.  Add into union with klass field.
2178         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2179         Update to changes.
2180
2181 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2182
2183         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2184         the wrapper type enum and reduce relocations.
2185
2186 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2187
2188         * reflection.c (inflate_mono_method): Reuse method instantiation
2189         from the generic method, if available.
2190
2191 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2192
2193         * marshal.c (emit_marshal_variant): Fix conv_arg
2194         type in last commit, based on whether parameter is byref.
2195         
2196 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2197
2198         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2199         marshalling.
2200         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2201         MONO_TYPE_OBJECT back for VARIANT support.
2202
2203 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2204
2205         * marshal.c, marshal.h, icall-def.h: Implement 
2206         Marshal.ReAllocCoTaskMem.
2207
2208 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2209
2210         * marshal.c: memory retention fixes: use the proper
2211         image cache for runtime_invoke method lookups.
2212
2213 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2214
2215         * mempool.c: added code to help debug mempool allocations.
2216
2217 2007-01-11  Dick Porter  <dick@ximian.com>
2218
2219         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2220         support (experimenting with faking it with IP_MTU_DISCOVER for
2221         systems that don't have IP_DONTFRAGMENT.)
2222         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2223         icall.
2224
2225         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2226
2227         * socket-io.h: Add new fields to MonoSocketAsyncResult
2228         corresponding to the new ones in Socket.cs.
2229
2230 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2231
2232         Fix IronPython regression mentioned in #80249
2233         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2234         'cached_context' field, since it may have been initialized as a
2235         side-effect of metadata parsing.
2236
2237         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2238         (_MonoGenericClass.cached_class): Move here and rename from lone
2239         remaining field of ...
2240         (_MonoInflatedGenericClass): ... this.  Remove.
2241         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2242         to changes.
2243
2244         Fix mcs/tests/test-128.cs regression.
2245         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2246         2007-01-10 change below.
2247         [MONO_TYPE_OBJECT]: Recurse into array case.
2248
2249 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2250
2251         * class-internals.h (mono_get_inflated_generic_class): Remove.
2252         * class.c (mono_get_inflated_generic_class): Remove.
2253         (mono_generic_class_get_class): Rename from
2254         mono_class_create_generic.
2255         (mono_class_from_mono_type) [GENERICINST]: Use it.
2256         * reflection.c, metadata.c: Update to changes.  Use
2257         'mono_class_from_mono_type'.
2258
2259 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2260
2261         * reflection.c: use passed type when encoding an array element
2262         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2263
2264 2007-01-09  Robert Jordan  <robertj@gmx.net>
2265
2266         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2267         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2268         Fixes bug #80392.
2269
2270 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2271
2272         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2273
2274         * object.c (set_value): Avoid aliasing between type->data.klass
2275         and type->data.generic_class.
2276
2277         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2278
2279 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2280
2281         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2282         between type->data.klass and type->data.generic_class.
2283
2284 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2285
2286         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2287         value in out parameters.
2288
2289 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2290
2291         Simplify invariant for MonoGenericClass::klass field.
2292         * class.c (mono_class_create_generic): Verify 'klass' is null.
2293         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2294         initialize 'klass' field.
2295
2296 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2297
2298         Ongoing work to avoid redundant data and simplify invariants.
2299         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2300         'generic_class', and change type to a GenericInst.
2301         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2302         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2303
2304 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2305
2306         * class.c : skip io-layer under PLATFORM_WIN32.
2307
2308 2007-01-03  Tor Lillqvist  <tml@novell.com>
2309
2310         Fix #80305: In a bundled executable, look in the bundled exe
2311         assembly to determine the runtime version. Add the possibility to
2312         bundle also the machine.config file.
2313         
2314         * assembly.c (mono_assembly_open_from_bundle): Make
2315         non-static. Allow being called even if we have no bundled
2316         assemblies, and return NULL right away in that case.
2317
2318         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2319         here.
2320
2321         * domain.c (app_config_parse): Take an assembly exe file name as
2322         parameter instead of a config file name. Check for a bundled
2323         config file for that assembly by calling
2324         mono_config_string_for_assembly_file() (see below) before looking
2325         for one in the file system.
2326         (get_runtimes_from_exe): Corrsponding change to call of
2327         app_config_parse().
2328         (get_runtimes_from_exe): Check for bundled assembly exe file first
2329         by calling mono_assembly_open_from_bundle(). If no bundled
2330         assembly exe file is found, call mono_image_open() as before to
2331         look it up in the file system.
2332
2333         * mono-config.c: Add variable bundled_machinec_onfig.
2334         (mono_config_string_for_assembly_file): New function.
2335         (mono_config_for_assembly): Move code snippet that looks for a
2336         bundled assembly .config file into the above new function. Call
2337         it.
2338         (mono_register_machine_config, mono_get_machine_config): New
2339         functions to set and retrieve
2340
2341         * assembly.h: Declare mono_register_machine_config().
2342
2343         * mono-config.h: Declare mono_get_machine_config() and
2344         mono_config_string_for_assembly_file().
2345
2346         * icall.c: No declaration of environ necessary on Win32. It is
2347         declared (as a macro expanding to a function call) in stdlib.h.
2348         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2349         New internal mono function. Returns the value of
2350         mono_get_machine_config() as a Mono string.
2351
2352         * icall-def.h: Add get_bundled_machine_config().
2353
2354 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2355
2356         Remove redundant field
2357         * class-internals.h (_MonoGenericContext.container): Remove field.
2358         * loader.c (mono_method_get_signature_full): Don't parse a
2359         "container" for a signature parse when the signature is inflated
2360         immediately.
2361         (method_from_methodspec): Likewise, for a generic_inst.
2362         * class.c, metadata.c, reflection.c: Update to changes.
2363
2364 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2365
2366         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2367         'cached_context', and change semantics -- it starts off NULL, and
2368         is initialized on demand.
2369         * class.c (mono_generic_class_get_context): New accessor to
2370         replace 'context' field accesses.
2371         (mono_class_get_context): New helper.
2372         (*): Update to changes.
2373         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2374
2375 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2376
2377         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2378         before the memcpy.   Fixes Marshal2 regression.
2379
2380 2007-01-02  Jb Evain  <jbevain@gmail.com>
2381
2382         * blob.h: add a MONO_TYPE_ENUM definition
2383         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2384         fix the encoding of arrays of enums in custom attributes.
2385
2386         Fixes #79666.
2387
2388 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2389
2390         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2391         string is null terminated, but only cut the string short if it
2392         overflows the buffer.   
2393         
2394         (mono_string_to_byvalstr): Also fix this routine.   The code here
2395         was not properly terminating a string (it was only terminated
2396         because of the previous catch-all memset). 
2397
2398         I left the memset, because I do not know if applications expect
2399         the runtime to clear this region. 
2400
2401         Fixes #79944.
2402
2403         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2404         Clear the error before returning to unmanaged code to prevent the
2405         runtime from being confused later on (fixes  80420).
2406         (ves_icall_type_from_name): Always call mono_loader_clear_error
2407         after parsing a type that could have failed.
2408         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2409
2410         * loader.c (mono_loader_clear_error): Fix indentation.
2411
2412 2006-12-28  Martin Baulig  <martin@ximian.com>
2413
2414         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2415
2416 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2417
2418         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2419         getting a token for an EnumBuilder.
2420
2421 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2422
2423         * reflection.c: be more careful in case resource generation
2424         fails to create the data array.
2425
2426 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2427
2428         * sgen-gc.c: write barrier for clone and fix unregister handles.
2429
2430 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2431
2432         * reflection.c: some fixes needed in the generics code for the moving GC.
2433
2434 2006-12-22  Robert Jordan  <robertj@gmx.net>
2435
2436         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2437         account. Fixes bug #80299.
2438
2439 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2440
2441         Fix WaitHandle usage in delegates.
2442         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2443         * object.c (mono_wait_handle_new): Use the property set method to
2444         initialize the handle.
2445         (mono_wait_handle_get_handle): New.
2446         * threadpool.c (mono_async_invoke): Use it.
2447         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2448         Likewise.
2449         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2450
2451 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2452
2453         * marshal.c (emit_marshal): Call emit_marshal_variant and
2454         emit_marshal_com_interface when applicable.
2455         (emit_marshal_variant, emit_marshal_com_interface): Add
2456         methods for this case and remove if's from emit_marshal_object.
2457         
2458 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2459
2460         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2461
2462 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2463
2464         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2465         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2466         and GlobalFree on Windows. Remove FIXME.
2467
2468 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2469
2470         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2471         implementation for managed objects.
2472
2473 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2474
2475         * object.c: implemented code to be used for checking
2476         that no reference field overlaps with non-references.
2477
2478 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2479
2480         * threadpool.c: fix queue code to be compatible with the
2481         moving GC.
2482
2483 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2484
2485         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2486         in structures by throwing ArgumentNullException.
2487
2488         (emit_marshal_safehandle): Also when they are null parameters.
2489
2490         (emit_marshal_safehandle): Add support for ref
2491         SafeHandles parameters
2492
2493 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2494
2495         * profiler.c: updated to use the mono-dl API instead of
2496         gmodule.
2497
2498 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2499
2500         * profiler.c: updated to use the mono-dl dynamic loading
2501         API instead of gmodule.
2502
2503 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2504
2505         * profiler.c: use readlink, older versions of glib don't have
2506         g_file_read_link ().
2507
2508 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2509
2510         * profiler.c: try to detect the path to mono if libc fails to provide
2511         a useful name (bug #80286).
2512
2513 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2514
2515         Fix #80242
2516         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2517         instance, use the generic type definition instead.
2518         (ves_icall_Type_GetNestedTypes): Likewise.
2519         * class.c (mono_class_create_generic): Always set the
2520         nested_classes of a generic instance to NULL, even if the generic
2521         type definition has nested types.
2522
2523 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2524
2525         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2526         and fix on Linux.
2527         
2528 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2529
2530         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2531         my arguments were in the wrong order.   I also fixed the Windows
2532         version which seems to have had the same issue.
2533
2534         (mono_free_bstr): On Unix, this is g_free.
2535         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2536         conversions (for the tests in corlib to pass).
2537
2538 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2539
2540         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2541         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2542         exception if a ref SafeHandle in a struct has changed).
2543         
2544         (emit_struct_conv): Do not perform layout checks for classes
2545         derived from SafeHandle, as those are specially handled. 
2546
2547         (emit_object_to_ptr_conv): Add support for
2548         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2549
2550         (emit_marshal_safehandle): Implement conversion of return values
2551         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2552         
2553         * threads.c: WaitHandle now is compiled with two different handles
2554         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2555         for 2.0.
2556         
2557         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2558         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2559         these routines to cope with both kinds of fields.
2560
2561 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2562
2563         * metadata.c (mono_type_to_unmanaged): Handle the case where
2564         type->data.klass is a SafeHandle, and in that case, return the
2565         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2566         MONO_MARSHAL_CONV_SAFEHANDLE. 
2567
2568 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2569
2570         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2571         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2572         calling emit_marshal_object.
2573
2574         (emit_marshal_safehandle): Implement marshalling of
2575         SafeHandle parameters (no ref support yet).
2576
2577         (MarshalAction): Document the defines as I implement
2578         them for SafeHandle.
2579
2580         (emit_marshal_object): indentation police.
2581
2582         * class-internals.h: Define MonoSafeHandle.
2583         Add safehandle_class to MonoDefaults type.
2584
2585         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2586         list of classes to check for fields. 
2587
2588         * domain.c (mono_init_internal): Add SafeHandle to the list of
2589         mono_defaults loaded.
2590
2591 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2592
2593         Fix #80253
2594         * reflection.c (mono_reflection_bind_generic_parameters): If the
2595         generic type definition is a type builder, ensure that it is fully
2596         initialized before instantiating it.  Kill some dead code.
2597
2598 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2599
2600         * object.c: clear the loader_error () before loading
2601         more metadata stuff (bug #80258).
2602
2603 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2604
2605         * icall.c, icall-defs.h: type modifiers icalls for
2606         parameters and properties.
2607
2608 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2609
2610         * object.c, icall.c: fixed warnings.
2611
2612 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2613
2614         * marshal.c: fixed a couple of leaks and coding style in a few places.
2615
2616 2006-12-08  Dick Porter  <dick@ximian.com>
2617
2618         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2619         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2620         80173.
2621
2622 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2623
2624         * process.c: ProcessStartInfo may have only filename set and
2625         arguments can be NULL.
2626
2627 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2628
2629         * icall.c: fix leak found by Robert Jordan.
2630
2631 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2632
2633         * marshal.c, marshal.h: generate managed method to access an element
2634         of a multi-dimensional array.
2635
2636 2006-11-30  Paolo Molaro (lupus@ximian.com)
2637
2638         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2639
2640 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2641
2642         * icall.c: back out GetFields () fix until the serialization code is
2643         fixed to not depend on the incorrect behaviour.
2644
2645 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2646
2647         * profiler.c: provide defaults if none are set.
2648
2649 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2650
2651         * Makefile.am, attrdefs.h: new public header file with
2652         constants for attributes for use by embedders.
2653
2654 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2655
2656         * icall.c: GetFields () fix for bug #80064.
2657
2658 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2659
2660         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2661         removed long unused icalls.
2662
2663 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2664   
2665         * marshal.c: 
2666                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2667                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2668                 can be generated without a delegate class.
2669                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2670         
2671         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2672
2673 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2674
2675         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2676         #80069.
2677
2678 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2679
2680         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2681         icall-def.h: added icalls needed by System.GC.
2682
2683 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2684
2685         * loader.c: ensure the class in catch clauses is handled
2686         correctly for generics methods (fixes bug#79980).
2687
2688 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2689
2690         * monitor.h, monitor.c: added mono_locks_dump () function
2691         to help debug deadlocks involving managed locks.
2692
2693 2006-11-13  Dick Porter  <dick@ximian.com>
2694
2695         * file-io.c (get_file_attributes): If the file is a symlink try
2696         and get the stat data for the target, but also add the
2697         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2698         the specs for the windows symlink support, but will probably have
2699         to be reworked when I have test data from a vista machine.  Fixes
2700         bug 79887.
2701
2702 2006-11-13  Dick Porter  <dick@ximian.com>
2703
2704         * gc.c (mono_domain_finalize): 
2705         * marshal.c (mono_delegate_begin_invoke): 
2706         * threadpool.c (socket_io_init, mono_thread_pool_init)
2707         (mono_thread_pool_finish): 
2708         * monitor.c (mono_monitor_try_enter_internal): 
2709         * threads.c (mono_thread_resume, mono_thread_init)
2710         (mono_thread_suspend_all_other_threads)
2711         (mono_thread_execute_interruption): 
2712         * appdomain.c (mono_domain_unload): Check for NULL error returns
2713         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2714         75733.
2715
2716 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2717
2718         * process.c
2719         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2720         Only close the handle if the value of the handle is not
2721         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2722         robust.
2723
2724         Improvement for #75733, so that we do not run into this problem. 
2725
2726         
2727         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2728         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2729         internal variables.  Fixes #79462 
2730         
2731
2732 2006-11-09  Dick Porter  <dick@ximian.com>
2733
2734         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2735         Use poll() not select().  Fixes bug 79397.
2736
2737 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2738
2739         Fix #79872
2740         * assembly.c (mono_assembly_load_from_full): Check that the given
2741         image has an assembly manifest.
2742
2743 2006-11-09  Ankit Jain  <jankit@novell.com>
2744
2745         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2746         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2747         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2748
2749 2006-11-07  Dick Porter  <dick@ximian.com>
2750
2751         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2752         Put the old resolver behaviour back for pre-2.0 profiles.
2753
2754 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2755
2756         * threadpool.c: precise GC and locking fixes.
2757
2758 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2759
2760         * class.c: don't load types that have an explicit unaligned
2761         managed reference. Provide better info in the TypeLoad exception.
2762         Part of the fix for bug #79744.
2763         * object.c: use the correct check for class type load issues.
2764
2765 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2766
2767         * class.c: enforce alignment of fields with managed references
2768         even when Pack=1 is forced by the user (bug #77788).
2769
2770 2006-11-03  Dick Porter  <dick@ximian.com>
2771
2772         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2773         If the address reverse lookup fails, return it as the hostname
2774         anyway.  Fixes bug 79721.
2775
2776 2006-11-03  Dick Porter  <dick@ximian.com>
2777
2778         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2779         Fix build on Windows.
2780
2781 2006-11-02  Dick Porter  <dick@ximian.com>
2782
2783         * icall-def.h: 
2784         * object-internals.h: 
2785         * exception.c (mono_get_exception_thread_interrupted): 
2786         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2787         Fixes bug 74525.
2788
2789         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2790         Check for pending Thread.Interrupt.
2791
2792 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2793         * loader.c: Fixed bug 79684.
2794
2795 2006-10-27  Dick Porter  <dick@ximian.com>
2796
2797         * file-io.c (get_file_attributes): Force symlinks to directories
2798         to be returned as a regular file.  Fixes bug 79733.
2799 2006-10-26  Dick Porter  <dick@ximian.com>
2800
2801         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2802         CreateFile to open a directory then we need to set the
2803         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2804
2805 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2806
2807         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2808         friends.
2809
2810 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2811
2812         * sgengc.c: small cleanup of timer code.
2813
2814 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2815
2816         * sgen-gc.c: fix some warnings and start adding support for
2817         complete object removal on domain unload.
2818
2819 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2820
2821         * assembly.c: build_assembly_name should not consider a version
2822         number without build or revision number invalid. Fixes bug #79715.
2823
2824 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2825
2826         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2827         call kernel32 function OutputDebugString directly.
2828         
2829         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2830         
2831 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2832
2833         * reflection.c: small cleanup, using a function to insert a MonoString
2834         in the string heap.
2835
2836 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2837
2838         * reflection.c: moving GC fixes.
2839
2840 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2841
2842         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2843         all the objects with finalizers belonging to an unloading appdomain.
2844
2845 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2846
2847         * sgen-gc.c: added ability to allocate even when the nursery is fully
2848         pinned and fixed a couple of bugs.
2849
2850 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2851
2852         * threads.h: Revert the last change for now.
2853
2854         * threads.h (mono_thread_get_pending_exception): Rename this to
2855         mono_thread_get_undeniable_exception ().
2856
2857 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2858
2859         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2860         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2861         when fname does not refer to valid assembly. This result in a more
2862         meaningful error message.
2863         * exception.c: added mono_get_exception_bad_image_format2 which 
2864         constructs a BadImageFormatException using the ctor taking a custom
2865         message and the file name. Passing in a NULL msg results in a default
2866         message.
2867         * exception.h: define mono_get_exception_bad_image_format2 function.
2868         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2869         when file name pointed to an invalid IL image. Use 
2870         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2871         as this results in a more meaningful error message.
2872
2873 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2874
2875         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2876         #79465.
2877
2878 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2879
2880         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2881         consistency with the other _size functions.
2882         (mono_type_stack_size): Ditto.
2883
2884         * class.c object.c icall.c: Fix warnings caused by the above change.
2885
2886         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2887
2888         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2889
2890         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2891
2892 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2893
2894         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2895         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2896         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2897         threadpool.h, threads-types.h: mark more internal functions.
2898
2899 2006-10-11  Dick Porter  <dick@ximian.com>
2900
2901         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2902         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2903         reproduce the bug even before applying the fix.)
2904
2905 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2906
2907         * reflection.c: allow retrieving attributes for arguments in generic
2908         methods (bug #79241).
2909
2910 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2911
2912         * debug-mono-symfile.c: properly check fopen () result (found by
2913         coverity).
2914
2915 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2916
2917         * reflection.c: make error message clearer and fixed two
2918         issuelets found by Coverity.
2919
2920 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2921
2922         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2923
2924 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2925
2926         * object-internals.h, gc-internal.h, profiler-private.h:
2927         mark internal functions.
2928
2929 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2930
2931         * reflection.c: put data in the text section.
2932         * icall.c: recognize more types in type_from_typename ().
2933         * process.c, marshal.c: added some GC FIXMEs.
2934
2935 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2936
2937         * loader.c: check for NULL before initializing.
2938
2939 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2940
2941         * gc.c (finalizer_thread): Use a non-alertable wait here.
2942
2943         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2944         until the correct solution is found.
2945
2946 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2947
2948         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2949         modules with no metadata. Fixes #79596.
2950
2951         * image.c (load_metadata_ptrs): Put back the error message when
2952         the #- heap is encountered since the support is not complete yet.
2953
2954 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2955
2956         * gc.c: do not allow the user to SuppressFinalize () a
2957         delegate because it would leak the trampoline if present.
2958
2959 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2960
2961         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2962         PropertyPtr table.
2963
2964 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2965
2966         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2967
2968         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2969
2970         * row-indexes.h: Add definitions for *Ptr tables.
2971
2972         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2973
2974         * metadata.c (mono_metadata_translate_token_index): New helper function to
2975         translate table indexes used in uncompressed metadata.
2976         (mono_metadata_decode_table_row): Ditto.
2977         (mono_metadata_decode_table_row_col): Ditto.
2978
2979         * metadata.c: Add table schema for *Ptr tables.
2980
2981         * class.c loader.c: Use the new helper function to access the affected metadata
2982         tables.
2983         
2984         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2985         #38532.
2986         
2987 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2988
2989         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2990         sequences which can be unbounded in size. Fixes #79583.
2991
2992 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2993
2994         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2995         static initialization.
2996
2997         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2998
2999         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3000
3001         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3002
3003         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3004         ctor fails, i.e. throw the same exception on subsequent accesses.
3005         
3006 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3007
3008         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3009         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3010         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3011         Handle marshalling of interfaces and VARIANTs contained in structs.
3012         
3013         Code is contributed under MIT/X11 license.
3014         
3015 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3016
3017         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3018         
3019         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3020         mempool.
3021
3022 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3023
3024         * console-io.c: ignore previous SIGINT handler.
3025
3026 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3027
3028         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3029         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3030         #79460, #79461, #79485.
3031
3032         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3033
3034         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3035         #79217.
3036
3037 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3038
3039         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3040         could be generated from it.
3041
3042 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3043
3044         * rand.c: fix read loop to correctly handle EINTR.
3045
3046 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3047
3048         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3049         internal calls are defined to keep methods closer to the declaring
3050         type and allow a significant reduction in runtime relocations and
3051         memory usage.
3052
3053 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3054
3055         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3056         exception message to have FileNotFoundException use the default
3057         assembly load error message. Fixes bug #79426.
3058         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3059
3060 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3061
3062         * threadpool.c: (start_thread_or_queue) use the root domain when
3063         creating the thread instead of the async object one.
3064
3065 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3066
3067         * class.c, object.c, class-internals.h, reflection.c:
3068         for arrays, store element_size inside MonoClass (speedup
3069         for array object creation).
3070
3071 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3072
3073         * icall.c: fixed CodeBase to use the file name and not the module
3074         name (bug #79365).
3075
3076 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3077
3078         * mono-debug.c, mono-debug.h: export find_method as
3079         mono_debug_find_method ().
3080
3081 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3082
3083         * debug-helpers.c, class-internals.h: added a few functions useful
3084         when debugging under gdb.
3085
3086 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3087
3088         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3089         characters that need special handling.
3090
3091 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3092
3093         * mono-config.c: make the os/cpu specification more flexible,
3094         allowing lists and negation.
3095
3096 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3097
3098         * marshal.c: COM Interop fixes. Handle case where method->klass.
3099         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3100         calling convention on non-windows platforms. This is for
3101         compatibility with XPCOM and MainWin COM.
3102         
3103         Code is contributed under MIT/X11 license.
3104         
3105
3106 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3107
3108         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3109         correctly. Fixes #79217.
3110
3111         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3112
3113 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3114
3115         * mono-config.c: allow both an os and cpu attribute for dllmap
3116         and dllentry elemnets to enable a single config file to be used
3117         for multiple architectures.
3118
3119 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3120
3121         * loader.c: MonoLoaderError was cleared too soon on load failure.
3122         Fixes bug #79424.
3123
3124 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3125
3126         * icall.c: use the defining class vtable when accessing a
3127         static field, not a pobblibly derived class.
3128
3129 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3130
3131         * icall.c string-icalls.c: Remove references to unicode.h.
3132
3133         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3134
3135         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3136
3137         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3138         indicating the image where custom marshaller types should be looked up.
3139         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3140         custom marshallers, instead of corlib. Fixes #79425.
3141
3142 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3143
3144         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3145
3146 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3147
3148         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3149         Implement Environment.ProcessorCount.
3150         
3151         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3152         Implement Environment.ProcessorCount.
3153         
3154         * icall.c: 
3155         Add Environment.ProcessorCount icall.
3156         
3157         Patch by Jason McFall.
3158
3159 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3160
3161         * assembly.c: don't append .exe/.dll when the filename already contains
3162         one of those extensions.
3163
3164 2006-09-12  Martin Baulig  <martin@ximian.com>
3165
3166         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3167         to array interfaces.
3168
3169 2006-09-11  Martin Baulig  <martin@ximian.com>
3170
3171         * reflection.c (mono_image_build_metadata): Create the
3172         MethodImpl's after emitting all types and methods, so we don't
3173         need another fixup pass for them.
3174
3175 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3176
3177         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3178         change.
3179
3180 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3181
3182         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3183         unload.
3184
3185 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3186
3187         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3188         args is not set. Fixes #78926.
3189
3190 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3191
3192         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3193
3194         * image.c (load_class_names): Move this to class.c, and rename it to 
3195         'mono_image_init_name_cache'.
3196         (load_modules): Fix a warning.
3197
3198         * class.c icall.c image.c: Initialize image->name_cache lazily.
3199
3200         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3201         on its name using information in the AOT file.
3202
3203         * class.c (mono_class_from_name): Use the new hook function.
3204
3205 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3206
3207         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3208         correctly.
3209
3210         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3211         Fixes #79289.
3212         
3213 2006-09-06  Martin Baulig  <martin@ximian.com>
3214
3215         * icall.c (mono_lookup_internal_call): Small fix.
3216
3217 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3218
3219         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3220         double g_free.
3221
3222 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3223
3224         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3225         when --debug is specified.
3226
3227 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3228
3229         * class.c (setup_generic_array_ifaces): Fix a warning.
3230
3231 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3232
3233         * Temporarily remove the patch to assemly.c that checks the
3234         assembly versions as it breaks our gacutil.
3235
3236 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3237
3238         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3239
3240         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3241         a net 1.0 runtime.
3242
3243         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3244         created using the default ctor. Fixes #79152.
3245         (mono_string_builder_to_utf16): Ditto.
3246
3247 2006-09-01  Martin Baulig  <martin@ximian.com>
3248
3249         Fix handling of the generic array interfaces.
3250
3251         * class-internals.h
3252         (MonoDefaults): Removed `generic_array_class' and added
3253         `generic_ilist' class.
3254
3255         * class.c
3256         (mono_bounded_array_class_get): Add the new generic array interfaces.
3257         (setup_generic_array_ifaces): New static method; create vtable
3258         entries for each method in the generic array interfaces.
3259
3260         * metadata.c
3261         (select_container): Allow "parent-less" generic methods.
3262
3263         * marshal.c
3264         (mono_marshal_get_generic_array_helper): New public method.
3265
3266         * icall.c
3267         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3268         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3269         moved the interncall into System.Array.
3270
3271 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3272
3273         A few more cases of avoiding work on types with ->byref set.
3274         Has the real fix for #79238
3275         * icall.c (is_generic_parameter): New helper.
3276         (ves_icall_Type_GetGenericParameterPosition): Use it.
3277         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3278         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3279         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3280         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3281         reference types.
3282         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3283         reference types.
3284         (ves_icall_Type_get_IsGenericInstance): Likewise.
3285         (ves_icall_Type_get_IsGenericType): Likewise.
3286
3287 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3288
3289         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3290         class if possible.
3291
3292         * mempool.h (mono_mempool_get_allocated): New helper function.
3293
3294         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3295         change.
3296
3297         * mempool.c: Fix warnings and the calculation of stats.
3298
3299         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3300
3301         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3302
3303         * loader.c (mono_get_method_from_token): Update method_count stat.
3304
3305         * class-internals.h (MonoStats): Add some stats.
3306
3307 2006-08-31 Robert Jordan  <robertj@gmx.net>
3308
3309         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3310         with managed variants.
3311         All code is contributed under the MIT/X11 license.
3312         
3313 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3314
3315         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3316         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3317
3318         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3319
3320         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3321         with cycles in classes.
3322
3323         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3324
3325         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3326         missing a [MarshalAs] directive. Fixes #79203.
3327
3328         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3329         klass->marshal_info. Fixes #79217.
3330
3331 2006-08-30  Martin Baulig  <martin@ximian.com>
3332
3333         Committing a patch from Joachim Ante <joe@otee.dk>:
3334         Add support for binary data symbol stores.
3335
3336         * debug-mono-symfile.c
3337         (mono_debug_open_mono_symbol_file): Renamed into
3338         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3339         arguments.
3340
3341         * mono-debug.c
3342         (mono_debug_open_image): Added `raw_contents' and `size' args.
3343         (mono_debug_init_2_memory): New public function.
3344
3345 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3346
3347         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3348
3349 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3350
3351         * appdomain.c: implement support for ShadowCopyFiles.
3352
3353 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3354
3355         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3356         when value is NULL (and should remove CID #51).
3357
3358 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3359
3360         * image.c: moved 2 functions to ../utils.
3361
3362 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3363
3364         * gc.c: cope with the target object of a GC handle being NULL
3365         (bug #78877).
3366
3367 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3368
3369         * class.c: recursively check parent's explicit implementations
3370         of interface methods (fixes bug #79125).
3371
3372 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3373
3374         * filewatcher.c: Avoid warnings when building, do not redefine
3375         constants that are defined.
3376
3377         Remove warnings.
3378
3379 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3380
3381         * image.c: don't fail when the link points to an absolute path.
3382
3383 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3384
3385         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3386         Fix CID #3.
3387
3388 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3389
3390         * image.c (full_path): A new method used to obtain the actual path
3391         of an assembly even in the presence of symbolic links.  
3392
3393         This is necessary for the case where we are running a binary that
3394         has been GACed, but we are using the "published" path name
3395         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3396         file in the GAC.
3397
3398         This was the source of the failure for the `xsp' command with the
3399         recent AppDomain changes, as far as the runtime was concerned,
3400         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3401         $prefix/mono/gac/blah/version/blah.exe.
3402
3403         (do_mono_image_open): use full path
3404
3405 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3406
3407         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3408
3409 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3410
3411         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3412         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3413
3414 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3415
3416         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3417         small structures. Fixes #78990.
3418
3419 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3420
3421         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3422
3423         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3424
3425 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3426
3427         * appdomain.c:
3428         * marshal.c: don't load all the assemblies from a domain into newly
3429         created ones. The new domains might have different rules and load
3430         assemblies from different locations. Fixes bug #76757.
3431
3432         Patch by Lluis. Conflicts resolved by Brian Crowell.
3433
3434 2006-08-16  Alp Toker  <alp@atoker.com>
3435
3436         * socket-io.c: First half of the fix for #79084.
3437         Set sa_size to the length of the content, not that of the struct.
3438         Don't add NULL suffix to the content, this should be done in
3439         managed code if needed.
3440
3441 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3442
3443         Fix part of #79012
3444         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3445         mono_metadata_parse_type returns NULL.
3446
3447 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3448
3449         * normalization-tables.h : new file for string normalization data.
3450         * locales.c, locales.h, icall.c :
3451           added load_normalization_resource() for string normalization,
3452           and icall as well.
3453         * Makefile.am : added normalization-tables.h to the sources.
3454
3455 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3456
3457         * marshal.c: Add more helper functions to reduce code duplication and use them
3458         everywhere.
3459
3460 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3461
3462         * marshal.c: Fix non-x86 stdcall warnings.
3463         
3464         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3465         them everywhere.
3466
3467 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3468
3469         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3470         type check on multi-dimensional arrays. Fixes #79000.
3471
3472 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3473
3474         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3475         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3476         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3477         * class-internals.h: add is_com_object to class structure.
3478         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3479         null checks to COM object marshalling. Fix .ctor call on RCW.
3480         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3481         
3482         All code is contributed under the MIT/X11 license.
3483
3484 2006-08-09  Dick Porter  <dick@ximian.com>
3485
3486         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3487         racing mono_monitor_allocator_lock() somewhere, so don't delete
3488         the critical section for now.  Found by running and exiting
3489         monodevelop.
3490
3491 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3492
3493         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3494         (ves_icall_System_ComObject_FindInterface): Ditto.
3495         (ves_icall_System_ComObject_CacheInterface): Ditto.
3496
3497         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3498         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3499
3500 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3501
3502         * threadpool.c: treat pipes from process asynchronous reads as sockets
3503         when reading from them, so we get select/poll or epoll to wait for
3504         data.
3505
3506 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3507
3508         * loader.c: Fix a typo (CID #233) in the null check.
3509
3510 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3511
3512         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3513         Hopefully fixes #78949.
3514         
3515         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3516         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3517         bytes. Fixes #78972.
3518
3519 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3520
3521         * filewatcher.c: we need to set errno here.
3522
3523 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3524
3525         * filewatcher.c: let Win32Exception get the error value.
3526
3527 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3528
3529         * filewatcher.c: translate errno into win32 errors for Win32Exception
3530         to know what happened.
3531
3532 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3533
3534         * threadpool.c: Fix more warnings.
3535
3536         * assembly.c (search_loaded): Fix warnings.
3537
3538         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3539         (mono_async_invoke): Ditto.
3540
3541 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3542
3543         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3544         entries for __ComObject type in addition to ComImport types.
3545         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3546         about hash table.
3547         
3548         All code is contributed under the MIT/X11 license.
3549
3550 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3551
3552         * image.c: avoid tentative loading of modulerefs that contain
3553         no metadata (P/Invoke library names).
3554
3555 2006-07-28  Dick Porter  <dick@ximian.com>
3556
3557         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3558         mono_loader_lock() somewhere, so don't delete the critical section
3559         for now.  Found by running and exiting monodevelop.
3560
3561 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3562
3563         * filewatcher.c: define the inotify syscalls when we're building on
3564         linux and have sys/syscall.h. The build system might not have support
3565         for inotify but the target system might have it.
3566
3567 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3568
3569         * domain.c: Documentation updates.
3570
3571         * loader.c (mono_free_method): Do not release the method
3572         information if we are being profiled, as profilers will use this
3573         information at shut down to present some data to the user.
3574
3575         This is needed so that the profiler does not crash, as the
3576         profiler tends to keep MonoMethods around, and they might become
3577         invalid if we free these.
3578
3579         (mono_get_method_constrained): Return the original CIL stream
3580         method as well, so verification can be performed against it.
3581
3582 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3583
3584         * filewatcher.[ch]: support for inotify file system watcher.
3585         * icall.c: add new internal calls for the inotify file system watcher.
3586
3587 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3588
3589         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3590         #78888.
3591
3592 2006-07-20  Dick Porter  <dick@ximian.com>
3593
3594         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3595         warning.
3596
3597 2006-07-20  Dick Porter  <dick@ximian.com>
3598
3599         * threads.c (start_wrapper): Do the thread cleanup while we still
3600         hold a reference to its object.  Fixes bug 78123.
3601
3602 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3603
3604         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3605         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3606           "managed-to-managed".
3607         * icall.c: Redirect string constructors that take sbyte* to
3608           ves_icall_System_String_ctor_RedirectToCreateString.
3609         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3610           to CreateString () methods with matching signature.
3611         * reflection.c: Use original security informations for
3612           MONO_WRAPPER_MANAGED_TO_MANAGED.
3613         * security-manager.c: Use original security informations for
3614           MONO_WRAPPER_MANAGED_TO_MANAGED.
3615         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3616           that is a placeholder and only its address should be used.
3617         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3618           that is a placeholder and only its address should be used.
3619
3620 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3621
3622         Begin implementing COM Interop.
3623         * appdomain.c: Increment corlib version.
3624         * class.c: Set ComImport classes' parent to __ComObject.
3625         * loader.c: Mark cominterop methods as such.
3626         * domain.c: Add __ComObject class to MonoDefaults structure.
3627         * image.c: Add 2 hashtables to the image for COM Interop related methods
3628         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3629         using the mempool allocator
3630         
3631         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3632         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3633         declaration for mono_metadata_type_dup_mp.
3634         
3635         * debug-helpers.c: Added strings for two additional wrapper types
3636         * object.c: Create proxy objects for ComImport classes
3637         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3638         and added __ComObject class to MonoDefaults structure.
3639         
3640         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3641         MonoComInteropProxy and MonoComObject.
3642         
3643         * marshal.c: Added support for COM Interop
3644         (signature_cominterop): Converts managed signature to corresponding
3645         unmanaged COM signature.
3646         (cominterop_get_function_pointer): gets unmanaged function pointer via
3647         COM object vtable
3648         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3649         (cominterop_get_method_interface): returns interface type that method is defined on
3650         (mono_mb_emit_cominterop_call): emits native call to function pointer
3651         gotten from vtable
3652         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3653         that matches signature of unmanaged function.
3654         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3655         (cominterop_get_invoke): forwards call from proxy to __ComObject
3656         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3657         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3658         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3659         
3660         * marshal.h: Added Marshal icall declarations.
3661         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3662         so we can access them in finalizer
3663         
3664 2006-07-14  Dick Porter  <dick@ximian.com>
3665
3666         * object.c (mono_type_initialization_cleanup): Fix a race
3667         condition by temporarily commenting out the critical section
3668         deletion.
3669
3670 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3671
3672         * reflection.c (create_custom_attr): Fix some warnings.
3673         (create_custom_attr_data): Ditto.
3674         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3675         types. Fixes #78855.
3676
3677 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3678
3679         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3680
3681         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3682
3683 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3684
3685         * reflection.c (resolve_object): Add support for DynamicMethod.
3686
3687         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3688         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3689
3690 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3691
3692         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3693         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3694
3695 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3696
3697         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3698         Fixes #77888.
3699
3700 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3701
3702         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3703         slightly: remove a shadow local variable.
3704
3705 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3706
3707         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3708         definition that introduces the virtual function slot.
3709         Also fix Coverity #105.
3710
3711 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3712
3713         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3714         for dynamic assemblies. Fixes #78724.
3715
3716 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3717
3718         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3719         Fixes #78722.
3720
3721 2006-06-21  Martin Baulig  <martin@ximian.com>
3722
3723         * reflection.c
3724         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3725         fixes #76484.
3726
3727 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3728
3729         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3730
3731 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3732
3733         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3734         nor TYPEREFs.
3735         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3736         Inflate result if necessary.
3737         (mono_class_get_full): Remove old version.  Rename from
3738         'mono_class_get' and add 'context' argument.  Pass it to
3739         ..._create_from_typespec.
3740         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3741         (mono_ldtoken): Revert change below.
3742
3743 2006-06-20  Martin Baulig  <martin@ximian.com>
3744
3745         * class.c (mono_ldtoken): Don't pass the generic context to
3746         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3747
3748 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3749
3750         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3751         and later freeing it. Fixes #78638.
3752
3753 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3754
3755         * icall.c (mono_class_get_throw): Revert over-zealous error
3756         throwing, the caller for mono_class_get_throw will cope with
3757         errors when classes are not properly initialized already.
3758
3759         The code still copes with loader exceptions though.
3760
3761         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3762         
3763 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3764
3765         Fixes the `make run1' version of RuntimeAbort (to be commited,
3766         source is in Bugzilla).
3767         
3768         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3769         FALSE on class loading failure instead of returning true.
3770
3771         * class.c (mono_class_create_from_typedef): It is possible for
3772         mono_metadata_interfaces_from_typedef_full to fail if a class is
3773         not found, cope with this.
3774         
3775
3776 2006-06-14  Dick Porter  <dick@ximian.com>
3777
3778         * socket-io.c: 
3779         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3780         4.1.1
3781
3782 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3783
3784         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3785
3786 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3787
3788         * icall.c: Another fix for building mono in Visual Studio.
3789
3790 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3791
3792         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3793         
3794 2006-06-09  Martin Baulig  <martin@ximian.com>
3795
3796         * debug-mono-symfile.c: Put this back and really fix it this
3797         time. Sorry for all the trouble.
3798
3799 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3800
3801         * icall.c (mono_class_get_throw): Fix a warning.
3802         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3803         ReflectionTypeLoadException if needed. Fixes #78606.
3804
3805         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3806         (mono_class_init): Ditto.
3807
3808         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3809         ref_only exceptions.
3810         (mono_loader_clear_error): Make this work even if there is no error.
3811
3812 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3813
3814         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3815         Marshal.GetComSlotForMethodInfo using internal call.
3816
3817 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3818
3819         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3820         a function for signalling it.
3821
3822         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3823         a referenced assembly is not found.
3824
3825         * loader.c (mono_loader_error_prepare_exception): Add support for 
3826         LOADER_ERROR_ASSEMBLY. Fix formatting.
3827
3828 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3829
3830         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3831         for VARIANT marshalling on windows and increment corlib version
3832         since Variant struct was added.
3833
3834 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3835
3836         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3837         stack trace line information:
3838
3839         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3840         (Martin) when looking up B which is between A and C, return A not C.
3841
3842         Bug is #78573.
3843
3844         Thanks to Alexander Olk for tracking this down.
3845
3846 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3847
3848         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3849         
3850         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3851         avoid clobbering its value.
3852         (mono_string_to_lpstr): Fix a warning on windows.
3853
3854 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3855
3856         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3857
3858         * reflection.c loader.c: Removed references to 'dummy' flag.
3859
3860         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3861
3862         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3863         it gets GC tracking.
3864
3865         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3866         GC tracking.
3867         
3868         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3869
3870         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3871
3872         * appdomain.c: Bump corlib version.
3873
3874 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3875
3876         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3877         CEE_STIND_REF when working with object references.
3878
3879 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3880
3881         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3882         Fixes #78539.
3883
3884 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3885
3886         * loader.c (method_from_memberref): Fix argument value for
3887         mono_loader_set_error_method_load (I was passing the MonoClass
3888         instead of the class name char *).
3889
3890 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3891
3892         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3893         CEE_STIND_REF when working with object references.
3894
3895 2006-05-30  Martin Baulig  <martin@ximian.com>
3896
3897         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3898         mono_method_full_name() change and replace the ':' with a '.'
3899         here.
3900
3901 2006-05-30  Martin Baulig  <martin@ximian.com>
3902
3903         * debug-mono-symfile.c
3904         (mono_debug_symfile_lookup_location): Fix the algorithm:
3905         when looking up B which is between A and C, return A not C.
3906
3907 2006-05-29  Martin Baulig  <martin@ximian.com>
3908
3909         * mono-debug.h
3910         (MonoDebugMethodInfo): Make the typedef public.
3911         (MonoDebugSourceLocation): New public struct.
3912
3913         * mono-debug.c
3914         (mono_debug_source_location_from_address): Removed.
3915         (mono_debug_source_location_from_il_offset): Removed.
3916         (mono_debug_il_offset_from_address): Removed.
3917         (mono_debug_address_from_il_offset): Removed.
3918         (mono_debug_lookup_method): New public function.
3919         (mono_debug_lookup_source_location): New public function; replaces
3920         the old mono_debug_source_location_from_*() functions; see the
3921         inline documentation.
3922         (mono_debug_free_source_location): New public function.
3923         (mono_debug_print_stack_frame): New public function; see the
3924         inline documentation.
3925
3926         * debug-mono-symfile.c
3927         (mono_debug_find_source_location): Renamed into
3928         mono_debug_symfile_lookup_location(); only take a
3929         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3930         documentation.
3931         (mono_debug_find_method): Renamed into
3932         mono_debug_symfile_lookup_method().
3933
3934 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3935
3936         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3937         returned by mono_image_open_full ().
3938
3939         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3940         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3941         #78517.
3942
3943         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3944         #78518.
3945
3946 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3947
3948         * class.c (mono_class_from_typeref): handle missing images
3949         earlier, deals with bug #78418.   Refactor code; 
3950
3951         Fix a warning introduced in my previous commit (some stale code
3952         from before I revisited my patch).
3953
3954         * class.c (mono_class_create_from_typedef): On failure, remove the
3955         class from the MonoImage->class_cache as the class is not
3956         initialized;   Fixes the leak pointed out by Paolo.
3957
3958 2006-05-25  Dick Porter  <dick@ximian.com>
3959
3960         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3961         DeleteCriticalSections until I figure out which one may still be
3962         sometimes locked when mono_thread_cleanup is called.
3963
3964 2006-05-24  Dick Porter  <dick@ximian.com>
3965
3966         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3967         of mono_thread_manage and back into its own function, so it can be
3968         called after the finalizer thread has finished.
3969
3970         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3971
3972 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3973
3974         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3975         Fixes #78495.
3976
3977         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3978         with non-blittable elements.
3979         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3980
3981 2006-05-24  Martin Baulig  <martin@ximian.com>
3982
3983         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3984         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3985
3986         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3987         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3988         `mono_debugger_event_handler' to NULL.
3989
3990 2006-05-24  Martin Baulig  <martin@ximian.com>
3991
3992         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3993
3994 2006-05-24  Martin Baulig  <martin@ximian.com>
3995
3996         * mono-debug-debugger.h
3997         (mono_debugger_create_notification_function): Added
3998         `MonoCodeManager *' argument.
3999
4000 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4001
4002         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4003
4004 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4005
4006         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4007         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4008         implementation.
4009
4010 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4011
4012         * icall.c: precise GC support: objects can't be stored in unmanaged
4013         memory anymore, even if they are kept alive by other references: since
4014         they can move the GC needs to be able to always find them.
4015
4016 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4017
4018         * object.c: precise GC support for static fields. Support
4019         for moving GCs: write barriers and pinned allocation for interned
4020         strings.
4021
4022 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4023
4024         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4025         structure.
4026
4027 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4028
4029         * class.c, gc.c: sgen and precise GC updates.
4030
4031 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4032
4033         * marshal.h, marshal.c: added write barrier wrapper and precise type
4034         fixes.
4035
4036 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4037
4038         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4039         support.
4040
4041 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4042
4043         * reflection.c: precise and sgen GC updates.
4044
4045 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4046
4047         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4048
4049 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4050
4051         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4052
4053 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4054
4055         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4056         MONO_TYPE_OBJECT. Fixes #78462.
4057
4058 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4059
4060         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4061         and blittable types.
4062
4063 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4064
4065         * class.c (mono_class_get_exception_for_failure): Implement parts
4066         of a TODO: if the loader error is set (instead of the class
4067         error), we return a Loader exception that can be properly thrown
4068         elsewhere.
4069
4070         This was exposed by some Winforms 2.0 code that I tried to run
4071         (Atsushi pointed me to it).
4072
4073 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4074
4075         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4076         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4077         
4078         * marshal.c (emit_marshal_vtype): Add limited support for 
4079         UnmanagedType.LPStruct. Fixes #78427.
4080
4081         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4082         Applied a patch from kangaroo to fix #77523.
4083
4084 2006-05-17  Martin Baulig  <martin@ximian.com>
4085
4086         * threads.c
4087         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4088         (debugger_thread_created): Removed.
4089         (debugger_thread_exited): Removed.
4090
4091 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4092
4093         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4094
4095         * object-internals.h (MonoReflectionResource): Sync with managed version.
4096
4097 2006-05-12  Wade Berrier <wberrier@novell.com>
4098
4099         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4100
4101 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4102
4103         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4104         functions try to allocate from the image mempool.
4105
4106 2006-05-12  Dick Porter  <dick@ximian.com>
4107
4108         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4109
4110 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4111
4112         * object.c: The FieldGetter and FieldSetter methods require the full
4113         name of the class, not only the name. Fixes bug #78277.
4114
4115 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4116
4117         * loader.c (method_from_memberref): Do not pass the NULL klass to
4118         mono_loader_set_error_() methods.  Pass the non-NULL value
4119         (class). 
4120
4121 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4122
4123         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4124         (mono_assembly_close): Null out assembly->image->references after freeing it.
4125
4126         * image.c (mono_image_close): Free image->references.
4127         
4128         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4129
4130 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4131
4132         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4133         before checking if it's NULL (g_assert).
4134
4135 2006-05-10  Martin Baulig  <martin@ximian.com>
4136
4137         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4138         I thought I already killed that two months ago, but now it somehow reappeared.
4139
4140 2006-05-10  Martin Baulig  <martin@ximian.com>
4141
4142         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4143
4144 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4145
4146         * reflection.c: Allocate memory for dynamically created methods in the image
4147         mempools.
4148
4149 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4150
4151         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4152         don't use the ad pointer before checking if it's NULL (g_assert).
4153
4154 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4155
4156         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4157         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4158
4159         * marshal.c: Allocate all signatures from mempools.
4160
4161         * marshal.c: Allocate some more signatures from mempools.
4162
4163 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4164
4165         * object.c (mono_load_remote_field): The code used to provide a
4166         temporary variable for returning results if the user did not
4167         provide a result pointer.  But our temporary variable was allocted
4168         on the satck.
4169
4170         Fix calling code to always pass a result area.   Coverity ID 103.
4171
4172 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4173
4174         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4175         value, not the old. Fixes #78312.
4176         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4177
4178         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4179         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4180         per-image cache.
4181
4182         * assembly.c (mono_assembly_close): Free image->references.
4183
4184         * assembly.c (mono_assembly_names_equal): Fix a warning.
4185         (mono_assemblies_cleanup): Cleanup more global data.
4186
4187         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4188
4189         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4190         ptr_cache and image->modules.
4191
4192         * image.c (mono_image_init): Allocate array_cache lazily.
4193         
4194 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4195
4196         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4197         behavior was changed recently and has bad side effects.
4198
4199 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4200
4201         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4202         
4203         * assembly.c (mono_assembly_close): Remove a debug printf.
4204
4205         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4206
4207         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4208         to also allow for temporary references between mono_image_open ()/close ().
4209
4210         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4211
4212 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4213
4214         * marshal.c: Fix support for dynamic methods.
4215
4216         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4217
4218         * marshal.c (mono_marshal_cleanup): New cleanup function.
4219
4220         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4221         image mempools.
4222
4223         * class.c (mono_class_init): Fix leaking class->nested_classes.
4224
4225         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4226
4227         * image.c (mono_image_init): Initialize the new cashes.
4228
4229         * image.c (mono_image_close): Destroy the new cashes.
4230
4231         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4232
4233         * mempool.c (mono_mempool_strdup): New helper function.
4234
4235         * class-internals.h: Add prototype for mono_loader_unlock ().
4236
4237         * domain.c (mono_jit_info_table_find): Fix a warning.
4238         (mono_debugger_check_runtime_version): Ditto.
4239
4240         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4241         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4242         functions to these modules.
4243
4244         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4245         metadata modules.
4246         
4247         * marshal.c (mono_free_bstr): Fix a warning.
4248
4249         * assembly.c (mono_assembly_open_full): Fix another small leak.
4250
4251         * object.c: Fix some unload leaks in the remoting code.
4252
4253         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4254         function.
4255
4256         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4257
4258         * reflection.c: Fix some unload leaks in dynamic assemblies.
4259
4260 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4261
4262         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4263         * marshal.h: Add BSTR support on Win32
4264         * icall.c: Add BSTR icalls
4265         * metadata.h: Add BSTR enums
4266
4267 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4268
4269         Work to catch the crash from #76795 and turn it into an
4270         exception.   As I stubbed out pieces of the VisualBasic support,
4271         I found a number of places where the code was failing and I added
4272         checks to those places. 
4273         
4274         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4275         function return a status code.  If we fail to parse the signature
4276         from mono_metadata_parse_generic_inst, return FALSE.
4277
4278         * loader.c (mono_get_method_from_token): If we fail to load the
4279         method (mono_class_get) return NULL.   
4280
4281         * (method_from_memberref): Return NULL if we are unable to parse
4282         the method signature
4283
4284         (mono_loader_error_prepare_exception): Since we now use the
4285         loader_error flag internally to stop processing, and obtaining
4286         exceptions that might be thrown will walk this code path the
4287         proper way of going from a MonoLoaderError into a
4288         MonoException was convoluted.   This new routine encapsulates the
4289         process of turning the error into an exception and *clearing* the
4290         error afterwards.
4291         
4292 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4293
4294         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4295         with missing assemblies), and to cope with:
4296
4297                 * Missing fieldref from a non-existing assembly.
4298                 * Missing methodref from a non-existing assembly.
4299
4300         The first batch of work to address *some* of the issues from 76661.
4301         
4302         * object.c (mono_class_create_runtime_vtable): If we fail to
4303         initialize the class raise the exception here. 
4304
4305         * metadata.c (mono_class_get_overrides_full): If any methods fail
4306         to load return the failure to the caller.
4307
4308         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4309         flagging assemblies that failed to load.   
4310
4311         Do not crash if we are unable to load the assembly.
4312
4313         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4314         assemblies. 
4315
4316         * loader.c (mono_loader_set_error_type_load): Change the
4317         convention to always pass unallocated strings, so we make our own
4318         copies (I know our own code had duplicated strings before, but
4319         this keeps the normal conventions).
4320         (method_from_memberref): Call mono_loader_set_error_method_load
4321         for all possible failures of loading the class. 
4322         Remove assert, turn into a loader error.
4323
4324         (mono_loader_error_to_exception): Move this routine from mini
4325         (mini_loader_error_to_exception) there was no need to have that in
4326         mini. 
4327
4328         * class.c (mono_class_from_typeref): If we were not able to load
4329         the assembly with mono_assembly_load_reference, call the
4330         mono_loader_set_error_type_load to register the problem.
4331
4332         (mono_class_setup_fields): If we fail to load the type from
4333         mono_metadata_parse_type_full, call mono_class_set_failure and
4334         break from the loop.
4335
4336         If class->exception_type is set, we do not layout the fields as
4337         that might crash the runtime, and instead return (from breaking
4338         from the previous loop).
4339
4340         (mono_class_setup_vtable): This now returns a boolean indicating
4341         whether the table was properly setup.   The decision is driven by
4342         mono_class_get_overrides_full which might run into non-existing
4343         methods. 
4344         
4345         (mono_class_init): Returns TRUE on success or FALSE if there was a
4346         problem in loading the type (incorrect assemblies, missing
4347         assemblies, methods, etc).
4348
4349         When we call mono_class_setup_fields we also check for a potential
4350         error inside this call (either a class exception or a general
4351         loader exception).
4352
4353         (mono_class_create_from_typedef): If the parent fails to load
4354         (calling mono_class_get_full) return NULL.
4355         
4356         ** Important **
4357
4358         calls to mono_metadata_parse_type_full should be checked
4359         everywhere and set the mono_class_set_failure
4360         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4361
4362         The current patch checks the places where my manually constructed
4363         tests show the errors are showing up, but we should do it
4364         everywhere. 
4365
4366         ** Important2 **
4367
4368         mono_class_init return values should be tested everywhere, like
4369         the previous case this is something that we should audit
4370         everywhere and not only on the cases exposed by the tests I
4371         created. 
4372
4373 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4374
4375         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4376         boolean parameter and instead pass the information on `options'
4377         parameter (FileOptions).
4378
4379         * icall.c: Register the new signature for MonoIO.Open.
4380
4381         * debug-helpers.c (dis_one): Trying to understand how coverity
4382         works.  Fix Run 5, item 78.
4383
4384 2006-04-26  Dick Porter  <dick@ximian.com>
4385
4386         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4387         dereference.
4388
4389 2006-04-25  Martin Baulig  <martin@ximian.com>
4390
4391         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4392
4393         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4394         debugger_thread_created().
4395         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4396         special way.
4397         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4398         (mono_debugger_finalize_threads): New function; undo the effects
4399         of mono_debugger_init_threads().
4400         (mono_debugger_create_all_threads): Removed.
4401
4402 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4403
4404         * image.c (mono_image_close): Tidy up trace messages.
4405
4406         * assembly.c (mono_assembly_close): Ditto.
4407
4408         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4409         no longer references an already freed assembly. Fixes #78168.
4410
4411 2006-04-21  Dick Porter  <dick@ximian.com>
4412
4413         * threads.c (mono_thread_detach): Fix reference counting when
4414         detaching threads.
4415
4416 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4417
4418         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4419         #78155.
4420
4421 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4422
4423         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4424         (mono_type_to_stind): Ditto.
4425
4426         * marshal.c: Use the new helper functions to simplify code.
4427
4428         * image.c (mono_image_close): Add some code for help debug assembly unloading
4429         problems.
4430
4431         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4432         image mempool.
4433
4434         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4435         assembly was already loaded in another appdomain. Fixes #78083.
4436
4437 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4438
4439         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4440         referenced assemblies.
4441         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4442
4443         * domain.c (mono_domain_free): Add a trace message.
4444
4445         * appdomain.c (add_assemblies_to_domain): Ditto.        
4446
4447         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4448         field.  
4449
4450 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4451
4452         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4453
4454 2006-04-12  Martin Baulig  <martin@ximian.com>
4455
4456         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4457         `USE_INCLUDED_LIBGC'.   
4458
4459 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4460
4461         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4462         the patch contains ../ and a small directory name later. Hopefully fixes
4463         #78035.
4464
4465 2006-04-10  Martin Baulig  <martin@ximian.com>
4466
4467         Clean up the debugger's thread-handling code.
4468
4469         The debugger's thread-handling code has been moved from
4470         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4471         over the `threads' hash, keep track of exiting threads and also
4472         use proper locking.
4473
4474         We can now debug XSP and XSP based applications with the debugger.
4475
4476         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4477
4478         * threads.h
4479         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4480         (mono_install_thread_callbacks): Likewise.      
4481
4482         * threads.c (mono_thread_callbacks): Removed.
4483         (debugger_thread_created, debugger_thread_exited): New static functions.
4484         (start_wrapper): Call debugger_thread_created().
4485         (thread_cleanup): Call debugger_thread_exited().
4486         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4487         (mono_debugger_init_threads): New public function.
4488         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4489         iterate directly over the `threads' hash and also use proper locking.
4490
4491         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4492
4493         * mono-debug-debugger.h
4494         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4495
4496 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4497
4498         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4499         argument type=array. Fixes #78057.
4500
4501 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4502
4503         * culture-info-table.h : regenerated. Fixed bug #69652.
4504
4505 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4506
4507         * loader.c metadata.c: Reapply a variant r59116.
4508         
4509         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4510
4511         * class.c (mono_class_setup_interface_offsets): New internal function.
4512
4513         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4514         interfaces too. Fixes #77398.
4515
4516         * reflection.c (encode_cattr_value): Add support for 
4517         parameter type=object, argument type=array.
4518         (load_cattr_value): Ditto. Fixes #77916.
4519
4520         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4521         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4522
4523         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4524         a byval char array and CharSet is Ansi.
4525
4526         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4527
4528 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4529
4530         * metadata.c: Add some locking comments.
4531         
4532         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4533         mempool.
4534         (mono_metadata_free_method_signature): Don't free the signature itself.
4535
4536         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4537
4538         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4539         reference the same MonoImage.
4540         (mono_assembly_load_from_full): Add an assert.
4541
4542 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4543
4544         * image.c (mono_image_close): Don't put the image we are about to free into the
4545         loaded_images_guid_hash.
4546
4547         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4548         to reduce code duplication.
4549
4550         * marshal.c: Register the native functions called by this module as icalls, to
4551         somewhat centralize the creation of MonoMethodSignature's.
4552
4553         * loader.c (mono_method_signature): Add a cache for method signatures.
4554
4555         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4556         the parameter attributes of a method.
4557         (mono_metadata_parse_method_signature_full): Refactored the computation of
4558         parameter attributes into a separate function. Also avoid one allocation in
4559         most cases.
4560
4561         * assembly.c (mono_assembly_close): Ditto.
4562
4563         * image.c (mono_image_close): Log trace messages with INFO level.
4564
4565         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4566
4567         * image.c reflection.c: Correct reference counting of image modules.
4568         
4569         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4570         of this function from the image mempool.
4571         
4572         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4573         to allow more cached types to be used.
4574
4575         * mono-debug.c (mono_debug_add_method): Appled patch from
4576         David S. Miller  <davem@sunset.davemloft.net>: Access 
4577         minfo->lexical_blocks[] entry elements using read32().
4578
4579 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4580
4581         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4582         methods as it is allocated from the mempool.
4583
4584         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4585         image mempool.
4586
4587         * metadata-internals.h: Add comments describing the reference counting scheme
4588         used for MonoImage and MonoAssembly.
4589
4590         * image.c assembly.c reflection.c: Rework reference counting of images and 
4591         assemblies so they are freed when the runtime is shut down. Free some 
4592         additional memory structures when an image is unloaded.
4593         
4594 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4595
4596         * class.c loader.c reflection.c: Allocate more data structures in
4597         the image mempool.
4598
4599 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4600
4601         * icall.c
4602         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4603         build on pre glib 2.4 systems.
4604
4605 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4606
4607         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4608
4609         * icall.c: Fix some warnings.
4610
4611 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4612
4613         * culture-info-table.h : regenerated.
4614
4615 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4616
4617         * threads.c, object-internals.h, verify.c: changed the culture caching
4618         code to use a normal MonoArray for storage so the GC can keep track of
4619         them easily. Fixed bits of the cache logic, too and simplified the
4620         code.
4621
4622 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4623
4624         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4625         thread for non-Boehm GCs.
4626
4627 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4628
4629         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4630         needed to keep track of the data for static fields.
4631
4632 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4633
4634         Fix #75172
4635         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4636         for interface classes.  Use 'num_methods' instead.
4637         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4638         before using '->vtable_size' field.
4639
4640 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4641
4642         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4643         doesn't contain managed pointers, so use a normal hashtable.
4644
4645 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4646
4647         * reflection.c, class-internals.h, domain.c: fixed handling of types
4648         used as values for objects in custom attributes (bug #77915):
4649
4650 2006-03-24  Martin Baulig  <martin@ximian.com>
4651
4652         * class.c (mono_class_setup_fields): Added support for generic
4653         instances; fixes #77580.
4654
4655 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4656
4657         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4658
4659 2006-03-24  Dick Porter  <dick@ximian.com>
4660
4661         * file-io.c (get_file_attributes): More stat macro breakage.
4662         Fixes bug 77759.
4663
4664 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4665
4666         * profiler.c: added the file=filename option in the default profiler
4667         to output the profile data to filename.
4668
4669 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4670
4671         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4672         bug #77877.
4673
4674 2006-03-22  Martin Baulig  <martin@ximian.com>
4675
4676         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4677         allocated `MonoClassField *' in `fb->handle'.
4678
4679 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4680
4681         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4682         allocate interface ID to save memory and allow better ID reuse on
4683         appdomain unload. setup_generic_vtable () removal from Martin.
4684
4685 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4686
4687         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4688         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4689         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4690         write barriers for reference stores with managed objects accessed with
4691         C structures in the runtime and in embedding programs.
4692
4693 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4694
4695         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4696         'interface_id' and 'max_interface_id' fields of MonoClasses
4697         representing open generic types.
4698
4699 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4700
4701         * object.h, object.c, icall.c: added functions to deal with
4702         storing valuetypes that contain references in managed objects.
4703         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4704         fixes and comments around uses of mono_array_addr ().
4705
4706 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4707
4708         * object.h, icall.c, monitor.c: object.GetHashCode ()
4709         implementation that supports the moving garbage collector.
4710
4711 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4712
4713         * icall.c, threads-types.h, threads.c: implemented finalizer for
4714         LocalDataStoreSlot.
4715
4716 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4717
4718         * metadata.c (mono_type_size): Add a fixme.
4719         (mono_type_stack_size): Ditto.
4720
4721         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4722         'type_forwarders' field.
4723
4724         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4725         attribute from net 2.0.
4726
4727         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4728         from class.c.
4729
4730         * class.c (mono_class_setup_fields): Fix a warning.
4731         
4732         * class.c (mono_class_from_name): Add support for assemblyref entries
4733         in the EXPORTEDTYPE table.
4734
4735         * reflection.c: Add support for handling type forwarders under net 2.0.
4736
4737         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4738         
4739 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4740
4741         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4742         overwriting entries in ModuleBuild->types, also clean up the code
4743         a little. Fixes #77774.
4744
4745 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4746
4747         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4748         load friend assembly info when present.
4749
4750 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4751
4752         Fix crasher on gtest-158.cs.
4753         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4754         the return value if the MonoClass we want is yet in an
4755         inconsistent state.
4756         * class.c (mono_class_create_from_typedef): Add an comment
4757         explaining an order dependency between mono_class_setup_parent and
4758         mono_class_setup_mono_type.
4759
4760 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4761
4762         * class.c: documentation updates and events bug fix.
4763
4764 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4765
4766         * class.c: some cleanup, locking fixes.
4767
4768 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4769
4770         * class.c: fix the generics code to setup nested
4771         type info to the instantiated type (bug #77770).
4772
4773 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4774
4775         * marshal.c: fixed a few type correctness issues.
4776
4777 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4778
4779         * loader.c: the Set/Get/Addrtess array methods should be public.
4780
4781 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4782
4783         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4784         
4785         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4786         info->wrapper.
4787
4788 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4789
4790         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4791
4792         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4793
4794         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4795         (mono_mempool_alloc0): Ditto.
4796
4797 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4798
4799         * socket-io.c:
4800         (create_object_from_sockaddr): it was allocating 4 extra bytes
4801         for the AF_UNIX data. Fixes bug #77747.
4802
4803 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4804
4805         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4806
4807 2006-03-09  Dick Porter  <dick@ximian.com>
4808
4809         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4810         Fixes bug 76966 again.
4811
4812 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4813
4814         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4815         names from r57532
4816         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4817
4818 2006-03-07  Martin Baulig  <martin@ximian.com>
4819
4820         * object.c
4821         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4822
4823 2006-03-07  Martin Baulig  <martin@ximian.com>
4824
4825         * class.c
4826         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4827         regression introduced in r56970; see gtest-252.cs.
4828
4829         * loader.c (mono_get_method_constrained): Correctly handle generic
4830         methods; see gtest-253.cs.
4831
4832 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4833
4834         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4835
4836 2006-03-04  Martin Baulig  <martin@ximian.com>
4837
4838         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4839         compute the parent type at runtime, just like we're already doing
4840         it for interfaces.
4841
4842         * reflection.c
4843         (mono_reflection_bind_generic_parameters): Don't compute the
4844         parent type anymore.
4845
4846         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4847
4848 2006-03-04  Martin Baulig  <martin@ximian.com>
4849
4850         * mono-debug-debugger.h
4851         (mono_debugger_create_notification_function): Allocate memory at
4852         runtime and return a pointer to it.
4853
4854 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4855
4856         * assembly.c: Fix windows build.
4857         
4858         * assembly.c: Fix build.
4859
4860         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4861
4862         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4863         
4864 2006-03-03  Dick Porter  <dick@ximian.com>
4865
4866         * process.c
4867         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4868         Check parameters before dereferencing them.  Fixes Aaron's part of
4869         bug 77393.
4870
4871 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4872
4873         Fix performance regression.
4874         * loader.c (find_method_in_class): Add 'from_class' argument.
4875         Rename 'klass' argument to 'in_class'.  The signature is compared
4876         against the method in 'in_class', and the corresponding method is
4877         returned from 'from_class'.
4878         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4879         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4880         type definition and generic instantiation in parallel.
4881         (mono_get_method_constrained): Update to changes.
4882
4883 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4884
4885         * threads.c: make sure the domain is correct, too when doing
4886         mono_thread_attach ().
4887
4888 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4889
4890         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4891         windows. Fixes #77683.
4892
4893 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4894
4895         * object.h, *: introduced specific way to set elements of an array
4896         of references to be used as write barrier. Still need to audit the
4897         uses of mono_array_addr.
4898
4899 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4900
4901         * object-internals.h: New field to cache the assmebly name, patch
4902         from Tambet Ingo (tambet@ximian.com)
4903
4904 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4905
4906         * decimal.h, class-internals.h, metadata-internals.h,
4907         file-io.h: mark a few function declarations as internal, to
4908         reduce the number of PLT entries.
4909
4910 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4911
4912         * file-io.c: fix typo in warning message.
4913
4914 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4915
4916         * loader.c: on unix, lookup the "*A" version of a function
4917         if charset is auto as a second option before failing.
4918
4919 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4920
4921         * class.h (mono_class_inflate_generic_method): Revert to two
4922         argument version.
4923         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4924         (mono_class_inflate_generic_method_full): Add.
4925         * class.c (mono_class_inflate_generic_method_full): Rename from
4926         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4927         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4928         * loader.c, reflection.c: Update to changes.
4929
4930 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4931
4932         * icall.c: const fixes and small improvements.
4933
4934 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4935
4936         * threadpool.c: for asynchronous connect(), enable the same workaround
4937         for BSD 6 as for the Mac. Fixes bug #77637.
4938
4939 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4940
4941         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4942         formatted classes. Fixes #77524.
4943
4944 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4945
4946         * class.c (inflate_generic_type): Add a couple more
4947         micro-optimizations.
4948         (inflate_generic_context): Don't use the 'gmethod' from
4949         'inflate_with'.
4950         (mono_class_inflate_generic_method): If the method has generic
4951         parameters, but the passed-in context doesn't have a 'gmethod',
4952         create one.  Use the possibly simplified generic instantiation
4953         from the declaring class instead of the one passed in.
4954
4955 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4956
4957         Make generic method signature and method header handling lazy.
4958         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4959         (inflate_generic_header): Likewise.
4960         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4961         parameter to avoid inflating types.
4962         (mono_get_inflated_method): Empty out.
4963         * class.h (mono_class_inflate_generic_method): Update to changes.
4964         * loader.c (mono_get_method_from_token): Don't parse signature for
4965         generic methods, nor methods of generic classes.
4966         (mono_method_signature): Rename from 'mono_method_signature'.
4967         Inflate signature on demand.
4968         (mono_method_get_header): Inflate method header on demand.
4969         * reflection.c: Update to changes.
4970
4971 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4972
4973         * metadata.c (mono_metadata_inflate_generic_inst): If the
4974         instantiation is closed, don't bother expanding it in the new
4975         context.
4976         * class.c (inflate_generic_class): If the generic instantiation
4977         doesn't change after inflation, return the argument itself.
4978         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4979         Add bounds checks.
4980         (inflate_generic_context): If neither the generic class nor the
4981         generic method instantiations change, return the original context.
4982         * reflection.c (mono_method_get_object): Do
4983         'mono_get_inflated_method' before accessing the ->klass field.
4984         (inflate_mono_method): Don't create a MonoGenericMethod unless
4985         necessary.
4986         (inflate_method): Don't pass a constructed type as the declaring
4987         type of a methodbuilder.
4988
4989 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4990
4991         * object.c: fix memory overwrite.
4992
4993 2006-02-22  Dick Porter  <dick@ximian.com>
4994
4995         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4996         it doesn't work any more.
4997         (mono_threads_request_thread_dump): Fix unused variable warnings.
4998
4999 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5000
5001         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5002         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5003         the public header file.
5004
5005 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5006
5007         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5008
5009 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5010
5011         * class-internals.h, object.c: reduce the size of MonoVTable
5012         and store the interface_offsets array at negative offsets.
5013
5014 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5015
5016         * metadata.c: tweak table descriptors data structures to reduce
5017         size and runtime relocations.
5018
5019 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5020
5021         * marshal.c: fix some types and opcodes to be type-safe
5022         in marshaling wrappers.
5023
5024 2006-02-21  Ankit Jain  <jankit@novell.com>
5025
5026         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5027
5028 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5029
5030         * metadata.c (get_constraints): Relax debugging checks for monodis.
5031
5032 2006-02-21  Ankit Jain  <jankit@novell.com>
5033
5034         * metadata.c (mono_metadata_load_generic_params): Move the code
5035         checking for ambiguous generic params from here to mono/dis/get.c
5036         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5037
5038 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5039
5040         Fix assertion triggered when compiling nemerle.
5041         * class.c (mono_get_shared_generic_inst): Rename from
5042         get_shared_inst and make non-static.
5043         * loader.c (mono_get_shared_generic_method): New.  Used to create
5044         the MonoGenericContext-equivalent of a MonoGenericContainer.
5045         (mono_get_method_from_token): Initialize the 'context' field of
5046         the created MonoGenericContainer.
5047         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5048         * metadata.c (get_constraints): Add sanity check.
5049         * class-internals.h: Add new internal methods.
5050
5051         * reflection.c (verify_safe_for_managed_space): New sanity check.
5052         Currently checks that owner-less generic parameters aren't allowed
5053         in managed space.
5054         (mono_type_get_object): Use it.
5055         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5056         that are now in mono_type_get_object.
5057         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5058
5059 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5060
5061         * metadata.c (mono_type_create_from_typespec): Rename from
5062         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5063         argument and caching of types in the generic container.
5064         (unwrap_arrays, find_generic_param): Remove.
5065         * metadata-internals.h: Update.
5066         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5067
5068 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5069
5070         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5071
5072         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5073         return values. Fixes #77581.
5074
5075         * class.c (mono_fnptr_class_get): Switch name and name_space.
5076
5077         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5078         classes and add support for [In, Out] attributes.
5079         (mono_marshal_free_asany): Ditto. Fixes #77524.
5080
5081 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5082
5083         * class.c (mono_class_from_generic_parameter): Make more robust to
5084         incomplete MonoGenericContainers from monodis.
5085
5086 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5087
5088         * class-internals.h: added some more exception types.
5089         * class.c, metadata.c: added a few checks to handle missing
5090         types.
5091
5092 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5093
5094         Use owner-less generic-params some more.
5095         * class.c (my_mono_class_from_generic_parameter): Remove.
5096         (mono_class_from_generic_parameter): Handle null image,
5097         param->name and param->owner.
5098         (mono_class_from_mono_type): Update.
5099         (mono_class_create_from_typespec): Remove 'container' parameter.
5100         If that parameter is non-null, the result is always inflated by
5101         'mono_class_get_full' anyway.
5102         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5103         parameter.
5104         (mono_class_get_full): Update.
5105
5106         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5107         instance is not open, don't bother inflating.
5108         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5109         parse metadata for inflated classes.
5110         (_mono_class_get): Change GenericContext* parameter to
5111         GenericContainer*.
5112         (mono_class_create_from_typespec): Likewise.  Simplify, and
5113         implement trivially.  All the cases are handled in
5114         mono_class_from_mono_type.  Don't inflate returned class.
5115         (mono_class_get_full): Delegate GENERICINST optimization to
5116         inflate_generic_type.
5117         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5118
5119 2006-02-16  Dick Porter  <dick@ximian.com>
5120
5121         * socket-io.c (create_object_from_sockaddr): Fix typo.
5122         (create_sockaddr_from_object): Check array lengths before
5123         potentially accessing items off the end.
5124         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5125         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5126         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5127         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5128         length checks to avoid wraparound overflows.
5129         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5130         contents of the array of sockets
5131         (hostent_to_IPHostEntry2)
5132         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5133         Check return value of inet_ntop ().
5134         (addrinfo_to_IPHostEntry): Fix typo
5135
5136 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5137
5138         Type metadata parsing doesn't use generic-instantiation information.
5139         * metadata.c (mono_metadata_parse_array_full): Change
5140         MonoGenericContext* parameter to MonoGenericContainer*.
5141         (mono_metadata_parse_type_full): Likewise.
5142         (mono_type_create_from_typespec_full): Likewise.
5143         (mono_metadata_parse_mh_full): Likewise.
5144         (mono_metadata_parse_generic_inst): Likewise.
5145         (do_mono_metadata_parse_generic_class): Likewise.
5146         (do_mono_metadata_parse_type): Likewise.
5147         * metadata-internals.h: Update to changes.
5148         * class.c (mono_class_find_enum_basetype): Likewise.
5149         (mono_class_setup_fields): Likewise.
5150         (mono_class_create_from_typespec): Likewise.
5151         * loader.c (method_from_methodspec): Likewise.
5152         (mono_get_method_from_token): Likewise.
5153         (mono_method_get_header): Likewise.
5154
5155 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5156
5157         * marshal.c: handle additional GENERICINST case (patch from
5158         Thong Nguyen <tum@veridicus.com>).
5159         Fix a few cases where LDIND_I/STIND_I was used for references.
5160
5161 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5162
5163         * reflection.c (mono_reflection_get_token): Remove unused variable.
5164
5165 2006-02-16  Martin Baulig  <martin@ximian.com>
5166
5167         * reflection.c (mono_reflection_get_token): Add support for fields
5168         in instantiated generic types.
5169
5170         * icall.c
5171         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5172
5173 2006-02-15  Martin Baulig  <martin@ximian.com>
5174
5175         * icall.c
5176         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5177         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5178         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5179         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5180
5181 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5182
5183         * class.c, metadata.c, metadata.h, object.c, icall.c,
5184         marshal.c: changed mono_type_get_underlying_type () to do
5185         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5186         Fixed handling of instantiated generic valuetypes (bug #75479).
5187
5188 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5189
5190         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5191         Delegate to mono_metadata_decode_value, and work on the returned value.
5192
5193         * icall.c (ves_icall_MonoType_GetGenericArguments):
5194         Add consistency check here too.
5195         
5196 2006-02-15  Ankit Jain  <jankit@novell.com>
5197
5198         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5199         char/short etc.
5200
5201 2006-02-15  Ankit Jain  <jankit@novell.com>
5202
5203         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5204         signed values, used only for representing lower bounds of arrays.
5205         (mono_metadata_parse_array_full): Use new
5206         mono_metadata_decode_signed_value to decode lower bounds.
5207
5208 2006-02-14  Martin Baulig  <martin@ximian.com>
5209
5210         * reflection.c
5211         (mono_reflection_get_token): Support "MonoGenericMethod" and
5212         "MonoGenericCMethod" and allow generic instances / methods.
5213
5214 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5215
5216         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5217         to obtain the terminal size using an ioctl.
5218
5219         * object.c (mono_nullable_init): Revert this as nullable reference
5220         types are not valid.
5221         (mono_nullable_box): Ditto.
5222
5223 2006-02-09  Dick Porter  <dick@ximian.com>
5224
5225         * threads.c (mono_thread_detach): Drop a reference to the thread
5226         we're detaching.
5227
5228 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5229
5230         * object.c (mono_nullable_init): Handle nullable reference types.
5231         (mono_nullable_box): Ditto. Fixes #77446.
5232
5233 2006-02-07  Martin Baulig  <martin@ximian.com>
5234
5235         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5236
5237 2006-02-07  Ankit Jain  <jankit@novell.com>
5238
5239         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5240         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5241         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5242         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5243         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5244         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5245
5246 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5247
5248         * class.c (mono_class_create_generic): Set type_token as well.
5249
5250         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5251         compatible with MS.
5252
5253 2006-02-02  Martin Baulig  <martin@ximian.com>
5254
5255         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5256         has never been used so far.
5257
5258 2006-02-02  Martin Baulig  <martin@ximian.com>
5259
5260         * mono-debug-debugger.h: Changed comment at the top of this file;
5261         the header is not installed, but it's safe to #include it from
5262         within the JIT.
5263
5264         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5265         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5266
5267 2006-02-02  Martin Baulig  <martin@ximian.com>
5268
5269         * mono-debug.h
5270         (MonoSymbolTable): Removed the `metadata_info' field.
5271
5272         * mono-debug.c
5273         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5274
5275         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5276         (mono_debugger_add_builtin_types): Removed.
5277         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5278         (mono_debugger_create_notification_function): We now operate on a
5279         pre-allocated area; take a `gpointer' and return `void'.
5280
5281         * mono-debug-debugger.c
5282         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5283         (mono_debugger_add_builtin_types): Removed.
5284
5285 2006-02-02  Martin Baulig  <martin@ximian.com>
5286
5287         * threads.c (mono_debugger_create_all_threads): New public method.
5288
5289 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5290
5291         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5292         breaks on several platforms.
5293
5294 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5295
5296         * assembly.c: the VS.NET build doesn't supply default values for
5297         MONO_ASSEMBLIES and MONO_CFG_DIR.
5298
5299 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5300
5301         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5302         helper function.
5303
5304         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5305
5306         * loader.c (method_from_memberref): Fix a warning.
5307
5308         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5309
5310         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5311         with explicit layout. Fixes #77433.
5312
5313 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5314
5315         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5316         max_interface_id is initialized before using it. Fixes #77398.
5317         (ves_icall_Type_GetInterfaces): Ditto.
5318
5319 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5320
5321         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5322         allocate memory for parameter attributes when parsing memberref
5323         signatures.
5324         * loader.c (mono_loader_set_error_method_load): Don't warn.
5325         (method_from_memberref): Ensure MissingMethodException gets thrown
5326         if method is not found.  Make warning more informative.
5327
5328 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5329
5330         Fix #77397
5331         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5332         return true if is byref.
5333         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5334         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5335         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5336
5337 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5338
5339         Fix tests/find-method.2.il
5340         * loader.c (find_method, find_method_in_class): Remove is_inflated
5341         argument.  Revert 2006-01-18 change.
5342         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5343         is generic, search for method in its generic definition.
5344         * class.c (mono_class_setup_vtable_general): Print generic
5345         arguments of generic types in debugging printf.
5346
5347 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5348
5349         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5350
5351         * threads.c (mono_threads_request_thread_dump): New helper function.
5352
5353 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5354
5355         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5356
5357 2006-01-25  Ankit Jain  <jankit@novell.com>
5358
5359         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5360         move definition to ..
5361         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5362         
5363 2006-01-25  Ankit Jain  <jankit@novell.com>
5364             Raja R Harinath  <rharinath@novell.com>
5365
5366         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5367         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5368         as necessary.
5369
5370 2006-01-25  Martin Baulig  <martin@ximian.com>
5371
5372         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5373         `MonoDebuggerThread' into debug-debugger.c.
5374
5375 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5376
5377         * profiler.c: fix printing of data.
5378
5379 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5380
5381         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5382           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5383
5384 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5385
5386         * object.c: fix deadlock related to string interning.
5387
5388 2006-01-23  Martin Baulig  <martin@ximian.com>
5389
5390         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5391
5392         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5393
5394 2006-01-23  Martin Baulig  <martin@ximian.com>
5395
5396         * mono-debug.h: Moved the prototypes of some functions which are
5397         used by the JIT here from mono-debug-debugger.h.
5398
5399 2006-01-21  Martin Baulig  <martin@ximian.com>
5400
5401         * Makefile.am: Don't install mono-debug-debugger.h.
5402
5403 2006-01-21  Martin Baulig  <martin@ximian.com>
5404
5405         * mono-debug-debugger.h: Enforce the private status of this header
5406         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5407         Moved some stuff from mono-debugger-jit-wrapper.h here.
5408
5409 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5410
5411         * class.c (mono_class_from_typeref): Add a sanity test to help
5412         catch lack of assembly load/search hooks.
5413
5414 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5415
5416         * marshal.c (emit_struct_conv): Relax the fields with same offset
5417         check even more. Fixes #77230.
5418
5419 2006-01-18  Martin Baulig  <martin@ximian.com>
5420
5421         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5422         argument; if false, we compare the uninstantiated signatures.
5423         (method_from_memberref): Compare the uninstantiated signatures;
5424         fixes #76417.
5425
5426 2006-01-18  Robert Jordan  <robertj@gmx.net>
5427
5428         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5429         Clear the weak link. Fixes bug #77170.
5430
5431         * gc.c (mono_gchandle_free):
5432         Reflect *-gc.c changes (tiny optimization).
5433
5434 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5435
5436         * metadata.c (mono_metadata_signature_dup): Applied patch from
5437         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5438         Fixes #77288.
5439
5440 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5441
5442         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5443         marshalling from native to managed code. Fixes #77230.
5444
5445 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5446
5447         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5448         connect. Fixes bug #77020.
5449
5450 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5451
5452         * class.c: fixed id assignement for nested interfaces (bug #77275).
5453         Added also better info for --print-vtable debugging.
5454
5455 2006-01-12  Martin Baulig  <martin@ximian.com>
5456
5457         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5458         interfaces on-the-fly; fixes #76625.
5459
5460         * class-internals.h
5461         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5462         don't need that anymore.
5463
5464 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5465
5466         * socket-io.c
5467         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5468         To avoid initing the nested_classes when not needed I turned the
5469         PeerCredData as a toplevel internal class, as it has to be shared
5470         anyways. 
5471
5472         Fixes the CASA issue.
5473
5474 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5475
5476         * domain.c: Accessors for MonoJitInfo
5477
5478         * profiler-private.h: Add jitinfo to the end jit hook
5479
5480         * profiler.[ch]: Define new hooks, called after jitting which give
5481         the MonoJitInfo that was compiled
5482
5483 2006-01-10  Martin Baulig  <martin@ximian.com>
5484
5485         * class.c (mono_class_setup_events): Add support for generic
5486         classes; fixes #76440.
5487
5488 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5489
5490         Fix #77160.
5491         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5492         on passed-in method.
5493
5494 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5495
5496         * object.c (mono_runtime_invoke_array): Add Nullable support.
5497
5498         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5499
5500 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5501
5502         * file-io.c: Don't consider sockets as directory and avoid an endless
5503         loop. Fix bug #76966.
5504
5505 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5506
5507         * object.c (mono_nullable_init): New helper function.
5508         (mono_nullable_box): Ditto.
5509
5510         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5511
5512         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5513
5514         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5515         
5516 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5517
5518         * class.c (mono_class_is_assignable_from): Make T assignable to 
5519         Nullable<T>.
5520
5521 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5522
5523         * appdomain.c: Bump corlib version to 46.
5524         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5525         serialization purpose) and changed ves_icall_System_Reflection_
5526         Assembly_get_code_base signature to accept a boolean (to escape, or 
5527         not, the assembly code base).
5528
5529 2005-12-23  Dick Porter  <dick@ximian.com>
5530
5531         * icall.c: 
5532         * threads-types.h: 
5533         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5534         CreateEvent icall now returns "created" boolean parameter.
5535
5536 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5537
5538         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5539         #76967.
5540
5541         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5542         when attr_klass is an interface. Fixes #77045.
5543
5544 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5545
5546         * marshal.c (emit_struct_conv): Fix previous patch.
5547         
5548         * marshal.c (emit_struct_conv): Add a check for fields with the same
5549         offset.
5550
5551 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5552
5553         Fix regression in Mono.C5.
5554         * class.c (mono_class_create_generic): If 'klass' is an interface
5555         set up the interface offsets.
5556         (mono_class_is_assignable_from): Don't throw away generic arguments.
5557
5558 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5559
5560         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5561         type parameters.
5562
5563 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5564
5565         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5566         dead store.
5567         (do_mono_metadata_parse_generic_class): Don't pass the current
5568         generic context when parsing the type being instantiated: it
5569         cannot use it, anyway.
5570
5571         * loader.c (method_from_memberref): Don't inflate a signature if
5572         it doesn't contain any type parameters.
5573
5574 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5575
5576         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5577
5578 2005-12-14  Martin Baulig  <martin@ximian.com>
5579
5580         * class.c
5581         (mono_type_get_name_recurse): Don't return null for type
5582         parameters and open generic classes.
5583         (mono_class_setup_methods): Don't exclude generic instances.
5584         (mono_get_unique_iid): Use different IDs for different
5585         instantiations of the same generic type.
5586         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5587         open generic instances; create a normal vtable for closed generic
5588         instances.
5589         (mono_class_setup_vtable_general): We're now also called for
5590         closed generic instances.
5591
5592         * reflection.c
5593         (mono_reflection_bind_generic_parameters): Correctly use
5594         mono_metadata_lookup_generic_inst() everywhere.
5595
5596 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5597
5598         * object.c (mono_class_create_runtime_vtable): Call 
5599         mono_class_setup_vtable ().
5600
5601         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5602         function.
5603         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5604         #76959.
5605
5606         * loader.c (mono_loader_set_error_type_load): Print the type load
5607         warnings to the console so they are more visible to the user.
5608         (mono_loader_set_error_method_load): Ditto.
5609
5610         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5611         is still broken.
5612         
5613         * reflection.c (ensure_runtime_vtable): Fix build.
5614
5615         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5616         doesn't work in all cases.
5617
5618 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5619
5620         * object.c (mono_array_new_full): Treat a single dimensional array
5621         with 0 lower bounds as an szarray. Fixes #76973.
5622
5623         * reflection.c (custom_attr_visible): Really fix this.
5624
5625 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5626
5627         * reflection.c (custom_attr_visible): Allow nested public attributes
5628         as well.
5629
5630         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5631         interface check.
5632
5633 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5634
5635         * class.c (set_generic_param_owner): Delete.
5636         (mono_class_create_from_typedef): Don't set ->owner field of
5637         generic parameters to "param containers" of enclosing classes.
5638         * reflection.c (mono_reflection_initialize_generic_parameter):
5639         Likewise.
5640
5641 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5642
5643         * reflection.c (custom_attr_visible): Fix build.
5644
5645 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5646
5647         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5648         private attributes.
5649         
5650         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5651         handling of null parameter defaults.
5652
5653 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5654
5655         * class.c (mono_class_from_generic_parameter): Don't set
5656         klass->generic_container.
5657         (my_mono_class_from_generic_parameter): Likewise.
5658
5659 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5660
5661         * reflection.c (load_public_key): Fix a warning.
5662         (method_encode_code): Fix unaligned accesses.
5663
5664 2005-12-07  Martin Baulig  <martin@ximian.com>
5665
5666         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5667
5668         * reflection.c
5669         (write_generic_param_entry): Encode our custom attrs.
5670
5671         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5672
5673 2005-12-07  Martin Baulig  <martin@ximian.com>
5674
5675         * reflection.c (encode_new_constraint): Removed; we don't use the
5676         `NewConstraintAttribute' anymore.
5677
5678 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5679
5680         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5681         not fire a TypeResolve event when Assembly.GetType () is called.
5682
5683 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5684
5685         Beginning of support for nullable types in the runtime. Parts of
5686         this patch are from Martin.
5687
5688         * appdomain.c (MONO_CORLIB_VERSION): Bump
5689
5690         * domain.c (mono_init_internal): get the nullable type
5691
5692         * class.c (mono_class_is_nullable): New method
5693         (mono_class_get_nullable_param): New mehod
5694         (mono_class_create_generic): In types T? set cast_class to T
5695
5696         * class-internals.h (MonoDefaults): new nullable default class
5697         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5698         new methods.
5699
5700 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5701
5702         * metadata.c (select_container): New.  Refactor code to select the
5703         appropriate GenericContainer given the type of generic parameter
5704         we are looking for.
5705         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5706         not a MonoGenericContext.  Use select_container.  Update parameters.
5707         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5708         and MONO_TYPE_MVAR.
5709         (unwrap_arrays): Remove duplicate tests.
5710         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5711         generic instantiated class to find any arguments that are generic
5712         parameters.
5713         (mono_type_create_from_typespec_full): Use find_generic_param to
5714         avoid evicting some generic instantiations from the typespec
5715         cache.
5716
5717 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5718
5719         * reflection.c: fixed writing of doubles on ARM FPA.
5720
5721 2005-12-02  Robert Jordan  <robertj@gmx.net>
5722
5723         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5724
5725 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5726
5727         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5728         least on SUSE 10 they are not the same (on debian, they are just the
5729         same thing).
5730
5731 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5732
5733         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5734         DeclaringType for VARs and MVARs.
5735         * class.c (set_generic_param_owner): Fix initialization of owner
5736         fields.
5737
5738 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5739
5740         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5741
5742 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5743
5744         * threadpool.c: workaround for a bug that shows up on the Mac:
5745         select()+connect() on a blocking socket is not like it should
5746         be, so we proceed to connect() in that case, wasting the I/O
5747         threadpool thread until connect succeedes. Fixes bug #75436.
5748
5749 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5750
5751         * threadpool.c: fix typo when setting file descriptor states.
5752
5753 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5754
5755         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5756         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5757         create a temporary signature container.
5758         (mono_metadata_parse_generic_param): Update to changes.
5759         (mono_type_create_from_typespec_full): Update to changes.
5760         * loader.c (method_from_memberref): Don't use a
5761         MonoGenericContainer while parsing a memberref signature.
5762         (method_from_methodspec): Remove dead-store of the 'container'
5763         variable.  It's overwritten before use.
5764
5765         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5766         checks tighter.
5767         (mono_metadata_parse_generic_param): Likewise.
5768         * loader.c (find_method_in_class): Does not need a
5769         MonoGenericContainer.  Use 'mono_method_signature' rather than
5770         'mono_method_signature_full'.
5771         (find_method, mono_get_method_constrained, method_from_memberref):
5772         Update to changes.
5773
5774         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5775         owner-less generic-parameters are never evicted from the typespec
5776         cache.
5777
5778         * loader.c (method_from_memberref): Don't use the current context
5779         when parsing signatures.
5780         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5781
5782         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5783         side-effects in g_assert.
5784         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5785         that we don't potentially lose information.
5786
5787 2005-11-26  Dick Porter  <dick@ximian.com>
5788
5789         * icall.c:
5790         * threads.c: icalls to implement basic (ie, not named)
5791         System.Threading.Semaphore.
5792
5793 2005-11-24  Dick Porter  <dick@ximian.com>
5794
5795         * process.c
5796         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5797         Use GetProcessId() if it's available.
5798
5799 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5800
5801         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5802
5803 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5804             Ankit Jain  <jankit@novell.com>
5805
5806         * loader.c (mono_get_method_from_token): Initialize 'method' field
5807         of all generic parameters before parsing the signature.  Remove
5808         code that "fixed"-up MVAR references.
5809
5810 2005-11-23  Ankit Jain  <jankit@novell.com>
5811
5812         * metadata.c (mono_metadata_has_generic_params):
5813         (mono_metadata_load_generic_param_constraints):
5814         (mono_metadata_load_generic_params): Move duplicate code ...
5815         (mono_metadata_get_generic_param_row): ... here. Returns the
5816         first row-id in GenericParam table for a given owner (token).
5817         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5818         prototype.
5819
5820 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5821             Ankit Jain  <jankit@novell.com>
5822
5823         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5824         comparing VARs too.
5825         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5826         type->data.generic_param only if the type is an MVAR.
5827         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5828         leak owner-less VARs and MVARs into managed space.
5829
5830 2005-11-21  Martin Baulig  <martin@ximian.com>
5831
5832         * class-internals.h
5833         (MonoMethod): Moved the `generic_container' here from
5834         `MonoMethodNormal' since we now also need it for
5835         `MonoMethodPInvoke';
5836         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5837         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5838         an union containing both `MonoMethodNormal' and
5839         `MonoMethodPInvoke'.
5840
5841         * loader.c
5842         (mono_get_method_from_token): Allow implementing generic methods
5843         as interncalls.
5844
5845         * threads.c
5846         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5847         icall.
5848
5849 2005-11-17  Dick Porter  <dick@ximian.com>
5850
5851         * icall.c: 
5852         * process.h: 
5853         * process.c: Split the Process Start_internal icall into
5854         ShellExecuteEx_internal and CreateProcess_internal, which are
5855         called depending on whether UseShellExecute is true.  Fixes bug
5856         76670.
5857
5858         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5859
5860 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5861
5862         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5863         'msize' parameters, use the information in 'mspec' instead.
5864         (emit_object_to_ptr_conv): Ditto.
5865
5866         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5867         fields out of order. Fixes #76733.
5868
5869 2005-11-17  Ankit Jain  <jankit@novell.com>
5870
5871         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5872
5873 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5874
5875         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5876           bug #76575.
5877
5878 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5879
5880         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5881         for types with non-auto layout. Fixes #76717.
5882
5883 2005-11-16  Ankit Jain  <jankit@novell.com>
5884
5885         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5886         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5887         if generic_context is null.
5888           (mono_metadata_generic_param_equal): param->owner can be null.
5889           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5890         null.
5891
5892 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5893
5894         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5895         the correct value.
5896
5897 2005-11-15  Martin Baulig  <martin@ximian.com>
5898
5899         * object.c (set_value): Use mono_class_from_mono_type() instead of
5900         the hack for generic instances; fixes #76136.
5901
5902 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5903
5904         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5905         fields.
5906
5907         * image.c (load_metadata_ptrs): Initialize the new fields.
5908
5909         * reflection.c (create_dynamic_mono_image): Ditto.
5910
5911         * reflection.c (build_compressed_metadata): Use the new fields.
5912
5913         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5914         icall.
5915
5916         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5917         icall.
5918         
5919 2005-11-15  Ankit Jain  <jankit@novell.com>
5920             Raja R Harinath  <harinath@gmail.com>
5921
5922         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5923         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5924         new per-generic_container cache if the cached MonoType's context matches
5925         the current context.
5926           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5927         to the expected context.
5928           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5929
5930 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5931
5932         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5933         we changed the signature of an icall.
5934         * icall.c: Modify to mono_double_ParseImpl return true/false 
5935         depending on the success, instead of throwing the exception. This will
5936         help us in Double.TryParse methods.
5937         
5938 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5939
5940         * marshal.c (emit_marshal_object): Throw an exception when
5941         marshalling 'object' instead of crashing. Fixes #76696.
5942
5943 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5944
5945         * class-internals.h: Add prototype for mono_type_get_full_name ().
5946
5947 2005-11-11  Dick Porter  <dick@ximian.com>
5948
5949         * threads.c (mono_thread_manage): Make sure the main thread has
5950         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5951
5952 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5953
5954         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5955         console about the missing type.
5956         (mono_loader_set_error_method_load): Ditto.
5957
5958 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5959
5960         * mono-config.c (mono_get_config_dir): Set the system defaults if
5961         none is specified.
5962
5963         * assembly.c (mono_set_dirs): New API entry point to set the
5964         assembly and the config directory in one call
5965
5966 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5967
5968         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5969         the ftnptr was created from a delegate in a domain other than the
5970         current domain. Fixes #75377.
5971
5972         * exception.h exception.c: Add mono_get_exception_not_supported ().
5973
5974 2005-11-08  Martin Baulig  <martin@ximian.com>
5975
5976         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5977
5978 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5979
5980         * security-manager.h: Added definitions to deal with strongname key 
5981         pairs bigger (and smaller) than 1024 bits.
5982         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5983         adjust wrt the public key length being used.
5984
5985 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5986
5987         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5988           Windows build (r51396-51397).
5989
5990 2005-11-03  Martin Baulig  <martin@ximian.com>
5991
5992         * class.c (mono_class_setup_vtable_general): Also add generic
5993         methods to the vtable; fixes #76581.
5994
5995 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5996
5997         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5998         sure that we lookup GetString method from the System.Text.Encoding
5999         class, not the derived class or we get an empty method.
6000
6001         Fixed class #76612.
6002
6003 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6004
6005         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6006         if it has been previously set (embedders). 
6007
6008         Make mono_set_rootdir available also on Unix.
6009
6010 005-10-24  Robert Jordan  <robertj@gmx.net>
6011
6012         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6013
6014 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6015
6016         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6017         only calls which are made to native code use this flag.
6018
6019         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6020
6021 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6022
6023         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6024         Add support for FieldBuilders.
6025
6026 2005-10-29  Martin Baulig  <martin@ximian.com>
6027
6028         * mono-debug.c
6029         (mono_debug_using_mono_debugger): New public method; returns
6030         whether we're running inside the debugger.
6031
6032 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6033
6034         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6035         for Method/Constructor/FieldBuilders.
6036
6037 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6038
6039         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6040         and fields as well.
6041
6042 2005-10-26  Martin Baulig  <martin@ximian.com>
6043
6044         * mono-debug-debugger.c
6045         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6046
6047 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6048
6049         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6050         integer to isspace.
6051
6052 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6053
6054         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6055         when passing valuetypes byref. Fixes #76502.
6056
6057 2005-10-19  Jackson Harper  <jackson@ximian.com>
6058
6059         * profiler.c: Don't put a . in front of types that are not in a
6060         namespace.
6061
6062 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6063
6064         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6065
6066 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6067
6068         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6069         #76436.
6070         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6071
6072 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6073
6074         * assembly.c metadata-internals.h icall.c: Define an additional
6075         parameter for mono_assembly_name_parse_full, so we can avoid creating
6076         S.R.AssemblyName.Version when no version info wasn't passed.
6077         
6078 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6079
6080         * class.c (mono_type_get_full_name): Reimplement method that was
6081         removed. 
6082
6083         * image.c: Some docs
6084
6085 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6086
6087         * profiler.c (output_newobj_profile): Fix printing of Total memory
6088         on x86.
6089
6090 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6091
6092         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6093
6094 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6095
6096         * threads.c: remove debug output.
6097
6098 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6099
6100         * threads.c (mono_thread_manage): Fix crashes if more than 64
6101         threads need to be aborted. Hopefully fixes #75899.
6102
6103         * assembly.c (mono_stringify_assembly_name): New helper function.
6104
6105         * class.c: Use mono_stringify_assembly_name instead of the similar
6106         static function.
6107
6108         * assembly.h assembly.c: Add support for calling a postload search 
6109         hook if an assembly cannot be loaded.
6110
6111         * appdomain.c: Register new search hooks which call the AssemblyResolve
6112         events in AppDomain. Fixes #75231
6113
6114 2005-10-07  Martin Baulig  <martin@ximian.com>
6115
6116         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6117         methods without debug info.
6118
6119 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6120
6121         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6122         wrappers.
6123
6124 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6125
6126         * file-io.c: now that we return symlinks, use lstat and, when the file
6127         is a symbolic link, stat, to get the file attributes. Also avoid the
6128         conversion to/from utf16/external.
6129
6130 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6131
6132         * class.c (mono_class_layout_fields): Compute klass->has_references
6133         correctly if an embedded valuetype is not yet initialized. Fixes
6134         #76331.
6135
6136 2005-10-04  Martin Baulig  <martin@ximian.com>
6137
6138         * metadata.c
6139         (mono_metadata_load_generic_param_constraints): New public
6140         function; splitted the constraints loading out from
6141         mono_metadata_load_generic_params().
6142
6143         * class.c (mono_class_create_from_typedef): Call
6144         mono_metadata_load_generic_param_constraints() after setting up
6145         the type and creating our parent; fixes #75329.
6146
6147 2005-10-04  Martin Baulig  <martin@ximian.com>
6148
6149         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6150         non-dynamic parent classes.
6151
6152 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6153
6154         * file-io.c : win32 build fix (ETXTBSY seems not found).
6155
6156 2005-10-04  Martin Baulig  <martin@ximian.com>
6157
6158         * reflection.c
6159         (mono_image_get_methodspec_token): Make the cache actually work;
6160         fixes #75974.
6161
6162 2005-10-04  Martin Baulig  <martin@ximian.com>
6163
6164         * class.c (mono_class_name_from_token): Removed the unneccessary
6165         `MonoGenericContext *' argument.
6166
6167 2005-10-04  Martin Baulig  <martin@ximian.com>
6168
6169         * loader.c
6170         (method_from_methodspec): Make the caching work again; fixes the
6171         performance regression from #76262.
6172
6173 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6174
6175         * file-io.c:
6176         * file-io.h:
6177         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6178         GetFileSystemEntries that performs the same work but without going
6179         into io-layer, locking, etc.
6180
6181 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6182
6183         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6184         ThreadState_Stopped as well. Fixes #76047.
6185
6186 2005-09-29  Martin Baulig  <martin@ximian.com>
6187
6188         * class.c
6189         (inflate_generic_context): If the new context has a `gmethod', set
6190         its `container' that that gmethod's `container'.
6191
6192         * metadata.c
6193         (mono_metadata_parse_generic_param): Simplify things;
6194         `generic_container = generic_context->container;' is just fine.
6195
6196         * loader.c (method_from_methodspec): Code cleanups.
6197
6198 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6199
6200         * decimal.c: fix warning (and let gcc generate correct
6201         code on ARM with optimizations).
6202
6203 2005-09-28  Martin Baulig  <martin@ximian.com>
6204
6205         * loader.c
6206         (method_from_memberref): Added `MonoGenericContext *class_context'
6207         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6208         (method_from_methodspec): If we're a memberref, use the enclosing
6209         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6210
6211 2005-09-28  Martin Baulig  <martin@ximian.com>
6212
6213         * object.c (mono_runtime_invoke_array): Added support for
6214         MONO_TYPE_GENERICINST; fixes #75917.
6215
6216 2005-09-27  Martin Baulig  <martin@ximian.com>
6217
6218         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6219         `k->byval_arg.type' to determine the actual type.
6220
6221         * loader.c (method_from_methodspec): Removed some hacks.
6222
6223 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6224
6225         * class-internals.h (mono_field_is_deleted): Do the test for
6226         rtspecialname before we check the actual name of the field. This
6227         prevents us from dereferencing a pointer into the string table,
6228         saving us from accessing a few pages
6229
6230         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6231         macros. This will allow a deadlock debugger to easily be plugged
6232         in.
6233
6234 2005-09-27  Martin Baulig  <martin@ximian.com>
6235
6236         * loader.c (method_from_methodspec): Create a "signature"
6237         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6238
6239 2005-09-27  Martin Baulig  <martin@ximian.com>
6240
6241         * class.c
6242         (inflate_generic_class): Correctly set the new context's
6243         container.
6244
6245         * loader.c
6246         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6247         instead of a `MonoGenericContext *'.
6248         (mono_method_signature_full): Take a `MonoGenericContainer *'
6249         instead of a `MonoGenericContext *'.
6250
6251         * metadata.c
6252         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6253         instead of a `MonoGenericContext *'.
6254         (mono_metadata_parse_method_signature_full): Likewise.
6255
6256 2005-09-26  Martin Baulig  <martin@ximian.com>
6257
6258         * class.c
6259         (mono_class_from_generic_parameter): Set `klass->generic_container'
6260         (mono_class_from_generic_parameter): Likewise.
6261         (mono_bounded_array_class_get): We inherit the generic container
6262         from the element class.
6263
6264         * loader.c
6265         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6266         argument rather than computing it here.
6267         (method_from_memberref): Correctly set the generic context before
6268         parsing the signature.  Fixes #75681.
6269
6270 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6271
6272         * object.c (mono_class_has_special_static_fields): Fix warnings.
6273
6274 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6275
6276         * assembly.c: Add parse_public_key function, to
6277         par the public keys. Also added mono_assembly_name_parse_full,
6278         to define it the parsed key should be freed or not.
6279         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6280         to parse a long format assembly name.
6281         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6282         private, since calling it to preserve the key requires
6283         freeing it manually.
6284         
6285 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6286
6287         * locales.c : removed HAVE_ICU part.
6288
6289 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6290
6291         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6292         field_is_special_static if the klass has no special static fields.
6293
6294         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6295         (MonoCachedClassInfo): Likewise.
6296
6297         * object.c (mono_class_has_special_static_fields): New helper function.
6298
6299 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6300
6301         * class.c (mono_class_create_from_typedef): Don't call 
6302         interfaces_from_typedef_full for enums.
6303         (mono_class_create_from_typedef): Compute the base types of enums directly
6304         without calling mono_class_setup_fields ().
6305         (mono_class_find_enum_basetype): New helper function.
6306
6307         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6308         one place inside the string heap.
6309         
6310 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6311
6312         * class.c: locking fixes, code cleanups, some docs added.
6313         Allocate some data structures in the image mempool.
6314
6315 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6316
6317         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6318         the example code.
6319         
6320 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6321
6322         * class-internals.h, class.c, reflection.c: reduce memory taken by
6323         MonoClass.
6324
6325 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6326
6327         * metadata.c, metadata.h, loader.h: documentation updates, code and
6328         API cleanups.
6329
6330 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6331
6332         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6333         the example code.
6334
6335         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6336         page faults caused by the runtime while reading metadata.
6337
6338 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6339
6340         * socket-io.c: the field names were changed 3 months ago and no one
6341         realized until bug #76077 got filed!
6342
6343 2005-09-20  Martin Baulig  <martin@ximian.com>
6344
6345         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6346
6347 2005-09-20  Martin Baulig  <martin@ximian.com>
6348
6349         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6350         write the rank into the class entry.
6351
6352 2005-09-20  Martin Baulig  <martin@ximian.com>
6353
6354         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6355
6356 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6357
6358         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6359
6360         * icall.c (custom_attrs_defined_internal): New icall.
6361
6362         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6363         function.
6364         (mono_custom_attrs_construct_by_type): New helper function.
6365
6366 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6367
6368         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6369         terminate the resulting string. Fixes #76123.
6370
6371 2005-09-16  Martin Baulig  <martin@ximian.com>
6372
6373         * mono-debug.c
6374         (mono_debug_add_method): Ignore inflated methods for the moment.
6375
6376 2005-09-14  Martin Baulig  <martin@ximian.com>
6377
6378         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6379
6380 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6381
6382         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6383         return a success/failure indication.
6384         (mono_metadata_interfaces_from_typedef_full): Ditto.
6385         (get_constraints): Ditto.
6386
6387 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6388
6389         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6390         
6391         * marshal.c (emit_marshal_array): Add support for returning string
6392         arrays from delegates. Fixes #76063.
6393
6394         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6395
6396 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6397
6398         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6399         icall.
6400
6401 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6402
6403         * reflection.c icall.c: Fix after mono_get_exception_type_load
6404         signature change.
6405
6406         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6407         (mono_assembly_load_reference): Use the new helper.
6408
6409         * class-internals.h (MonoLoaderError): New structure containing 
6410         information about type loading errors.
6411
6412         * class-internals.h loader.c: Add APIs to store per-thread loader
6413         error information.
6414
6415         * loader.c class.c: Set the loader error if needed.
6416
6417         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6418
6419 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6420
6421         * decimal.c: fixed to handle the broken ARM fp format.
6422
6423 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6424
6425         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6426         broken.
6427
6428 2005-09-06  Martin Baulig  <martin@ximian.com>
6429
6430         * domain.c (supported_runtimes): Added v2.0.50727.
6431
6432 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6433
6434         * culture-info.h: reduce the size of some structures.
6435
6436 2005-09-05  Martin Baulig  <martin@ximian.com>
6437
6438         Reflect latest API changes in the August CTP.
6439
6440         * icall.c
6441         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6442         ("MonoType.HasGenericArguments"): Removed.
6443         ("MonoMethod.BindGenericParameters"): Renamed to
6444         "MakeGenericMethod".
6445         ("MethodBuilder.BindGenericParameters"): Renamed to
6446         "MakeGenericMethod".    
6447
6448 2005-09-05  Martin Baulig  <martin@ximian.com>
6449
6450         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6451
6452 2005-09-05  Martin Baulig  <martin@ximian.com>
6453
6454         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6455
6456         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6457         generic_container is non-NULL.
6458
6459 2005-09-05  Martin Baulig  <martin@ximian.com>
6460
6461         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6462
6463         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6464
6465 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6466
6467         * reflection.c (encode_locals,
6468         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6469         for large generic types.
6470
6471 2005-09-05  Martin Baulig  <martin@ximian.com>
6472
6473         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6474
6475         * class.c (mono_dup_array_type): New public method.
6476         (mono_metadata_signature_deep_dup): New public method.
6477         (dup_type): Correctly duplicate array and function types.
6478
6479 2005-09-05  Martin Baulig  <martin@ximian.com>
6480
6481         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6482
6483         * reflection.c (get_default_param_value_blobs): Handle generic types
6484         and generic methods.
6485
6486 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6487
6488         * class.c: Fixed error reporting (method/class were inversed) for 
6489         inheritance demands.
6490         * security-manager.c|h: Added the AppDomain when calling the managed
6491         System.Security.SecurityManager.InheritanceDemand method.
6492
6493 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6494
6495         * reflection.c (encode_marshal_blob): 'marshaltype' and
6496         'marshaltyperef' are alternate sources for the custom marshaler
6497         name.
6498
6499 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6500
6501         * class.c: fix creation of array classes with rank == 1
6502         (patch by Ankit Jain <jankit@novell.com>).
6503
6504 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6505
6506         * object.c: fix check for creating the bound data for arrays vs
6507         szarrays.
6508
6509 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6510
6511         * object.c: configuration file name is now based on the executable name,
6512         not the image name. Fixes bug #75931.
6513
6514 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6515
6516         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6517         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6518
6519 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6520
6521         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6522
6523 2005-08-24  Ankit Jain  <jankit@novell.com>
6524             Raja R Harinath  <rharinath@novell.com>
6525
6526         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6527           called by it recursively.
6528           (mono_class_init): Remove special case in pending_init handling, since it's
6529           superseded by the fix to mono_class_from_typeref.
6530
6531 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6532
6533         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6534         BROKEN_THREAD_START stuff.
6535
6536 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6537
6538         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6539         trampoline.
6540
6541         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6542         
6543         * object.c (mono_delegate_ctor): Replace the original function address with
6544         a delegate trampoline.
6545
6546 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6547
6548         * icall.c: add boolean argument to base64_to_byte_array and 
6549         InternalFromBase64String to control whether a whitespace-only string
6550         is allowed (or should casue a FormatException to be thrown). We need
6551         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6552         to match the MS behaviour in both profiles.
6553         * appdomain.c: Bump corlib version.
6554
6555 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6556
6557         This patch implements a big portion of publisher policy
6558         support, used to bind assembly versions and redirect
6559         one assembly from version A to version B.
6560
6561         * assembly.c:
6562         New GSList loaded_assembly_bindings, for storing the cached
6563         assembly bindings.
6564         (assembly_binding_maps_name): New static function for checking if a 
6565         assembly binding information maps an assembly name.
6566         (mono_assembly_binding_info_free): New function for freeing
6567         assembly binding information resources.
6568         (get_publisher_policy_info): New static function for retrieving 
6569         assembly binding information from a MonoImage.
6570         (compare_versions): New static function for comparing an assembly
6571         binding information data and the version of an assembly name.
6572         (check_policy_versions): New static function for checking if an
6573         assembly binding info mapping an assembly name is valid for it.
6574         (mono_assembly_load_publisher_policy): New static function for
6575         loading the 'policy.major.minor.MyAssembly' image for an assembly
6576         with an assembly name 'aname'.
6577         (mono_assembly_bind_version): New static function for updating
6578         assembly redirection.
6579         (mono_assembly_apply_binding): New static function for applying
6580         assembly binding.
6581         (search_binding_loaded): New static function for searching 
6582         loaded assembly binding infos in the cache domain.
6583         (mono_assembly_load_full): Don't apply assembly binding for
6584         reflection only assemblies.
6585
6586         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6587         which contains information about assembly binding. Also
6588         declare signature for mono_config_parse_publisher_policy ()
6589         function, used to retrieve pub policy info.
6590         
6591         * mono-config.c:
6592         (publisher_policy_start): New static function used to parse publisher 
6593         policy config files.
6594         (publisher_policy_parser): New static MonoParseHandler containing 
6595         the functions used when parsing config files.
6596         (mono_config_parse_publisher_policy): New function for parsing
6597         publisher policy files.
6598         
6599 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6600
6601         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6602
6603         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6604
6605         * object.c (mono_get_addr_from_ftnptr): New helper function.
6606
6607         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6608
6609         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6610
6611 2005-08-19  Dick Porter  <dick@ximian.com>
6612
6613         * threads.c, threads.h, appdomain.c, appdomain.h,
6614         profiler-private.h, monitor.c, object.c, object-internals.h,
6615         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6616         store the thread ID, so it can hold a 64 bit value if needed.
6617
6618 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6619
6620         * reflection.c (mono_reflection_create_dynamic_method): Store the
6621         handle class into the method references as well so ldtoken works in
6622         dynamic methods.
6623
6624         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6625         types.
6626
6627 2005-08-19  Ankit Jain <jankit@novell.com>
6628
6629         Fix #75847.
6630         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6631           here rather than using the method signature of a arbitrary function
6632           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6633           two arguments.
6634           Hack done with Harinath.
6635
6636 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6637
6638         * threadpool.c: disable printing stack traces when we get a exception
6639         in a threadpool thread. I need to do more testing to figure out which
6640         cases actually print this. Fixes bug #75828.
6641
6642 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6643
6644         * icall.c: there might be ignored whitespace after the last '='. This
6645         fixes length computation and bug #75840.
6646
6647 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6648
6649         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6650         well. Fixes #75809.
6651
6652         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6653         #75784.
6654         
6655         * reflection.c (create_custom_attr_data): Ditto.
6656
6657 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6658
6659         * locales.c, culture-info.h : removed RegionLCIDMap.
6660         * culture-info-tables.h : regenerated.
6661
6662 2005-08-16  Martin Baulig  <martin@ximian.com>
6663
6664         * class.c (mono_type_get_name_recurse): Small fix.
6665
6666 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6667
6668         * locales.c : indentation fixie.
6669
6670 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6671
6672         * object-internals.h,
6673           locales.h,
6674           locales.c,
6675           culture-info.h,
6676           icall.c : added RegionInfo table support.
6677         * culture-info-table.h : regenerated for region support.
6678
6679 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6680
6681         * reflection.c (resolve_object): handle all kinds of MonoMethod
6682         including generic ones
6683
6684 2005-08-12  Ankit Jain <jankit@novell.com>
6685
6686         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6687           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6688
6689 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6690
6691         * process.c: Don't close a thread handle when it's NULL. This is a
6692         workaround for bug #75733.
6693
6694 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6695
6696         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6697
6698 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6699
6700         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6701
6702 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6703
6704         * threadpool.c: if a work item in the thread pool has a callback that
6705         catches a exception, don't propagate it after invoking the callback.
6706         Fixes bug #75336.
6707
6708 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6709
6710         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6711
6712         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6713
6714         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6715
6716         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6717
6718 2005-08-03  Ankit Jain  <jankit@novell.com>
6719
6720         Fix #75683.
6721         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6722           PInvoke calling convention is 0.
6723
6724 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6725
6726         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6727         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6728
6729 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6730
6731         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6732         to handle threads not started by the GC (patch by Michael Meeks
6733         <michael.meeks@novell.com>).
6734
6735 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6736
6737         * reflection.c: Make buffer used in emitting types larger for some
6738         big generic types (patch by Michal Moskal).
6739
6740 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6741
6742         * mono-debug.c: Fix some (not all) alignment problems.
6743
6744 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6745
6746         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6747         Invoke mono_image_load_from_data_full passing the refonly
6748         parameter.
6749
6750         * assembly.c
6751         (mono_assembly_open_from_bundle): Add the refonly argument, 
6752         in order to pass it to other methods it calls to.
6753         (do_mono_assembly_open): Add the refonly argument, in order 
6754         to pass it to other methods it calls to.
6755         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6756         the refonly parameter to it.
6757
6758         * image.c: Add loaded_images_refonly_hash and
6759         loaded_images_refonly_guid_hash to cache the reflection
6760         only loaded images.
6761         (mono_images_init): Initialize the hash tables used for
6762         caching the reflection only images.
6763         (load_modules): Invoke mono_image_open_full passing the refonly
6764         parameter to load the modules the correct way.
6765         (build_guid_table): Add the refonly argument, to re-build the 
6766         correct hash table.
6767         (do_mono_image_open): Added the refonly argument, in order to
6768         define it for the loaded image.
6769         (mono_image_loaded_full): New function, which receives an
6770         additional parameter to look for the image in the refonly or
6771         non-refonly section.
6772         (mono_image_loaded): Updated, using mono_image_loaded_full.
6773         (mono_image_loaded_by_guid_full): The same case that happens
6774         with mono_image_loaded_full.
6775         (mono_image_loaded_by_guid): Likewise.
6776         (register_image): Use the ref_only variable inside MonoImage
6777         to decide in which hash table store the current image.
6778         (mono_image_open_from_data_full): Rename
6779         mono_image_open_from_data to mono_image_open_from_data_full,
6780         adding the refonly argument, to define the ref_only variable 
6781         inside MonoImage.
6782         (mono_image_open_from_data): Return 
6783         mono_image_open_from_data_full.
6784         (mono_image_open_full): Rename mono_image_open to
6785         mono_image_open_full, receiving the new refonly argument,
6786         to pass it to inner methods.
6787         (mono_pe_file_open): Update this function, to open
6788         a MonoImage as a non-refonly image.
6789         (mono_image_close): Use the refonly variable inside
6790         MonoImage to remove the image from the correct caches.
6791
6792         * image.h: Add the signatures of mono_image_open_full,
6793         mono_image_open_from_data_full, mono_image_loaded_full,
6794         mono_image_loaded_by_guid_full.
6795
6796         * metadata-internals.h: Add the ref_only field to 
6797         MonoImage.
6798         
6799 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6800
6801         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6802         Fix the last behavior, which used to load the assemblies and
6803         extract MonoReflectionAssemblyName information, instead of
6804         extract it from the metadata tables. Needed for Reflection
6805         Only assemblies.
6806         
6807 2005-07-29  Martin Baulig  <martin@ximian.com>
6808
6809         * mono-debug-debugger.c
6810         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6811         not initialized.
6812
6813         * mono-debug.c
6814         (mono_debug_address_from_il_offset): Check whether we have
6815         debugging support before attempting to take the lock.
6816         (mono_debug_source_location_from_address): Likewise.
6817         (mono_debug_source_location_from_il_offset): Likewise.
6818         (mono_debug_il_offset_from_address): Likewise.
6819         (mono_debug_address_from_il_offset): Likewise.
6820
6821 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6822
6823         * class.c (mono_class_from_name_case): Add support for dynamic images.
6824         Fixes #75650.
6825
6826         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6827         for #75479.
6828
6829 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6830         
6831         * reflection.c (mono_method_get_object): Fix warning.
6832
6833 2005-07-28  Martin Baulig  <martin@ximian.com>
6834
6835         * mono-debug.c
6836         (mono_debug_add_wrapper): Also write the wrapper type.
6837
6838 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6839
6840         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6841         
6842         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6843         data indicates the class has none.
6844
6845 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6846
6847         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6848         loader lock with the debugger lock. Prevents deadlocks for beagle.
6849
6850         Beagle can now run on an smp box for a weekend without any
6851         issues. Woohoo!
6852
6853 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6854
6855         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6856         in a module. Fixes #75629.
6857
6858 2005-07-26  Martin Baulig  <martin@ximian.com>
6859
6860         * mono-debug.c (mono_debug_add_wrapper): New static method.
6861         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6862         interncall or a wrapper.
6863
6864         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6865         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6866         (MONO_DEBUGGER_VERSION): Bump to 51.
6867
6868         * mono-debug-debugger.c
6869         (mono_debugger_add_type): Removed this empty function.
6870         (mono_debugger_add_method): Likewise.
6871
6872 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6873
6874         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6875         before accessing method->slot.
6876
6877 2005-07-21  Jb Evain  <jbevain@gmail.com>
6878
6879         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6880         Fixes #75010.
6881
6882 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6883
6884         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6885         #75587.
6886
6887 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6888
6889         * image.h image.c: Add mono_image_get_guid () API function.
6890
6891 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6892
6893         There were issues when multiple threads tried to load
6894         assemblies. A deadlock was created between assemblies_mutex and
6895         mono_domain_assemblies_lock. This fixes the issue by making the
6896         assembly ref counting be lock free. See bug 75586.
6897         
6898         * image.c (mono_image_close): The add ref function here was using
6899         Interlocked operations while the unref was using a mutex and a
6900         --. I don't think this was ever a bug that would be exposed in a
6901         non-pendantic way (ie, by an embedder doing a ref on one thread
6902         and an unref on another), but for the sake of correctness, this is
6903         now Interlocked.
6904
6905         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6906         (mono_assembly_load_reference): Call mono_assembly_addref rather
6907         than touching the refcount ourselves.
6908         (mono_assembly_close): Use InterlockedDecrement to unref the
6909         assembly. Don't acquire the lock unless it is actually needed.
6910
6911 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6912
6913         * class.c (mono_class_layout_fields): Fix calculation of has_references
6914         for generic types.
6915
6916 2005-07-12  Martin Baulig  <martin@ximian.com>
6917
6918         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6919
6920         * metadata.c
6921         (mono_type_hash): Provide better hashing for generic instances.
6922         (mono_generic_inst_hash): Improve hashing.
6923         (mono_generic_class_hash): Likewise.
6924
6925         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6926         generic instances.
6927
6928 2005-07-12  Martin Baulig  <martin@ximian.com>
6929
6930         * reflection.c (mono_reflection_create_runtime_class): Remove the
6931         hack for generic type definitions and non-`Run' assemblies.
6932         (mono_reflection_bind_generic_parameters): Also use
6933         `klass->wastypebuilder' to check for TypeBuilders.
6934
6935 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6936
6937         * class.c (mono_class_layout_fields): Fix calculation of has_references
6938         for generic types.
6939
6940         * class.c (inflate_generic_class): Fix a leak.
6941         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6942         for generic types.
6943
6944 2005-07-11  Martin Baulig  <martin@ximian.com>
6945
6946         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6947         on error.
6948
6949 2005-07-11  Martin Baulig  <martin@ximian.com>
6950
6951         * loader.c (find_method): Also lookup in
6952         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6953
6954 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6955
6956         * appdomain.c (mono_domain_unload): Don't free the error message
6957         before passing it to mono_get_exception_...
6958
6959         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6960         
6961 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6962
6963         * threads.c: try to better guess an available RT signal (bug #75387).
6964
6965 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6966
6967         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6968         and CACHE_OBJECT.
6969
6970 2005-07-07  Martin Baulig  <martin@ximian.com>
6971
6972         * class.c (mono_type_get_name_full): Return NULL for
6973         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6974         fixes #75408.
6975
6976 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6977
6978         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6979         exit the appdomain as well being aborted.
6980
6981         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6982         change back to the root domain after calling managed code. This enables
6983         appdomains using threadpools to be unloaded.
6984
6985 2005-07-07  Martin Baulig  <martin@ximian.com>
6986
6987         * class-internals.h
6988         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6989         into `MonoDynamicGenericClass' since we only need it for dynamic
6990         types.
6991
6992         * reflection.c (mono_class_bind_generic_parameters): We don't need
6993         to compute the `parent' here.
6994
6995 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6996
6997         * culture-info-table.h : regenerated.
6998
6999 2005-07-06  Martin Baulig  <martin@ximian.com>
7000
7001         * icall.c
7002         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7003
7004         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7005
7006 2005-07-06  Martin Baulig  <martin@ximian.com>
7007
7008         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7009         we're doing a signature-only comparision; fixes #74945.
7010
7011 2005-07-06  Martin Baulig  <martin@ximian.com>
7012
7013         * class-internals.h (MonoGenericClass): Moved some things out into
7014         a new `MonoInflatedGenericClass' type.  
7015         (MonoInflatedGenericClass): New type; the `klass' of a
7016         `MonoGenericClass' is now computed lazyly in
7017         mono_get_inflated_generic_class().      
7018
7019         * class.c (mono_get_inflated_generic_class): New public function.
7020         (mono_class_inflate_generic_method): Removed the unused
7021         `MonoClass *' argument.
7022         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7023         all the methods.
7024         (mono_class_create_generic): Make this static and merge it with
7025         mono_class_create_generic_2(); we're now called automatically from
7026         mono_get_inflated_generic_class().
7027
7028         * loader.c (mono_method_signature): Call
7029         mono_get_inflated_method() here.
7030
7031 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7032
7033         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7034         type of fields with RVA.
7035
7036         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7037         for this pseudo class.
7038         (my_mono_class_from_generic_parameter): Likewise.
7039         (mono_class_init): Allow interfaces to have cctors.
7040
7041 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7042
7043         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7044         lazily for AOT methods.
7045
7046 2005-07-05  Martin Baulig  <martin@ximian.com>
7047
7048         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7049         returns FALSE for a successful match, not TRUE.
7050
7051 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7052
7053         * loader.c (mono_method_get_index): Optimize this a bit.
7054
7055 2005-07-04  Martin Baulig  <martin@ximian.com>
7056
7057         * class.c
7058         (class_compute_field_layout): Move the check for generic type
7059         definitions into mono_class_layout_fields().  Fixes #74684.
7060         (mono_class_from_generic_parameter): Correctly compute
7061         `klass->parent'; fixes #75457.
7062
7063         * reflection.c (register_assembly, register_module): Make sure
7064         `domain->rejobject_hash' is already created.
7065
7066 2005-07-02  Martin Baulig  <martin@ximian.com>
7067
7068         * class-internals.h
7069         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7070         `MonoDynamicGenericClass'.      
7071
7072 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7073
7074         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7075         returned by a field getter is null, since null is a valid value.
7076
7077 2005-07-01  Martin Baulig  <martin@ximian.com>
7078
7079         * reflection.c (mono_reflection_generic_class_initialize): Update
7080         the `dgclass->fields [i].parent' to the correct class.
7081         (mono_image_get_fieldref_token): Use the declaring type, not the
7082         reflected type.
7083
7084 2005-07-01  Martin Baulig  <martin@ximian.com>
7085
7086         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7087
7088 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7089
7090         * threads.c (thread_cleanup): assert that thread != NULL
7091         (wait_for_tids_or_state_change): We were using the wrong variable
7092         when accessing wait->threads. `i' was always out of the bounds of
7093         the array.
7094
7095 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7096
7097         * loader.c: map user32 and kernel32 to libMonoSupportW
7098
7099 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7100
7101         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7102
7103 2005-06-28  Martin Baulig  <martin@ximian.com>
7104
7105         * loader.c (method_from_methodspec): Fix #75334.
7106
7107 2005-06-28  Martin Baulig  <martin@ximian.com>
7108
7109         Fix #74953 - Arrays now implement the generic IList<T> interface
7110         on the 2.0 platform.
7111
7112         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7113
7114         * reflection.c (mono_class_bind_generic_parameters): New public
7115         function; similar to mono_reflection_bind_generic_parameters(),
7116         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7117
7118         * domain.c (mono_init_internal): Try to initialize.
7119         `mono_defaults.generic_array_class' here; this'll only succeed if
7120         we're using the 2.0 corlib.
7121
7122         * icall.c
7123         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7124         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7125         (mono_lookup_internal_call): Added support for nested classes.
7126
7127         * loader.c
7128         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7129         we're an interncall and have generic arguments.
7130
7131         * class.c
7132         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7133         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7134         instance of System.Array.InternalArray<T> for arrays, so they
7135         implement the generic IList<T> interface.
7136
7137 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7138
7139         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7140         (chastamar@yahoo.com). Fixes #75374.    
7141
7142 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7143
7144         * culture-info-table.h: regenerated.
7145
7146 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7147
7148         * icall.c: handle spaces correctly for base64 strings.
7149
7150 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7151
7152         * *.c: Kill some warnings.
7153
7154 2005-06-23  Duncan Mak  <duncan@novell.com>
7155
7156         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7157         that this builds on Solaris 10 (x86).
7158
7159 2005-06-23  Martin Baulig  <martin@ximian.com>
7160
7161         * class.c
7162         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7163         generic type definitions.
7164
7165 2005-06-23  Martin Baulig  <martin@ximian.com>
7166
7167         Fix #75331.
7168
7169         * metadata.c (mono_class_get_overrides): Renamed to
7170         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7171         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7172         pass it to mono_get_method_full().
7173
7174 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7175
7176         * reflection.c (mono_reflection_create_runtime_class): take the
7177         mono_domain_lock in this method. Prevents deadlocks
7178
7179 2005-06-22  Martin Baulig  <martin@ximian.com>
7180
7181         * loader.c (method_from_methodspec): Fix #75330.
7182
7183 2005-06-22  Martin Baulig  <martin@ximian.com>
7184
7185         * reflection.c (type_get_qualified_name): Use
7186         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7187         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7188         argument; use it if we don't have an assembly name.
7189
7190 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7191
7192         * object.c: In mono_message_init, set "copy out" flag for in
7193         parameters with the [Out] flag.
7194
7195 2005-06-21  Martin Baulig  <martin@ximian.com>
7196
7197         * class.c
7198         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7199         and MONO_TYPE_PTR.
7200
7201 2005-06-21  Martin Baulig  <martin@ximian.com>
7202
7203         * class.c (mono_class_init): Don't initialize `class->fields' for
7204         generic instances since they're initialized again in
7205         compute_field_layout(). 
7206         (compute_field_layout): Set the field's `generic_info' here; fix
7207         #75320. 
7208
7209 2005-06-21  Martin Baulig  <martin@ximian.com>
7210
7211         * class-internals.h
7212         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7213
7214         * metadata.c (mono_metadata_generic_method_equal): Also
7215         distinguish the `generic_class'; fixes #75334.
7216
7217 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7218
7219         * domain.c:
7220         * appdomain.c:
7221         * domain-internals.h:
7222         * reflection.c: 'domain_assemblies' field is now protected by its own
7223         lock. Don't call into managed code to run the AssemblyLoad event if we
7224         now there are no registered delegates for it.
7225
7226 2005-06-20  Martin Baulig  <martin@ximian.com>
7227
7228         * class.c (mono_class_is_assignable_from): Use a custom version of
7229         mono_class_has_parent() to make things work for generic instances;
7230         fix #75300.
7231
7232 2005-06-20  Martin Baulig  <martin@ximian.com>
7233
7234         * loader.c (method_from_methodspec): Apply a patch from
7235         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7236
7237 2005-06-20  Martin Baulig  <martin@ximian.com>
7238
7239         * class.c (mono_class_init): Reverted Zoltan's last change; it
7240         breaks generics.
7241
7242 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7243
7244         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7245
7246 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7247
7248         * socket-io.c: fix the index in the socket array for writable/error
7249         sockets. Fixes bug #75306.
7250
7251 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7252
7253         * class.c (mono_class_init): Allow interfaces to have static ctors.
7254
7255 2005-06-17  Martin Baulig  <martin@ximian.com>
7256
7257         * loader.c (method_from_methodspec): Use `context->container' when
7258         parsing the `gmethod->inst'.
7259
7260 2005-06-17  Martin Baulig  <martin@ximian.com>
7261
7262         * class.c (mono_type_get_name_recurse): Don't add the assembly
7263         name for type arguments.
7264
7265 2005-06-15  Martin Baulig  <martin@ximian.com>
7266
7267         * reflection.c (mono_image_get_inflated_method_token): Encode
7268         correct klass; fixes #75260.
7269
7270 2005-06-13 Michal Moskal <malekith@nemerle.org>
7271
7272         * icall.c: Make GetCorrespondingMethod/Constructor take
7273         MonoReflectionMethod method not MonoMethod. Removed
7274         MonoType.GetCorrespondingField, and make
7275         MonoGenericType.GetCorrespondingField take name not
7276         MonoClassField.
7277
7278 2005-06-13  Michal Moskal <malekith@nemerle.org>
7279
7280         * reflection.c (field_encode_signature, encode_locals):
7281          Make sizes of buffers for types larger (for big generic types).
7282          (create_generic_typespec,
7283          mono_reflection_sighelper_get_signature_local,
7284          mono_reflection_sighelper_get_signature_field):
7285          Add asserts for too small buffers.
7286
7287 2005-06-15  Martin Baulig  <martin@ximian.com>
7288
7289         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7290         if our parent is not a dynamic type.
7291
7292 2005-06-15  Martin Baulig  <martin@ximian.com>
7293
7294         * class-internals.h (MonoTypeNameFormat): New enum.
7295
7296         * class.c
7297         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7298         (mono_type_get_full_name): Removed.
7299         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7300         argument instead of the boolean's.
7301
7302         * icall.c (ves_icall_System_MonoType_getFullName):
7303         Added `gboolean assembly_qualified'.    
7304
7305         * reflection.h
7306         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7307
7308         * reflection.c (mono_reflection_parse_type): Parse the new type
7309         name format.
7310
7311 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7312
7313         * icall.c: no need to convert from utf16 to utf8 and then back again
7314         after the call to GetLogicalDrives.
7315
7316 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7317
7318         * icall.c: frombase64. Fix problems exposed by new tests.
7319
7320 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7321
7322         * icall.c: added internal calls for converting char [] and strings in
7323         base64 into byte [].
7324
7325 2005-06-10  Martin Baulig  <martin@ximian.com>
7326
7327         * class.c (mono_class_create_generic_2): Read the nested classes
7328         from the metadata rather than from `gklass->nested_classes' since
7329         `gklass' might not be initialized yet.
7330
7331 2005-06-09  Duncan Mak  <duncan@novell.com>
7332
7333         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7334         all public headers. Fixes #74919.
7335
7336 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7337
7338         * domain.c: The key for proxy_vtable_hash is now a pointer
7339         array. Added new GHashFunc and GCompareFunc functions for this.
7340
7341         * class.h: The list of interfaces in MonoRemoteClass is known in
7342         advance and can't grow (we create a new MonoRemoteClass if needed),
7343         so now the interface array can be allocated together with
7344         MonoRemoteClass.
7345         
7346         * object.c: Added a new method create_remote_class_key.
7347         Fixed mono_remote_class so it does not depend on
7348         mono_upgrade_remote_class.
7349         Removed extend_interface_array.
7350         Added new method clone_remote_class(), which makes a copy of a remote
7351         class and adds a new interface or class to it.
7352         mono_upgrade_remote_class() now creates a new remote class (or gets
7353         it from the cache) if an vtable upgrade is needed. In this way
7354         we make sure that other objects sharing the same remote class
7355         don't get the new vtable with unwanted interfaces.
7356         
7357         * object-internals.h:
7358         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7359         
7360         * marshal.c: Track changes in mono_upgrade_remote_class().
7361
7362 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7363         * icall.c: Add runtime methods for obtaining members of inflated
7364         class, which were created from supplied non-inflated members. It
7365         is used in internal Get{Method,Constructor,Field} methods in
7366         System.Type
7367
7368 2005-06-09  Martin Baulig  <martin@ximian.com>
7369
7370         * reflection.c
7371         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7372
7373 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7374         * reflection.c (mono_image_basic_init): Define
7375         Version in MonoDynamicAssembly. 
7376         
7377 2005-06-08  Martin Baulig  <martin@ximian.com>
7378
7379         Fix #75136.
7380
7381         * loader.c
7382         (mono_method_signature_full): New public method; takes a
7383         `MonoGenericContext *'.
7384         (find_method): Use mono_method_signature_full() and pass the
7385         klass'es context to it.
7386
7387         * class.c (mono_class_is_inflated_method): Use
7388         mono_method_signature_full() and pass the context to it.
7389
7390 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7391
7392         * object.c: add proper locking in mono_remote_class_vtable(),
7393         fixes possible memory corruption.
7394
7395 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7396
7397         * marshal.c (mono_remoting_marshal_init): set
7398         initialized after initialization.
7399
7400 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7401
7402         * locales.c : hush.
7403
7404 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7405
7406         * object.c (extend_interface_array): fix really silly
7407         memory corrupting / comparison bug.
7408
7409 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7410
7411         * reflection.c: Functions added to support the creation
7412         of CustomAttributeData, which includes Attribute data
7413         used by ReflectionOnly methods.
7414
7415         * reflection.h:  mono_reflection_get_custom_attrs_data and
7416          mono_custom_attrs_data_construct added (functions exposed).
7417
7418          * icall.c: Added mono_reflection_get_custom_attrs_data
7419          as icall.
7420         
7421 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7422
7423         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7424         lupus's request.
7425
7426 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7427
7428         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7429
7430         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7431         dynamic DllImportAttribute.
7432
7433         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7434         dynamic DllImportAttribute.
7435
7436         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7437         Fixes #75162.
7438
7439 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7440
7441         * threads.c: avoid segfault when an unstarted thread is aborted.
7442
7443 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7444
7445         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7446         Returns the name and version of the runtime for reporting.
7447
7448 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7449
7450         * appdomain.c: bump corlib version.
7451         * object-internals.h: new field in MonoReflectionAssembly.
7452
7453 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7454
7455         * object-internals.h: Carlos forgot to add this field.
7456
7457 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7458
7459         * icall.c: Added create_version to create instances
7460         of Version of MonoReflectionAssemblyName. This change helps
7461         the AssemblyName tests to keep running fine.
7462         
7463 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7464   
7465         * object.c (mono_method_return_message_restore): A somehow less
7466         intrusive fix for #75138.
7467
7468 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7469
7470         * object.c (mono_method_return_message_restore): Fix computation
7471         of expected number of out args.
7472
7473 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7474
7475         * reflection.c (mono_image_get_method_info): Fix the case when the
7476         charset is empty.
7477
7478 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7479
7480         * object.c: Added missing null check in
7481           mono_method_return_message_restore.
7482
7483 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7484
7485         * reflection.c (mono_image_get_method_info): Handle the case when
7486         dllentry is empty.
7487
7488 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7489
7490         * object.c: When creating the vtable for a proxy, take into account
7491         all inherited interfaces, not only the ones registered in
7492         iclass->interfaces. This fixs bug #74996.
7493         Also, in mono_method_return_message_restore, verify that the array
7494         of out args has the expected lengh.
7495
7496 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7497
7498         * socket-io.c: update the timeout in Poll when the call is interrupte.
7499
7500 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7501
7502         * socket-io.c: support abort/suspend in Select_internal after last
7503         change.
7504
7505 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7506
7507         * threadpool.c: remove warning.
7508
7509 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7510
7511         * icall.c:
7512         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7513         removing the 1024 limit from select(). Runtime part of the fix for
7514         bug #71203.
7515
7516 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7517
7518         * socket-io.c: when resolving the addresses for the same
7519         host returned by gethostname(), get the local IPs from the interface
7520         list. Loopback addresses are discarded if the are interfaces up with
7521         non-loopback ones. Fixes bug #63265.
7522
7523 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7524
7525         * appdomain.c, verify.c, object-internals.h, reflection.c:
7526         bumped corlib number to 36, and added new extra_flags field
7527         to ReflectionMethodBuilder and friends.  Fixes #75060.
7528
7529 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7530
7531         * gc.c: register a new weak link only if the object is non-null
7532         (fixes bug#75047).
7533
7534 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7535
7536         * culture-info.h : short time pattern too.
7537
7538 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7539
7540         * culture-info.h : expand long time pattern string length.
7541
7542 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7543
7544         * culture-info-table.h : update (more French date format; #72788).
7545
7546 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7547
7548         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7549         the method is static. Fixes #75029.
7550
7551 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7552
7553         * reflection.c: Update the table_idx field of method builders after
7554         saving the module, since it can change. This is a workaround for
7555         bug #74914. 
7556
7557 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7558
7559         * culture-info-table.h : update (additional French date format).
7560
7561 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7562
7563         * icall.c (ves_icall_type_Equals): Revert last change.
7564         
7565         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7566
7567         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7568
7569 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7570
7571         * class-internals.h: Added executioncontext_class field to 
7572         MonoDefaults structure.
7573         * domain.c: Cache System.Threading.ExecutionContext class in 
7574         mono_defaults.
7575         * object.c: Capture the ExecutionContext for asynchroneous calls in
7576          mono_async_result_new.
7577         * object-internals.h: Added execution_context and original_context 
7578         fields to MonoAsyncResult. Added execution_context to MonoThread.
7579         * security-manager.c|.h: Added mono_get_context_capture_method to 
7580         return the capture method (if required by the security manager or by
7581         the framework version used).
7582         * threadpool.c: Apply capture (if present) ExecutionContext in 
7583         mono_async_invoke and revert to original context after it completes.
7584
7585 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7586
7587         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7588
7589 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7590
7591         * culture-info-table.h : zh-CHT related workaround.
7592
7593 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7594
7595         * marshal.c (emit_marshal_custom): Add some error checking and call the
7596         methods in the ICustomMarshaler interface. Fixes #74875.
7597         
7598         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7599         native->managed wrappers.
7600
7601 2005-05-12  Martin Baulig  <martin@ximian.com>
7602
7603         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7604         here and use the loader lock.
7605
7606         * mono-debug.c: Properly lock when the debugger is not attached.
7607         (mono_debug_init): Release the initial lock if we're not running
7608         in the debugger.
7609
7610 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7611
7612         * marshal.c (emit_marshal_custom): Pass through NULL values without
7613         calling the custom marshalling routines.
7614
7615         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7616         conversion in structures. Fixes #74882.
7617
7618 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7619
7620         * culture-info-table.h : zh-* cultures were missing.
7621
7622 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7623
7624         * threads.c: Added a new event background_change_event which is signaled
7625         when a thread changes its background mode.
7626         Moved here several checks previously done in managed code. The checks
7627         require the thread lock, and using the thread lock in managed code
7628         can result in deadlocks.
7629         Merged Start_internal and Thread_internal into a single method. Now 
7630         Thread_internal does all work of creating and starting a thread.
7631         Added icalls for setting and getting the state of the object. Moved from
7632         managed code to avoid locking there.
7633         Added wait_for_tids_or_state_change() which is called instad of
7634         wait_for_tids when waiting for non-backround threads to end. This method
7635         will return if one of the threads ends or the background_change_event
7636         is signaled.
7637         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7638         the background mode. This method signals the background_change_event
7639         event.
7640         * icall.c:
7641         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7642         removed Start_internal.
7643         
7644 2005-05-11  Martin Baulig  <martin@ximian.com>
7645
7646         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7647         to order of some fields to get proper alignment on 64-bit machines.
7648
7649 2005-05-11  Martin Baulig  <martin@ximian.com>
7650
7651         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7652         changes as they're broken and completely fuck up the debugger.
7653
7654         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7655
7656 2005-05-10  Martin Baulig  <martin@ximian.com>
7657
7658         * reflection.c (mono_reflection_generic_class_initialize): Don't
7659         call mono_class_setup_parent() here.
7660
7661 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7662
7663         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7664         send/receive timeout use an integer in milliseconds. We were using a
7665         struct timeval.
7666
7667 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7668
7669         * locales.c:
7670         (internal_get_cultures): reserve the first slot of the array for the
7671         InvariantCulture, which will be filled in managed code.
7672
7673 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7674
7675         * reflection.c (mono_image_fill_module_table): Initialize the
7676         GENERATION field as well.
7677
7678 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7679
7680         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7681         Monitor.Enter on the object.
7682
7683 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7684
7685         * threads.c: Enable the wait for running threads when exiting.
7686         * icall.c: Suspend all threads before exiting.
7687
7688 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7689
7690         * assembly.c (mono_assembly_load_reference): Fix warning.
7691
7692 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7693
7694         * threadpool.c: changed the default number of threads per cpu. From now
7695         on, the default will be 20 + (5 * number of cpus) instead of 50.
7696
7697 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7698
7699         * loader.c (mono_method_get_signature_full): Add locking here.
7700
7701 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7702
7703         * appdomain.c: Moved methods for parsing and freeing assembly
7704         names to assembly.c.
7705         * assembly.c, domain-internals.h: Created public methods for parsing
7706         assembly names. Fixed mono_assembly_load_with_partial_name:
7707         it now finds the best match, taking into account the version,
7708         token and culture specified in the partial name. Also return
7709         the latest version if no version information is specified.
7710
7711 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7712
7713         * threadpool.c: replace check for SocketAsyncCall class.
7714
7715 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7716
7717         * threadpool-internals.h:
7718         * Makefile.am: added threadpool-internals.h
7719
7720         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7721         that happen in threadpool threads (tested on MS).
7722         (mono_thread_pool_remove_socket): new function that dispatch any pending
7723         AIO call on a socket that is closing. By now only epoll really needs it,
7724         as select/poll wake up when the socket closes.
7725
7726
7727         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7728
7729 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7730
7731         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7732
7733 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7734
7735         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7736
7737 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7738
7739         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7740         has an abort request, convert it into a suspend request.
7741
7742 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7743
7744         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7745         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7746         is not supported yet.
7747
7748 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7749
7750         * image.c: register assemblies loaded from data (bundles) in the loaded
7751         assemblies hash. Fixes bug #74772.
7752
7753 2005-04-29  Martin Baulig  <martin@ximian.com>
7754
7755         * class.c (mono_type_get_name_recurse): Update to the new naming
7756         schema from the latest .NET 2.x beta2.
7757         (mono_class_setup_vtable_general): If we're a generic instance,
7758         copy the vtable from our generic type definition and inflate all
7759         the methods in it.
7760
7761         * loader.c (find_method): Update to the new naming schema from the
7762         latest .NET 2.x beta2.
7763
7764 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7765
7766         * class.c (mono_class_init): Add a mono_loader_unlock to the
7767         #74734 fix.
7768
7769 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7770
7771         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7772         suspend_all_other_threads () call for the time being, since it can hang.
7773
7774         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7775         the background threads to exit, since it can also hang.
7776
7777         * class.c (mono_class_init): Applied patch from Ankit Jain 
7778         (radical@gmail.com). Avoid pending init errors when a field refers
7779         to a nested class using a typeref. Fixes #74734.
7780
7781         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7782         this for dynamic modules.
7783
7784 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7785
7786         * threads.c: don't wait for threads that are in the process of aborting
7787         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7788         and waiting for background threads to finish. This makes xsp and
7789         mod-mono-server exit without random length delays and/or hangs.
7790
7791 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7792
7793         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7794
7795 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7796
7797         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7798         dynamic types to prevent infinite loops. Fixes #74727.
7799
7800         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7801         ..._is_assignable_to.
7802
7803 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7804
7805         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7806
7807 2005-04-25  Martin Baulig  <martin@ximian.com>
7808
7809         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7810
7811         * domain.c
7812         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7813
7814         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7815
7816         * reflection.c (build_compressed_metadata): Set metadata header
7817         version to 2.0.
7818
7819 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7820
7821         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7822         number into an integral and a decimal part. Fixes #70473.
7823
7824         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7825
7826 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7827
7828         * culture-info-table.h : reflected the latest locale-builder output.
7829
7830 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7831
7832         * threadpool.c: check for SuspendRequested too when deciding if
7833         mono_thread_interruption_checkpoint should be called.
7834
7835 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7836
7837         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7838         * threads.c: remove interruption_mutex and use Interlocked instead. When
7839         suspending all the threads, wait for all the suspended events at once.
7840         If we're shutting down and get an APC that is going to be queued,
7841         call mono_thread_execute_interruption immediately, as the thread might
7842         be sleeping on a pthread condition or mutex.
7843
7844         * icall.c: call mono_runtime_set_shutting_down before suspending the
7845         threads.
7846
7847         Fixes bug #74693. And now xsp is happier when exiting.
7848
7849 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7850
7851         * loader.c (mono_stack_walk): Fix #74690.
7852
7853 2005-04-22  Martin Baulig  <martin@ximian.com>
7854
7855         * mono-debug.h (MonoDebugMethodJitInfo): Added
7856         `MonoDebugMethodJitInfo *jit'.
7857
7858         * mono-debug.c (mono_debug_read_method): Cache the
7859         MonoDebugMethodJitInfo in `address->jit'.
7860         (mono_debug_free_method_jit_info): New public method.
7861
7862 2005-04-22  Martin Baulig  <martin@ximian.com>
7863
7864         * class.c (mono_class_is_assignable_from): Disallow
7865         type parameter -> interface.
7866
7867 2005-04-21  Dick Porter  <dick@ximian.com>
7868
7869         * threads.c (mono_thread_create): Turn an assertion into an error.
7870
7871 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7872
7873         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7874         
7875         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7876         Fix some gcc 4.0 warnings.
7877
7878 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7879
7880         * file-io.c: fix alt dir separator char on unix systems
7881         and cleanup (fixes bug #71214).
7882
7883 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7884
7885         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7886         a call to a remote domain, since the method may be an
7887         interface method in the client domain. This fixes bug #74192.
7888
7889 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7890
7891         * threadpool.c: recv/send are now performed before going back to managed
7892         code to save one transition.
7893
7894 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7895
7896         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7897
7898         * metadata/threadpool.c: removed hack to workaround the bug above.
7899
7900         Fixes bug #74618.
7901
7902 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7903
7904         * reflection.c reflection.h: Fix handling of parameter defaults in
7905         dynamic methods. Also fixes handling of parameter attributes.
7906         Fixes #74609.
7907
7908         * mono-debug.c (mono_debug_close_image): Fix warning.
7909
7910 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7911
7912         * socket-io.h: replaced old unused field with new 'blocking'.
7913         * threadpool.c: restore socket blocking state on windows(tm).
7914
7915 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7916
7917         * icall.c: don't return the codebase in the AssemblyName[] returned by
7918         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7919         * object-internals.h: Removed FIXME (fields were presents) and fixed
7920         versioncompat declaration.
7921
7922 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7923
7924         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7925         not closed, so don't cleanup when it happens.
7926
7927 2005-04-13  Chris Toshok  <toshok@ximian.com>
7928
7929         * mono-debug-debugger.h: change prototype for
7930         mono_debugger_lookup_type.
7931
7932         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7933         this function, although it should probably be named
7934         mono_debugger_init_type.
7935
7936 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7937
7938         * threadpool.c: fix non-AIO case.
7939
7940 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7941
7942         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7943         the built-in profiler to measure just JIT compilation times.
7944
7945 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7946
7947         * threadpool.c: the epollfd might be closed by another thread at
7948         any time, so ignore EBADF at treat it as a "we're closing" sign.
7949
7950 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7951
7952         * threadpool.c: release the semaphores with a count equals to the number
7953         of working threads in both IO and regular pools. Fixed typo that messed
7954         up the count of IO pool threads. Don't initialize the pipe handles if
7955         we're using epoll.
7956
7957 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7958
7959         * threadpool.c: some systems don't like a NULL when deleting the socket
7960         from epoll.
7961
7962 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7963
7964         * threadpool.c: fix semaphore allocation.
7965
7966 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7967
7968         * threadpool.c: added epoll() based implementation for asynchronous IO
7969         that is used instead of the default poll() when available.
7970         It can be disabled by setting MONO_DISABLE_AIO.
7971
7972 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7973
7974         * threadpool.c: windows needs 'closesocket' and instead of returning
7975         0 when the stream is closed while in select, it returns -1. Fixes bug
7976         #74573.
7977
7978 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7979
7980         * class.c (class_compute_field_layout): Fix the regression caused by
7981         the previous try.
7982
7983 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7984
7985         * threadpool.c: separate pool for socket async. IO.
7986         * threadpool.h: mono_max_worker_threads is not a global any more.
7987
7988 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7989
7990         * class.c (class_compute_field_layout): Fix #74549.
7991
7992 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7993
7994         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7995         use 2 connected sockets instead.
7996
7997 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7998
7999         * mono-config.c: Add new entry point for mkbundle
8000         mono_config_parse_memory. 
8001
8002 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8003
8004         * threadpool.c: removed another unused function.
8005
8006 2005-04-08  Ankit Jain  <radical@corewars.org>
8007
8008         * reflection.c (get_default_param_value_blobs): Add 'types'
8009         parameter to get the types encoded in the constant table.
8010         (mono_param_get_objects): Use the type from the constant table,
8011         not the type of the parameter, when creating default values.
8012         Handle null default values correctly.
8013
8014 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8015
8016         * file-io.c:
8017         * file-io.h:
8018         * threadpool.c:
8019         * threadpool.h:
8020         * icall.c:
8021         * socket-io.c: removed dead code for async IO.
8022
8023 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8024
8025         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8026
8027         * threadpool.c: intercept socket async. calls and pass them to a thread
8028         that is polling and dispatching the job items to the threadpool as
8029         socket become ready. Fixes bugs #71217, #71933.
8030
8031         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8032         between char and short/ushort arrays.
8033
8034         * socket-io.c: remove dead code.
8035
8036 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8037
8038         * locales.c,
8039           icall.c : removed InternalToUpper_Comp() and
8040           InternalToLower_Comp().
8041
8042 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8043
8044         * char-conversions.h : The tables were incorrectly generated. Should
8045           be generated against invariant culture.
8046
8047 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8048
8049         * object.c (mono_runtime_invoke_array): Fix return value when 
8050         passing pre-created valuetype objects to ctors.
8051
8052         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8053         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8054         Fixes #74338.
8055
8056 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8057
8058         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8059         only used with --security and hides the wrong corlib version error.
8060
8061 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8062
8063         * class.c: Changed mono_class_name_from_token so that types
8064         outside of a namespace don't have an initial period.  Improved
8065         the g_warning message used in _mono_class_get when loading
8066         fails.
8067         * assembly.c: In mono_assembly_load_reference, when an assembly
8068         can't be found, "No such file or directory" is misleading and
8069         unhelpful because a few paths were checked for the presence of
8070         the assembly.  When that happens (ENOENT), display a nicer
8071         message indicating the directories that were searched.  In all
8072         cases, the warning is made easier to read for non-hackers.
8073
8074 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8075
8076         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8077         project/solution.
8078         * appdomain.h|domain.c: Removed inline from functions.
8079         * appdomain.c: Reduced warnings when compiling on windows.
8080         * icall.c: Fixed output_debug declaration to gunichar2*.
8081         * mono-config.c: Reduced warnings when compiling on windows.
8082         * rand.c: Added missing "windows.h". Added missing return value.
8083         * rawbuffer.c: Added missing winsock2.h for windows.
8084         * sysmath.h: Added mono-compiler.h header to allow/ease 
8085         compilation with non-GCC compilers.
8086         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8087         Removed cast warnings.
8088
8089         Adapted from the work of J Lothian (for VC6).
8090
8091 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8092
8093         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8094         from default_path.
8095
8096 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8097
8098         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8099         the 2.0 profile.
8100
8101 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8102
8103         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8104         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8105         stuff, and it would probably use $(prefix)/share rather than
8106         $(prefix)/lib.
8107
8108 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8109
8110         * console-io.c: added 2 includes that might be missing.
8111
8112 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8113
8114         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8115         profile.
8116
8117         * reflection.c (create_custom_attr): Allocate the params array using
8118         alloca so it gets GC tracking.
8119
8120 2005-03-23  Chris Toshok  <toshok@ximian.com>
8121
8122         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8123         out some spew.
8124
8125 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8126
8127         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8128         changes to pick up any changes in prefix, etc.
8129
8130 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8131
8132         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8133         
8134         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8135         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8136
8137 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8138
8139         * class-internals.h object-internals.h class.c reflection.c: Extend the
8140         mono_lookup_dynamic_token () function to return the class of the
8141         token as well. 
8142
8143         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8144         well. Fixes #73848.
8145
8146 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8147
8148         * security-manager.c: Skip inheritance checks for intra-corlib
8149         class inheritance and method overrides. This skips a lot of checks
8150         and (anyway) permissions cannot work until corlib is loaded.
8151
8152 2005-03-23  Martin Baulig  <martin@ximian.com>
8153
8154         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8155         MONO_TYPE_GENERICINST.  
8156
8157 2005-03-23  Martin Baulig  <martin@ximian.com>
8158
8159         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8160
8161 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8162
8163         * class.c: added locking comments to some functions.
8164         Cache the interface offsets arrays (saves about 20 KB
8165         of runtime memory in a typical app).
8166         Reduce the time overhead in mono_class_setup_supertypes ().
8167
8168 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8169
8170         * icall.c: speedup and fix leaks in GetMethodsByName and
8171         GetPropertiesByName.
8172
8173 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8174
8175         * reflection.c: some locking fixes.
8176
8177 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8178
8179         * metadata.c: added missing break in case statement.
8180
8181 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8182
8183         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8184         typedbyref return values. Fixes #73941.
8185
8186 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8187
8188         * security-manager.c|h: Added demandunmanaged method and 
8189         suppressunmanagedcodesecurity class to MonoSecurityManager.
8190         Renamed aptc class to allowpartiallytrustedcallers.
8191
8192 2005-03-17  Martin Baulig  <martin@ximian.com>
8193
8194         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8195
8196 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8197
8198         * file-io.c: disabled file async. IO using aio_*. It uses the
8199         threadpool now. Workaround for bug #73718.
8200
8201 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8202
8203         * assembly.h, mono-config.c: added code to deal with bundled configs
8204         for bundled assemblies.
8205
8206 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8207
8208         * *.c, private.h: cleanup, removing old private.h header file.
8209
8210 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8211
8212         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8213         and throw_on_unmappable_char attributes.
8214
8215 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8216
8217         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8218         _ProcessName_internal.
8219
8220 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8221
8222         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8223         #73631.
8224
8225         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8226         are no longer used.
8227
8228 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8229
8230         * object.c (compute_class_bitmap): Add support for generics. Fixes
8231         #73527.
8232
8233 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8234
8235         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8236
8237 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8238
8239         * filewatcher.c: commented out the code for windows watcher, as we don't
8240         use it (we use the managed implementation instead).
8241
8242 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8243
8244         * object-internals.h (MonoThread): Remove 'unused1' field.
8245
8246         * appdomain.c: Bump corlib version.
8247
8248         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8249
8250         * reflection.c (mono_reflection_create_runtime_class): Remove the
8251         AssemblyBuilder.Save optimization since it causes too many problems.
8252
8253 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8254
8255         * exception.c|h: Added mono_get_exception_reflection_type_load to
8256         create a ReflectionTypeLoadException object.
8257         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8258         to return NULL is a InheritanceDemand fails during reflection. Updated
8259         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8260         ReflectionTypeLoadException if an InheritanceDemand fails during 
8261         reflection. Added icall mapping for GetLinkDemandSecurity.
8262         * security-manager.c|h: Added ves_icall_System_Security_
8263         SecurityManager_GetLinkDemandSecurity internal call to return the
8264         class and methods permissions set for a LinkDemand. Removed unused
8265         fields in MonoSecurityManager.
8266
8267 2005-03-10  Martin Baulig  <martin@ximian.com>
8268
8269         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8270         it's a generic instance.
8271
8272 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8273
8274         * reflection.c (mono_get_object_from_blob): Applied patch from
8275         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8276
8277         * class.c (mono_class_is_assignable_from): Another try at fixing 
8278         #73469 without breaking anything.
8279
8280 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8281
8282         * class.c: (mono_class_is_assignable_from): Revert the last changes
8283         since they don't work with generics.
8284         
8285         * class.c (mono_class_is_assignable_from): Fix build bustage.
8286
8287         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8288         the managed IsAssignableFrom method. Fixes #73469.
8289
8290         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8291         function.
8292
8293 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8294
8295         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8296         memory when the remoting callback does not sets the out arguments.
8297         Fixes #73007.
8298
8299         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8300         by mistake.
8301
8302         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8303
8304         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8305
8306         * appdomain.c: Bump corlib version.
8307
8308 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8309
8310         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8311         function.
8312
8313         * threads.c (mono_thread_attach): Detect threads which are not started
8314         by the GC pthread wrappers.
8315
8316 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8317
8318         * icall.c: Added new icall for RNG.
8319         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8320         single handle on Linux to access /dev/urandom and fix #73183.
8321
8322 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8323
8324         * object.c: setting the new vtable in a transparent proxy object must
8325         not change the GC descriptor.
8326
8327 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8328
8329         * object.c: fixed compilation without GCJ support.
8330         * reflection.c: for runtime-created types ensure klass->has_references
8331         is correct (bug #73215).
8332
8333 2005-03-02  Martin Baulig  <martin@ximian.com>
8334
8335         * class.c (mono_class_is_assignable_from): Make this work if
8336         `oklass' is a generic instance; fixes #72831.
8337
8338 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8339
8340         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8341         with hasthis set.
8342         
8343         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8344
8345         * marshal.c: Reorganize native->managed marshalling code to also use
8346         the emit_marshal_... functions.
8347
8348 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8349
8350         * object.c: typed allocs have issues with bitmap sizes > 30,
8351         so check for max_set >= 30.
8352
8353 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8354
8355         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8356         managed code. Fixes #73012.
8357
8358         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8359
8360         * metadata.c reflection.c: Load/Emit elem_mult as well.
8361         
8362         * metadata.h (MonoMarshalSpec): Add comment.
8363
8364         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8365
8366         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8367         num_elem to -1 if not given.
8368
8369         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8370
8371         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8372         given values.
8373
8374 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8375
8376         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8377
8378 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8379
8380         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8381
8382         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8383
8384 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8385
8386         * object.c: generalized the reference bitmap creation
8387         and added hooks for the new GC.
8388         * class-internals.c: removed the gc_bitmap field from MonoClass.
8389
8390 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8391
8392         * domain.c: help the compiler to produce better code
8393         in mono_jit_info_table_find ().
8394
8395 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8396
8397         * object.c: make all allocations look typed.
8398
8399 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8400
8401         * socket-io.c: load Mono.Posix if it's not loaded already
8402         (fixes bug#73033).
8403
8404 2005-02-24  Martin Baulig  <martin@ximian.com>
8405
8406         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8407         * reflection.c (dup_type): Likewise.
8408
8409 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8410
8411         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8412         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8413
8414 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8415
8416         * domain.c, threads.c, object-internals.h: make the critical thread
8417         local vars use the fast access mode (even when we're compiled in
8418         a lib). Provide accessors to be used by the jit during codegen.
8419
8420 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8421
8422         * appdomain.c: Changed hook functios behavior to include
8423         support for the reflection only assemblies. Some icalls were changed
8424         to support the mentioned assemblies too. Signatures of static methods
8425         try_assembly_resolve and real_load now have an additional parameter:
8426         refonly.
8427
8428         * assembly.c: General changes to mono_assembly_ methods to support
8429         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8430         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8431         suffix, to support an additional gbool parameter to specify whether
8432         the assembli is reflection only or not. Created some new hook functions 
8433         to add support for reflection only assemblies. Signatures of static 
8434         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8435         have now an additional parameter: refonly.
8436
8437         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8438         indicating whether the assembly is reflection only or not.
8439
8440         * exception.c: Add mono_get_exception_invalid_operation.
8441
8442         * icall.c: Throw an InvalidOperationException when trying to invoke
8443         a property/method/event, or trying to set/get the value of a field.
8444         Also add an icall to retrieve the ref_only flag to the
8445         MonoReflectionAssembly.
8446
8447 2005-02-23  Chris Toshok  <toshok@ximian.com>
8448
8449         Part of fix for #72827.
8450         * mono-debug.c (mono_debug_add_method): add lexical block data to
8451         the info we write.  Kind of a hack at the moment - we copy the
8452         lexical block info from the MonoDebugMethodInfo to the
8453         MonoDebugMethodJitInfo here, before writing it.
8454         (mono_debug_read_method): read the lexical block info.
8455
8456         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8457
8458         * debug-mono-symfile.h: add lexical block support.
8459
8460         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8461         support.
8462
8463 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8464
8465         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8466
8467         * object.c (mono_runtime_free_method): Call mono_free_method () and
8468         put the TODOs there.
8469
8470         * loader.c (mono_free_method): Free up most memory allocated for 
8471         dynamic methods.
8472
8473 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8474
8475         * reflection.c: properly flag a Type argument to a
8476         named custom attr value (bug #72248).
8477
8478 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8479
8480         * reflection.c: reduce code duplication in named custom
8481         attribute encoding.
8482
8483 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8484
8485         * reflection.c: properly encode custom attrs of type object
8486         (bug #72649).
8487
8488 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8489
8490         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8491
8492 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8493
8494         * socket-io.c: load System.dll if it's not loaded already
8495         (bug #72850 and #70477).
8496
8497 2005-02-21  Martin Baulig  <martin@ximian.com>
8498
8499         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8500         generic instances.
8501
8502 2005-02-21  Martin Baulig  <martin@ximian.com>
8503
8504         * reflection.c (mono_image_build_metadata): We also need to
8505         "fixup" the MethodImpl table after we computed the final method
8506         indices.  Call fixup_methodimpl() to do that.
8507         (fixup_methodimpl): New private method.
8508
8509 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8510
8511         * assembly.c: special case mscorlib.dll (bug#72536),
8512         patch from Carlos Alberto Cortez.
8513
8514 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8515
8516         * threads-types.h threads.c: Fix build bustage.
8517
8518         * threads.c: Use a union for long<->double conversions.
8519
8520         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8521         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8522
8523         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8524         containing the checkpoint call with NOT_TAKEN.
8525         
8526         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8527         checkpoint before pushing the arguments, so they won't have to be
8528         spilled to stack.
8529
8530 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8531
8532         * domain.c, assembly.c, domain-internals.h: make some data
8533         const and relocation-free.
8534
8535 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8536
8537         * object.c, appdomain.c, class-internals.h: introduce the
8538         MonoClassRuntimeInfo structure to hold the info needed to
8539         use a class at runtime. Made mono_class_vtable() lock-free
8540         for all the appdomains.
8541
8542 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8543
8544         * metadata-internals.h, image.c: introduce a per-image mempool to
8545         be used for memory that has the same lifetime as the image.
8546
8547 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8548
8549         * domain.c: In mono_init_internal(), instead of selecting the first
8550         runtime version supported by an executable, get a list of all
8551         supported versions and select the one for which an mscorlib exists
8552         (since even if the runtime supports a given version, it doesn't mean
8553         that the framework for that version is installed).
8554         Modified get_runtimes_from_exe to support this behavior.
8555         In supported_runtimes, added information about additional system
8556         assembly versions.
8557         
8558         * assembly.c: Added support for more than one system assembly version
8559         per runtime version. Updated the assembly list.
8560         In mono_assembly_remap_version, removed the initial version check,
8561         since we don't know to which version we need to compare until we
8562         get the version set on which the assembly is based.
8563         Moved the code for loading corlib into the new method
8564         mono_assembly_load_corlib(), so it can be used by the initialization
8565         code.
8566         
8567         * domain-internals.h: Updated data structures and added declaration
8568         for mono_assembly_load_corlib.
8569
8570 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8571
8572         * reflection.c (resolve_object): Fix the creation of the signature in 
8573         the SignatureHelper case.
8574
8575         * assembly.c (mono_assembly_remap_version): Fix binary search.
8576         
8577 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8578  
8579         * class.c: Added inheritance check when a method is overloaded (from a
8580         virtual method or when implementing an interface) and when a class is
8581         inherited. Added functions to set a failure for a class and to 
8582         retreive the exception from a failure.
8583         * class-internals.h: Added fields to MonoClass to keep the exception
8584         information status for inheritance (or other exceptions) to be thrown
8585         later (i.e. not at load time).
8586         * object.c: Throw the inheritance SecurityException when a type is to 
8587         be created with either class or method inheritance violations.
8588         * reflection.c|h: Fix when getting declsec from a class. Removed 
8589         unrequired code for class. Improved sanity in parameter naming.
8590         * security-manager.c|h: Added functions to check for class and method
8591         inheritance.
8592
8593 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8594
8595         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8596         and has_finalize in dynamic types as well.
8597
8598 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8599
8600         * culture-info-table.h : fixed currency format for en-GB (and so on).
8601
8602 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8603
8604         * gc.c: ensure the GC handles never have 0 as a value.
8605
8606 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8607
8608         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8609         a pointer to a struct to unmanaged code. Fixes #72625.
8610
8611 2005-02-16  Martin Baulig  <martin@ximian.com>
8612
8613         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8614
8615 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8616
8617         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8618
8619 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8620
8621         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8622
8623         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8624         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8625         etc. Fixes #71471.
8626
8627         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8628
8629         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8630
8631 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8632
8633         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8634         changes to make the current context a field in MonoThread.
8635
8636 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8637
8638         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8639         the last change.
8640         
8641         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8642         extracted from mono_marshal_get_native_wrapper.
8643
8644         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8645         to create wrappers around native functions.
8646
8647         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8648         delegates for arbitrary function pointers. Fixes #71472.
8649
8650 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8651
8652         * threads.c: cleaned up the code a little.
8653
8654 2005-02-15  Martin Baulig  <martin@ximian.com>
8655
8656         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8657         the data table.
8658
8659         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8660         allocate larger chunks if needed.
8661
8662 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8663
8664         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8665         in by mistake.
8666
8667 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8668
8669         * domain.c: keep the domains in an array and ensure the domain ids
8670         are kept small, so they can be used as indexes to domain-specific data
8671         with a small memory overhead.
8672
8673 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8674
8675         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8676
8677 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8678
8679         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8680
8681 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8682
8683         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8684
8685         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8686         values.
8687
8688         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8689         
8690 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8691
8692         * domain-internals.h: add the hashtable here.
8693
8694         * class-internals.h: Remove `info' from MonoMethod
8695
8696         * domain.c: Add a new hashtable, jit_trampoline_hash
8697
8698 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8699
8700         * object.c: don't set the value of static fields
8701         (fixes bug#72494).
8702
8703 2005-02-11  Martin Baulig  <martin@ximian.com>
8704
8705         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8706         (mono_debug_add_method): Silently ignore the method if it's too big.
8707         (mono_debug_add_type): Likewise.
8708
8709 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8710
8711         * threads.c, appdomain.c: remove #ifdefs from the code.
8712
8713 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8714
8715         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8716         common security informations. This allows us to stay in unmanaged code
8717         when doing LinkDemand and it's special cases (except for the first 
8718         time for initialization). The flags a very much used with --security.
8719         * reflection.c|h: Added code to get declarative security attributes 
8720         for LinkDemand and InheritanceDemand. This required to refactor the
8721         existing code for Demand.
8722         * security-manager.c|h: Added new method fields for the special cases
8723         of LinkDemand.
8724
8725 2005-02-10  Martin Baulig  <martin@ximian.com>
8726
8727         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8728         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8729
8730 2005-02-10  Martin Baulig  <martin@ximian.com>
8731
8732         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8733         debugging code; this is almost a complete rewrite.
8734
8735         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8736
8737 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8738
8739         * domain.c, object.h: expose mono_string_equal () and 
8740         mono_string_hash ().
8741         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8742         it's implemented in managed code.
8743
8744 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8745
8746         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8747         lo leak objects between appdomains.
8748
8749 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8750
8751         * assembly.c: old compilers compilation fix from 
8752         robertj@gmx.net (Robert Jordan).
8753
8754 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8755
8756         * class-internals.h: Little reminder for the future.
8757
8758         * debug-helpers.c: Fix up wrapper_type_names
8759
8760 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8761
8762         * image.c, metadata-internals.h: when loading an image from a file,
8763         mmap all of it and use the same codepaths as when using a
8764         in-memory image: the code is simpler and we use less memory
8765         (both writable and readonly).
8766
8767 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8768
8769         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8770         API to alloc runtime data structures that need to be tracked by the
8771         GC and contain pointers.
8772         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8773         make the code more readable and eventually use a different GC.
8774
8775 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8776
8777         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8778         for out arguments.
8779         
8780 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8781
8782         * object.c: In release_type_locks(), don't release the cctor lock
8783         if it has already been released. This fixes a crash in the
8784         thread5 test.
8785
8786 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8787
8788         * gc.c, marshal.c, icall.c: register a delegate for finalization
8789         only when the native function pointer has been allocated for it.
8790
8791 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8792
8793         * object.c: cleaned up some code, allocate objects that are
8794         pointer free with the atomic malloc variant. Allocate memory
8795         for static data from the mempool if it's pointer-free.
8796         Allocate the bounds array at the end of the array data, when needed.
8797         * object-internals.h, object.h: move a private function in a private
8798         header.
8799         * class.c: handle missing case in tracking references in fields.
8800
8801 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8802
8803         * class.c, class-internals.h: keep track if a type has
8804         reference fields in either the instance or static fields.
8805
8806 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8807
8808         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8809         and renamed to MonoRuntimeInfo. Added fields to store the expected
8810         framework assembly version. Changed mono_get_framework_version and
8811         mono_get_runtime_version for a single mono_get_runtime_info method.
8812         
8813         * assembly.c: Added method to remap system assembly versions to the
8814         current executing runtime version. Removed old mapping code.
8815         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8816         
8817         * icall.c, reflection.c: Track api changes.
8818
8819 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8820
8821         * loader.c (method_from_memberref): Improve error reporting,
8822         produce the class name instead of the typeref/typedef index. 
8823
8824 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8825
8826         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8827
8828 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8829
8830         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8831         stdcall and charset name mangling.  Reorganize the code and add
8832         some tracing stuff.
8833
8834 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8835
8836         * monodiet.c: More iters!
8837
8838         * marshal.c: Iter usage.
8839
8840         * icall.c: Iter usage.
8841
8842         * object.c: Use iters.
8843
8844         * debug-helpers.c: More iters
8845
8846 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8847
8848         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8849         under win32.
8850
8851 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8852
8853         * mono-debug-debugger.c: use iters
8854
8855         * class.c, class-internals.h: mono_class_setup_events is static
8856         now
8857
8858         * All callers: use iters
8859
8860 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8861
8862         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8863         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8864
8865 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8866
8867         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8868
8869         * marshal.h: Add prototypes for ldfld/stfld_remote.
8870
8871         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8872         this is called during startup.
8873         
8874 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8875
8876         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8877         MonoThreadsSync struct private in monitor.c. Changed the way
8878         MonoThreadsSync is allocated so it's faster and there is no
8879         need to keep track of it with a finalizer and it uses less memory.
8880         This also finally allows us to allocate mono objects as ptrfree when
8881         there are no reference fields.
8882
8883 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8884
8885         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8886         disappearing link to the GC interface and use them to simplify
8887         the gchandles code.
8888
8889 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8890
8891         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8892         stfld_remote which call mono_load/store_field_new. This allows methods
8893         calling ldfld/stfld wrappers to be AOTed.
8894
8895         * console-io.c: Include sys/filio.h under solaris.
8896         
8897         * console-io.c: Include curses.h if needed correctly.
8898
8899 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8900         
8901         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8902         method->klass as well.
8903
8904         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8905
8906         * class.c (mono_class_init): Switch on lazy initialization of 
8907         methods.
8908
8909         * class.c (mono_class_get_finalizer): Handle the case when the 
8910         finalizer is inherited.
8911
8912 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8913
8914         * console-io.c: <curses.h> is needed by term.h on solaris.
8915
8916 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8917
8918         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8919         mono_class_setup_properties where possible. Remove this ftn from
8920         the header file, and make it static.
8921
8922 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8923
8924         * loader.c: Add missing setup_... call.
8925
8926         * class.c: Add missing setup_... calls.
8927
8928         * class.c (mono_class_init): Switch on lazy initialization of 
8929         the generic vtable.
8930         
8931         * class.c (mono_class_init): Fix generics broken by the recent changes.
8932
8933         * monodiet.c (handle_type): Add missing setup_... calls.
8934
8935         * class.c: Back out garbage in previous patch.
8936         
8937         * class.c: Add missing setup_... calls.
8938
8939         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8940         mono_class_setup_methods () if possible.
8941
8942         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8943
8944         * class-internals.h (MonoCachedClassInfo): New structure.
8945
8946         * class.c: Initialize properties and events fields of MonoClass lazily.
8947
8948         * class.c: Add infrastructure for lazily initializing the methods and
8949         vtable fields of MonoClass. Not yet used.
8950
8951         * class.c (mono_class_get_finalizer): New helper function.
8952
8953         * class.c: Add infrastructure for loading some class related data from
8954         an AOT file.
8955
8956         * object.c: Add infrastructure for initializing the vtable from data
8957         in the AOT file.
8958
8959         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8960
8961         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8962         appropriate initialization function before accessing parts of the
8963         MonoClass structure.
8964
8965         * marshal.c: Fix warnings.
8966         
8967         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8968
8969         * mono-debug-debugger.c (get_exception_message): Use 
8970         mono_class_get_method_from_name_flags ().
8971
8972 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8973
8974         * reflection.c, appdomain.c: Replace a few manual searches that
8975         Zoltan missed. (Paolo approved this part of my initial patch).
8976
8977 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8978
8979         * profiler.c: disable recording statistical events at report time.
8980
8981 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8982
8983         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8984         to byteswap arrays of enum values, too (bug #72080).
8985
8986 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8987
8988         * appdomain.c (set_domain_search_path): Allow this to be called if
8989         domain->setup is not yet set.
8990
8991         * loader.c (mono_method_get_index): New helper function.
8992
8993         * loader.c reflection.c: Use mono_method_get_index ().
8994
8995         * class.c (mono_class_get_method_from_name_flags): New helper method.
8996
8997         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8998         this.
8999
9000         * class.c (mono_class_get_cctor): New helper method.
9001
9002         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9003         mono_class_get_method () to look up methods.
9004
9005 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9006
9007         * console-io.c: Fix the build, this should work on Windows.
9008
9009 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9010
9011         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9012         be set to null to keep things valid
9013
9014 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9015
9016         * icall.c: added Console 2.0 icalls.
9017         * Makefile.am: added console-io.[ch]
9018         * console-io.[ch]: internal calls for Console 2.0 API.
9019
9020 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9021
9022         * class.c: make sure we consider all the interfaces
9023         when calculating max_interface_id (bug found by
9024         Jeroen Frijters running ikvm).
9025
9026 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9027
9028         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9029         valuetype fields to null.
9030
9031         * object.c (set_value): Ditto. Fixes #71669.    
9032
9033 2005-01-31  Martin Baulig  <martin@ximian.com>
9034
9035         * metadata.c (mono_metadata_has_generic_params): New public
9036         function; checks whether something is a generic method.
9037
9038 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9039
9040         * appdomain.c: fix infinite recursion when adding assemblies.
9041
9042 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9043
9044         * object.c: Fix small typo to return all items for Environment.
9045         GetCommandLineArgs.
9046
9047 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9048
9049         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9050         reflection.c: more domain and assembly-unload related fixes
9051         and memory leaks plugs.
9052
9053 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9054
9055         * 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.
9056
9057 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9058
9059         * loader.c (mono_method_signature): Make this method lazy
9060         (mono_get_method_from_token): Don't computate the signature here.
9061
9062         Doing this saves quite a bit of memory. I got 90 kb on starting up
9063         monodoc. It should also save some disk reads on startup.
9064
9065         * *: MonoMethod->signature might be NULL now. You *MUST* use
9066         mono_method_signature.
9067
9068 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9069
9070         * object.c (mono_runtime_get_main_args): Return an array from the
9071         current domain here. Fixes #71938.
9072
9073 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9074
9075         * monitor.c: formatting changes to comply with the
9076         mono coding style and remove #ifdefs from the code.
9077
9078 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9079
9080         * metadata.c, private.h: remove some unneeded data
9081         and use a more compact representation for table schemas.
9082
9083 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9084
9085         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9086         to get a better distribution in hash tables.
9087         * *.c: use mono_aligned_addr_hash() where appropriate.
9088         * assembly.c: make var static.
9089
9090 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9091
9092         * domain-internals.h: Put MonoJitInfo on a diet.
9093
9094         * domain.c: Fix a warning.
9095
9096 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9097
9098         * gc.c: rework the gc handles code to reuse handles
9099         when freed.
9100
9101 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9102
9103         * domain.c: fixed long standing bug in mono_string_equal() which
9104         was brought to light with the ldstr changes.
9105
9106 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9107
9108         * reflection.c: Remove warning by adding missing include for marshal.h
9109
9110 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9111
9112         * domain.c, object.c: change the ldstr_table to hold
9113         MonoString* as keys: makes the runtime isinterned lookup
9114         faster and simplifies memory management.
9115
9116 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9117  
9118         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9119         possible to add imperative security checks before calling the icall.
9120         * reflection.c: Return security attributes on the original MonoMethod
9121         (and not the wrapped one). This fix permissions on icalls.
9122
9123 2005-01-25  Dick Porter  <dick@ximian.com>
9124
9125         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9126         the check for mktime() support actually test the mktime() return
9127         value.  "Fixes" bug 71682, though the output is still different to
9128         MS.
9129
9130 2005-01-25  Martin Baulig  <martin@ximian.com>
9131
9132         * class.c (mono_class_is_assignable_from): Make this work for
9133         generic instances.
9134
9135 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9136
9137         * marshal.c (mono_string_utf8_to_builder)
9138         (mono_string_builder_to_utf16): We might not have ownership of the
9139         string. In thise case, we need to create a new buffer.
9140
9141         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9142         be null, in which case, use the default capacity.
9143
9144 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9145
9146         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9147         GC events to the profiler.
9148
9149 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9150
9151         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9152         if you don't want the GC to run.
9153
9154 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9155
9156         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9157         start providing a GC API and keeping different implementations in
9158         their own file.
9159         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9160
9161 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9162
9163         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9164         mmap rather than allocating a huge buffer.
9165         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9166         above.
9167
9168 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9169
9170         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9171         and CheckExecutionRights.
9172         * reflection.c|h: Keep the index of the declarative security to be 
9173         used, instead of the pointer, when AOT compiler is used. Also add 
9174         class initialization when requesting demands.
9175         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9176         CheckExecutionRights. Both properties are now FALSE by default, and
9177         unmodifiable, unless the --security option is used.
9178
9179 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9180
9181         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9182         reflection.c: properly refcount images and assemblies, many leaks fixed.
9183
9184 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9185
9186         * threadpool.c: increase the timeout for threads in the thread pool to
9187         10s.  Fixes bug #67159.
9188
9189 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9190
9191         * class-internals.h: Sun's compiler insists on explicit
9192         signed on bit fields to handle then correctly.
9193
9194 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9195
9196         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9197         Make the size of the array fit only the number of invalid path
9198         chars that we have.
9199
9200         * class.c (_mono_class_get): Improve the error reporting when a
9201         class referenced is not found, to assist debugging. 
9202
9203 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9204
9205         * threads.c: fix off-by-one error.
9206         * domain.c: free data allocated in the domain.
9207
9208 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9209
9210         * reflection.c (mono_method_body_get_object): Fill out exception info
9211         as well.
9212
9213         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9214         structure.
9215         
9216 2005-01-19  Martin Baulig  <martin@ximian.com>
9217
9218         * loader.c (mono_get_method_constrained): Make this work again.
9219
9220 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9221
9222         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9223         guint16 to match the managed side.
9224
9225         * reflection.c (mono_reflection_body_get_object): Fill out local
9226         variables array.
9227
9228         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9229         as well.
9230
9231         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9232         'local_var_sig_token'.
9233
9234 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9235
9236         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9237         System.Drawing.
9238
9239         * reflection.c (mono_method_body_get_object): Handle abstract and
9240         runtime methods.
9241
9242 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9243
9244         * marshal.c, loader.c, class-internals.h, reflection.c:
9245         store the emthod data for a wrapper in an array instead of a list.
9246
9247 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9248
9249         * marshal.c: change the code to allocate memory more
9250         conservatively for method wrappers.
9251
9252 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9253
9254         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9255         fields from MonoClass to the marshal info structure where they belong.
9256
9257 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9258
9259         * class.c, object.c, class-internals.h, marshal.c: rearrange
9260         some fields and tweak some types to lower memory usage.
9261
9262 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9263
9264         * threads.c (signal_thread_state_change): Handle the case when the
9265         target thread is the current thread.
9266
9267         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9268
9269         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9270         emit_ptr_to_object_conv. 
9271
9272         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9273         marshalling. Fixes #71352.
9274
9275 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9276
9277         * metadata.h, blob.h: move table enum to blob.h so it can be included
9278         in any header.
9279         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9280         cut the size of MonoImage/MonoDynamicImage.
9281
9282 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9283
9284         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9285
9286 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9287
9288         * reflection.c, reflection.h, icall.c: add a function to check
9289         if an attribute type is defined for a metadata object.
9290
9291 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9292
9293         * object-internals.h: Added some needed fields from StringBuilder class.
9294         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9295
9296 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9297
9298         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9299         threads before shutting down the runtime.
9300
9301         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9302
9303 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9304
9305         * object-internal.h, threads.c: implement stacksize and 
9306         parameterized thread start functionality (requires
9307         matching corlib). Marked broken code for later removal.
9308
9309 2005-01-12  Martin Baulig  <martin@ximian.com>
9310
9311         * class-internals.h (MonoGenericClass): Moved the `initialized'
9312         flag to MonoDynamicGenericClass, removed `init_pending'.
9313         (MonoGenericInst): Added `is_reference' flag.
9314
9315 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9316
9317         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9318         inside the MSDOS header. Fixes #71201.
9319
9320         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9321         gc thread.
9322         (mono_domain_finalize): Ditto.
9323
9324 2005-01-12  Martin Baulig  <martin@ximian.com>
9325
9326         * class.c (mono_get_shared_generic_class): Use the cache for
9327         non-dynamic generic classes.
9328
9329         * class-internals.h (mono_class_create_generic_2): Removed
9330         function prototype, this function is now static inside class.c.
9331
9332         * class.c (mono_class_create_generic_2): Made this static, only
9333         call it from mono_class_init() and mono_class_setup_parent().
9334         (collect_implemented_interfaces_aux): Call mono_class_init() on
9335         the interfaces we collect.
9336         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9337
9338 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9339
9340         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9341         it a real thread handle.
9342
9343         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9344         MonoJitExceptionInfo, since each catch clause needs its own variable.
9345         
9346 2005-01-11  Dick Porter  <dick@ximian.com>
9347
9348         * image.c (mono_pe_file_open): New variant on mono_image_open()
9349         that does not set up the CLI metadata; used for FileVersionInfo so
9350         it can get the data for windows binaries too.
9351         
9352         * process.c (process_read_string_block): Don't read off the end of
9353         the StringTable block.
9354
9355         These both fix bug 70766.
9356
9357 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9358
9359         * gc.c: set some fields to NULL at GC cleanup time.
9360         * threads.c: if we quit the main thread, call exit ().
9361
9362 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9363
9364         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9365
9366 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9367
9368         * threads.h, threads.c, object.c: added accessor and settor for
9369         main_thread. Handle it specially when exiting from it: wait
9370         for other foreground threads to exit.
9371
9372 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9373
9374         * process.c, verify.c: remove some bloat.
9375
9376 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9377
9378         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9379         the calling convention to cdecl under win32.
9380
9381 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9382
9383         * object.c (mono_object_get_size): New function to get the size of
9384         an object instance.
9385
9386         * profiler.c (simple_allocation): Use above.
9387
9388 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9389
9390         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9391         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9392         get an appdomain by it's id and we can't assume the root's id is 0).
9393         * domain-internals.h: Change the function prototype to match.
9394         * icall.c: Change the icall table for AppDomain.
9395
9396 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9397
9398         * locales.c (string_invariant_compare_char): Only compute
9399         GUnicodeTypes in the case where we need them.  Test for ordinality
9400         first and return if so.
9401
9402         From the commit:
9403
9404                 /*
9405                  * FIXME: here we must use the information from c1type and c2type
9406                  * to find out the proper collation, even on the InvariantCulture, the
9407                  * sorting is not done by computing the unicode values, but their
9408                  * actual sort order.
9409                  */
9410
9411 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9412
9413         * loader.c: for P/Invoke methods, allow the "Internal" shared
9414         library name to refer to the calling process symbol namespace.
9415
9416 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9417
9418         * Makefile.am: Add the security manager to the build.
9419         * security-manager.c|h: New. Initialization of the security manager.
9420
9421 2005-01-07  Dick Porter  <dick@ximian.com>
9422
9423         * threads.c: 
9424         * monitor.c: Update thread state during Monitor and WaitHandle
9425         waits.  Fixes bug 71031.
9426
9427 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9428
9429         * reflection.c (property_encode_signature): Correctly handle when the
9430         property has no methods.
9431
9432 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9433
9434         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9435         
9436         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9437         fields from mb, not rmb. Fixes #71017.
9438
9439         * marshal.c (emit_ptr_to_str_conv): Add support for 
9440         ByValTStr -> string conversion. Fixes #71015.
9441
9442         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9443
9444         * mempool.c (mono_mempool_contains_addr): New helper function.
9445
9446 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9447
9448         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9449         HasSematics encoded fields.
9450         
9451         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9452         invalid string marshalling.
9453
9454         * metadata.c: Fix warnings.
9455         
9456 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9457
9458         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9459         profiler support.
9460
9461 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9462
9463         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9464         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9465         tests.
9466
9467 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9468
9469         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9470         so methods containing these can be AOTed.
9471
9472 2005-01-03  Martin Baulig  <martin@ximian.com>
9473
9474         * loader.c (find_method): Removed the hack for generic instances.
9475         (method_from_memberref): If our parent is a generic instance, pass
9476         its generic type definition to find_method() and then inflate the
9477         method.
9478         (mono_get_method_constrained): Pass the generic type definition to
9479         find_method() and inflate the method later.
9480
9481         * class-internals.h (MonoStats): Added `generic_class_count'.
9482
9483         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9484         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9485
9486         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9487         generic type definitions.
9488
9489 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9490
9491         * loader.c icall.c: Fix warnings.
9492
9493 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9494
9495         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9496         blittable types. Fixes #70864.
9497
9498 2004-12-29  Martin Baulig  <martin@ximian.com>
9499
9500         * icall.c
9501         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9502
9503         * reflection.c (mono_method_get_object): Create a
9504         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9505         call mono_get_inflated_method().
9506
9507         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9508
9509 2004-12-27  Martin Baulig  <martin@ximian.com>
9510
9511         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9512         (MonoMethodInflated): Added `inflated' field.
9513
9514         * class.c (mono_class_inflate_generic_method): Don't really
9515         inflate the method here; just set the `is_inflated' flag in the
9516         MonoMethod.
9517         (mono_class_get_inflated_method): Actually inflate the method here
9518         if it's not already inflated; we use the MonoMethodInflated's new
9519         `inflated' field as a cache.
9520
9521 2004-12-26  Martin Baulig  <martin@ximian.com>
9522
9523         * class.c
9524         (inflate_generic_class): Moved some code out of inflate_generic_type().
9525         (mono_class_inflate_generic_method): If we're already inflated,
9526         inflate the context and use the declaring method; ie. make sure
9527         the declaring method of an inflated method is always the generic
9528         method definition.
9529         (mono_class_create_from_typedef): Create
9530         `class->generic_container->context->gclass'.
9531
9532 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9533
9534         * metadata-internals.h, marshal.c, reflection.c: More
9535         MonoGHashTable->GHashTable.
9536
9537         * domain-internals.h, class.c: Change MonoGHashTable's into
9538         GHashTables for some cases where no gc stuff is used
9539
9540         All users: update apis
9541
9542 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9543
9544         * metadata.c (builtin_types): Make this `const'. Makes this get
9545         put into the shareable section.
9546         (mono_metadata_init): Casts to make gcc happy.
9547
9548 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9549
9550         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9551
9552 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9553
9554         * icall.c: Added an internal call to retrieve the position and length
9555         of assembly-level declarative security attributes (RequestMinimum, 
9556         RequestOptional and RequestRefuse). This is used by the Assembly class
9557         to re-create the corresponding permission sets.
9558
9559 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9560
9561         * marshal.c: fix the stelemref wrapper to be type correct
9562         (and faster).
9563
9564 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9565
9566         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9567         to do key & 0x7fffffff. Hashtable already does this. It just
9568         results in longer code.
9569
9570 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9571
9572         * appdomain.c: Bump corlib version.
9573         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9574         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9575         * reflection.c|h: Add functions to get declarative security infos
9576         (blob position and length) for assemblies, classes and methods.
9577
9578 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9579
9580         * reflection.c: sort the constant table (bug #70693).
9581
9582 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9583
9584         * object-internals.h, threads.c, domain.c: add accessors for
9585         the MonoThread and MonoDomain tls keys.
9586
9587 2004-12-18  Martin Baulig  <martin@ximian.com>
9588
9589         * class.c (inflate_generic_type): If we're inflating a generic
9590         instance, set `ngclass->context->container = context->container';
9591         ie. the container we inflated into.
9592
9593         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9594         inflate_generic_type() changes.
9595
9596 2004-12-17  Martin Baulig  <martin@ximian.com>
9597
9598         * class-internals.h
9599         (MonoGenericClass): Replaced `MonoType *generic_type' with
9600         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9601         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9602         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9603
9604 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9605
9606         * exception.c (mono_exception_from_token): New helper function.
9607
9608 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9609
9610         * assembly.c (mono_assembly_load_with_partial_name): Call 
9611         mono_assembly_loaded before invoking the preload hooks. Fixes
9612         #70564.
9613
9614         * object-internals.h (MonoThread): Change culture_info and 
9615         ui_culture_info into an array.
9616
9617         * threads.c: Cache culture info objects from more than one appdomain.
9618
9619         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9620         current UI culture.
9621
9622 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9623
9624         * threads.h threads.c appdomain.c: Clear the culture_info field of
9625         all threads during unloading if they point to an object in the dying
9626         appdomain.
9627
9628 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9629
9630         * culture-info.h (TextInfoEntry): New struct
9631         * object-internals.h: sync with managed
9632         * locales.c: fill the `text_info_data' field
9633         * culture-info-tables.h: update
9634
9635 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9636
9637         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9638         collector.
9639
9640 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9641
9642         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9643         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9644
9645 2004-12-12  Martin Baulig  <martin@ximian.com>
9646
9647         * mono-debug-debugger.c (write_type): If we're an enum and the
9648         builtin types have already been initialized, call mono_class_init().
9649
9650 2004-12-11  Martin Baulig  <martin@ximian.com>
9651
9652         * metadata.c (mono_metadata_load_generic_params): Added
9653         `MonoGenericContainer *parent_container' argument; automatically
9654         compute `container->is_method'; pass the correct owner to
9655         get_constraints().      
9656
9657         * reflection.c (compare_genericparam): Sort the GenericParam table
9658         according to increasing owners. 
9659
9660 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9661
9662         * profiler.c: allow disabling the default profiler.
9663
9664 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9665
9666         * decimal.c, icall.c: allow disabling System.Decimal support.
9667
9668 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9669
9670         * reflection.c: Add support for null attribute arguments.
9671
9672 2004-12-09  Martin Baulig  <martin@ximian.com>
9673
9674         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9675         names to get rid of compiler warnings.
9676
9677 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9678
9679         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9680         mono_marshal_load_type_info (). Fixes #69625.
9681         (mono_marshal_get_ptr_to_struct): Likewise.
9682
9683 2004-12-08  Martin Baulig  <martin@ximian.com>
9684
9685         * mono-debug.h: Bumped version number to 47.
9686
9687         * mono-debug-debugger.c
9688         (mono_debugger_event_handler, mono_debugger_event): Take two
9689         guint64 arguments insteed of a gpointer and a guint32.  
9690
9691 2004-12-08  Martin Baulig  <martin@ximian.com>
9692
9693         * debug-mono-symfile.h
9694         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9695         `address' to `native_offset'.
9696
9697 2004-12-08  Martin Baulig  <martin@ximian.com>
9698
9699         * class.c (mono_class_create_from_typespec): Only inflate if we
9700         either have `context->gclass' or `context->gmethod'.
9701
9702 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9703
9704         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9705
9706         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9707
9708         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9709
9710         * reflection.c (mono_assembly_get_object): Remove the workaround put
9711         in for the release.
9712         
9713         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9714
9715         * appdomain.c: Bump corlib version.
9716
9717         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9718         be visible in other appdomains.
9719
9720 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9721
9722         * threads.c: Interlocked inc and dec for longs were messed up,
9723         use a KISS based impl for this. Fixes 70234
9724
9725 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9726
9727         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9728
9729 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9730
9731         * icall.c: fix to follow policy not to allow struct
9732         arguments in icalls.
9733
9734 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9735
9736         * process.c: make the patch that handles spaces in file paths work
9737         on mono/windows too.
9738
9739 2004-12-06  Martin Baulig  <martin@ximian.com>
9740
9741         * class.c (mono_class_create_generic): Call
9742         mono_class_setup_supertypes() if we're dynamic.
9743         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9744
9745 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9746
9747         * object-internals.h: Add new fields to MonoThread.
9748
9749         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9750
9751         * icall.c threads-types.h threads.c: Add new icalls.
9752
9753         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9754
9755         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9756         managed side.
9757
9758         * appdomain.c: Bump corlib version.
9759
9760         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9761         internal assemblies. Fixes #69181.
9762
9763 2004-12-05  Martin Baulig  <martin@ximian.com>
9764
9765         * class.c (mono_class_inflate_generic_signature): Make this a
9766         no-op if `context' is NULL or we don't have any type parameters;
9767         also copy `sentinelpos'.        
9768
9769 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9770
9771         * image.c: Add unbox_wrapper_cache.
9772
9773         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9774
9775         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9776         function generator.
9777         
9778         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9779         Fixes #70173.
9780
9781         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9782         
9783 2004-12-04  Martin Baulig  <martin@ximian.com>
9784
9785         * loader.c (mono_method_get_signature_full): New public function;
9786         like mono_method_get_signature(), but with an additional
9787         `MonoGenericContext *' argument.
9788
9789         * class.c (mono_class_inflate_generic_signature): Formerly known
9790         as inflate_generic_signature(); make this public.
9791
9792 2004-12-04  Martin Baulig  <martin@ximian.com>
9793
9794         * metadata.c
9795         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9796         instead of a `MonoGenericContainer *'.  
9797         (mono_metadata_parse_array_full): Likewise.
9798         (mono_metadata_parse_signature_full): Likewise.
9799         (mono_metadata_parse_method_signature_full): Likewise.
9800         (mono_metadata_parse_generic_inst): Likewise.
9801         (mono_metadata_parse_generic_param): Likewise.
9802         (mono_metadata_parse_mh_full): Likewise.
9803         (mono_type_create_from_typespec_full): Likewise.
9804
9805 2004-12-03  Martin Baulig  <martin@ximian.com>
9806
9807         * class-internals.h (MonoGenericContainer): Replaced the
9808         `MonoGenericContext * pointer with a `MonoGenericContext'
9809         structure and made it the first element.
9810
9811 2004-12-03  Martin Baulig  <martin@ximian.com>
9812
9813         * class.c
9814         (inflate_generic_type): Set the `context->container' when creating
9815         a new MonoGenericContext.
9816         (mono_class_inflate_generic_method): Likewise.
9817         (mono_class_create_from_typespec): Just use `context->container'
9818         to get the container.
9819
9820         * loader.c (method_from_methodspec): Set `context->parent' from
9821         `context->container' - and if that's a method container, use its
9822         parent.  Also set the `context->container' when creating a new
9823         MonoGenericContext.
9824         (mono_get_method_from_token): Use just `context->container' to get
9825         the container.
9826
9827         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9828         `gclass->context->container'.
9829
9830         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9831         the `context->container' when creating a new MonoGenericContext.
9832
9833 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9834
9835         * reflection.c (compare_genericparam): Sort params with identical
9836         owner by their number. Fixes gen-111 on sparc.
9837
9838 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9839
9840         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9841         around the domain changes.
9842
9843         * appdomain.c (mono_domain_unload): Handle the case when the thread
9844         calling Unload is itself being aborted during unloading. Fixes #70022.
9845
9846         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9847
9848         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9849         checkpoint_func as an icall so it gets a wrapper.
9850         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9851         in the cross-appdomain wrappers too.
9852
9853         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9854
9855         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9856
9857         * reflection.c: Fix some memory leaks.
9858         
9859 2004-12-02  Martin Baulig  <martin@ximian.com>
9860
9861         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9862
9863         * metadata.c (generic_class_cache): New static hashtable.
9864         (mono_metadata_lookup_generic_class): New public method.
9865
9866 2004-12-02  Martin Baulig  <martin@ximian.com>
9867
9868         * class.c (mono_class_create_from_typedef): Call
9869         mono_class_setup_parent() and mono_class_create_mono_type() before
9870         parsing the interfaces.
9871
9872 2004-12-02  Martin Baulig  <martin@ximian.com>
9873
9874         * metadata.c (generic_inst_cache): New static hashtable.
9875         (mono_metadata_lookup_generic_inst): New public function.
9876         (mono_metadata_inflate_generic_inst): New public function.
9877         (mono_metadata_parse_generic_inst): New public function.
9878         (do_mono_metadata_parse_generic_class): Use the new
9879         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9880         since this'll also use the cache.
9881
9882         * reflection.c (mono_reflection_bind_generic_method_parameters):
9883         Use mono_metadata_lookup_generic_inst() to use the new cache.
9884
9885         * class.c (inflate_mono_type): Use
9886         mono_metadata_inflate_generic_inst() to inflate a generic
9887         instance; this'll also use the new cache.
9888
9889         * loader.c (method_from_methodspec): Use
9890         mono_metadata_parse_generic_inst() and
9891         mono_metadata_inflate_generic_inst() rather than parsing it
9892         manually, so we can use the new cache.
9893
9894 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9895
9896         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9897         the wait times out.
9898
9899 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9900
9901         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9902         iter->args based on whether parameters are passed in registers (i.e.
9903         MONO_ARCH_REGPARMS is defined)
9904
9905 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9906
9907         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9908         the exception message. Fixes #70070.
9909         (method_from_methodspec): Fix warnings.
9910
9911 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9912
9913         * process.c: (complete_path) return the path quoted
9914
9915 2004-12-01  Martin Baulig  <martin@ximian.com>
9916
9917         * class-internals.h (MonoGenericInst): New structure.
9918         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9919         `is_open' with `MonoGenericInst *inst'.
9920         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9921         `is_open' with `MonoGenericInst *inst'.
9922
9923 2004-11-30  Martin Baulig  <martin@ximian.com>
9924
9925         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9926
9927         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9928         to `generic_class_cache'.
9929
9930         * metadata.c
9931         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9932         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9933         (mono_generic_inst_is_valuetype): Renamed to
9934         mono_generic_class_is_valuetype().
9935
9936         * class-internals.h
9937         (MonoGenericInst): Renamed to MonoGenericClass.
9938         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9939         (MonoClass): Renamed `generic_inst' to `generic_class'.
9940         (MonoGenericContext): Renamed `ginst' to `gclass'.
9941
9942         * object-internals.h
9943         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9944
9945         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9946         mono_reflection_generic_class_initialize().
9947
9948         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9949         now known as "System.Reflection.MonoGenericClass".
9950         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9951
9952 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9953
9954         * class-internals.h: Added a flag field to MonoClass to cache the
9955         declarative security attributes actions associated with the class.
9956         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9957         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9958         applicable to the JITted method.
9959         * reflection.c|h: Added functions to extract (as flags) which security
9960         actions are available (declaratively) for a method, class or assembly.
9961         * metadata.c|h: Added functions to search the declarative security
9962         table in the metadata.
9963         
9964 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9965
9966         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9967         EXPORTEDTYPES are already in the class name cache, so there is no
9968         need to add extra code here to look at them. Just removes a bit of
9969         cruft.
9970
9971         (ves_icall_System_Environment_get_TickCount): No need for #if
9972         WINDOWS. We already have the code in io-layer.
9973
9974 2004-11-28  Martin Baulig  <martin@ximian.com>
9975
9976         * loader.c
9977         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9978         Fixes gen-112.cs.
9979
9980 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9981
9982         * assembly.c (do_mono_assembly_open): Instead of having a
9983         conditional WITH_BUNDLE, incorporate support for bundles here, by
9984         having a global `bundles' variable holding a pointer to the actual
9985         bundles. 
9986
9987         (mono_register_bundled_assemblies): New API call used by the
9988         bundle code. 
9989
9990         See mkbundle.1 for details.
9991         
9992 2004-11-27  Martin Baulig  <martin@ximian.com>
9993
9994         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9995         the vtable for generic methods.
9996
9997 2004-11-26  Martin Baulig  <martin@ximian.com>
9998
9999         * metadata.c
10000         (mono_metadata_generic_method_hash): New public function.
10001         (mono_metadata_generic_method_equal): Likewise.
10002
10003         * class-internals.h
10004         (MonoGenericContainer): Added `GHashTable *method_hash'.
10005
10006         * reflection.c (ReflectionMethodBuilder): Added
10007         `MonoGenericContainer *generic_container'.
10008         (reflection_methodbuilder_to_mono_method): Don't create a new
10009         MonoGenericContainer each time we're called.
10010         (mono_reflection_bind_generic_method_parameters): Use
10011         `container->method_hash' to cache the results so we don't create a
10012         different method if we're called several times with the same
10013         arguments.
10014
10015         * loader.c (method_from_methodspec): Use the new
10016         `container->method_hash' here, too.
10017
10018 2004-11-26  Martin Baulig  <martin@ximian.com>
10019
10020         * class.c (inflate_generic_signature): Correctly compute
10021         `res->has_type_parameters'.
10022         (mono_class_vtable): Use the `has_type_parameters' flag to
10023         determine whether we're a generic method.
10024
10025         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10026
10027 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10028
10029         * object.c (mono_runtime_run_main): Fix a small memory leak.
10030
10031 2004-11-25  Martin Baulig  <martin@ximian.com>
10032
10033         * class.c (set_generic_param_owner): Fixed the loop.
10034
10035 2004-11-25  Martin Baulig  <martin@ximian.com>
10036
10037         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10038         generic methods.
10039
10040 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10041
10042         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10043         names. Fixes #69787.
10044
10045 2004-11-24  Martin Baulig  <martin@ximian.com>
10046
10047         * class.c (mono_class_create_generic_2): If we don't have a
10048         `ginst->parent', inflate `gklass->parent' to get our parent.
10049
10050 2004-11-24  Martin Baulig  <martin@ximian.com>
10051
10052         * reflection.c (compare_genericparam): Correctly sort the
10053         GenericParam table; fixes #69779.
10054
10055 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10056
10057         * reflection.c: When writing a PE file, don't create a huge
10058         buffer in memory. Just write the arrays we have to the file.
10059         This reduces memory usage.
10060
10061         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10062         globally.
10063
10064 2004-11-17  Martin Baulig  <martin@ximian.com>
10065
10066         * class.c (mono_class_init): Don't setup `class->parent' for
10067         dynamic instances; moved this to mono_class_generic_2().
10068         (mono_class_create_generic): Also set `klass->inited' for dynamic
10069         generic instances.
10070         (mono_class_create_generic_2): Don't do anything for dynamic
10071         generic instances.  Set `klass->parent' here and also call
10072         mono_class_setup_parent() here. 
10073
10074         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10075         `MonoType *parent' argument; set `ginst->parent' before calling
10076         mono_class_create_generic_2(), so we set the correct parent.
10077
10078 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10079
10080         * reflection.c: allow getting attributes from ModuleBuilder
10081         (used by ikvm).
10082
10083 2004-11-17  Martin Baulig  <martin@ximian.com>
10084
10085         * class.c (mono_class_create_from_typedef): If a type parameter is
10086         inherited from an outer class, set its owner to that class.
10087
10088 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10089
10090         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10091           for (int*) written size. This fixes bug #69592.
10092
10093 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10094
10095         * icall.c: Added IsAuthenticodePresnet internal call.
10096         * image.c|h: New function that check a MonoImage for an Authenticode
10097         signature in the certificate PE data directory.
10098         * security.c|h: New internal call to ask the runtime if an 
10099         Authenticode signature seems referenced in the PE header.
10100
10101 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10102
10103         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10104
10105         * reflection.c (mono_image_create_pefile): Free the assembly streams
10106         after writing out the assembly file.
10107
10108         * object.c (mono_runtime_run_main): Fix small memory leak.
10109
10110         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10111         property access modifiers. Fixes #69389.
10112
10113 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10114
10115         * domain.c, object.c, object-internals.h, domain-internals.h,
10116         object.h, marshal.c: keep dynamic code info per domain.
10117
10118 2004-11-15  Martin Baulig  <martin@ximian.com>
10119
10120         * class.c (mono_type_get_name_recurse): Put type arguments in
10121         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10122         see bug #68387.
10123
10124 2004-11-15  Martin Baulig  <martin@ximian.com>
10125
10126         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10127         (mono_class_setup_vtable): When computing `the_cname' for a
10128         generic instance, don't include the namespace since we'd otherwise
10129         add it twice.
10130
10131 2004-11-15  Martin Baulig  <martin@ximian.com>
10132
10133         * class.c (mono_class_create_generic): Changed return type to void.
10134         (mono_class_create_generic_2): New public function; setup
10135         `class->method', `class->field' and `class->interfaces' here
10136         instead of in mono_class_init().
10137
10138         * class.h (mono_class_create_generic): Moved to class-internals.h.
10139
10140 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10141
10142         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10143         rather than writing to memory, write to this file. Right now,
10144         we are just writting into a buffer, and copying that. However
10145         we can avoid the buffer later.
10146
10147         (mono_dynamic_stream_reset): new function
10148
10149         * icall.c, object-internals.h: update for the above.
10150
10151 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10152
10153         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10154         have been using gc'd memory. First it is slower, unlikely
10155         the comment in the source code said, secondly, it increases
10156         our footprint to do it in the gc.
10157
10158         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10159         the method so that it does not have to copy to managed code.
10160
10161 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10162
10163         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10164
10165 2004-11-12  Martin Baulig  <martin@localhost>
10166
10167         * reflection.c (mono_image_create_token): Allow generic method
10168         definitions here, since they may appear in an `.override'; see
10169         gen-98/gen-99 for an example.
10170
10171 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10172
10173         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10174         #69365.
10175
10176         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10177         descriptive.
10178
10179 2004-11-11  Martin Baulig  <martin@ximian.com>
10180
10181         * class.c (mono_class_setup_vtable): In an explicit interface
10182         implementation, the method name now includes the arity.
10183
10184 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10185
10186         * object.c (mono_array_full_copy): Fix warning.
10187
10188 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10189
10190         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10191         mono_class_get_method_from_name() instead.
10192         
10193         * class-internals.h: Added two new types of wrappers. 
10194         Added MonoRemotingTarget enum. Added new trampoline function type, which
10195         takes an additional MonoRemotingTarget value as parameter, so it is
10196         possible to request a trampoline for a specific target.
10197         
10198         * class.c: Added new mono_class_get_method_from_name() method.
10199         
10200         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10201         general remoting sinks and one specific for cross domain calls.
10202         
10203         * debug-helpers.c: Added new wrapper names.
10204         
10205         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10206         of a remote class.
10207         
10208         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10209         
10210         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10211         with several other methods (mono_marshal_get_xappdomain_dispatch,
10212         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10213         and others) can generate a fast remoting wrapper for cross domain calls.
10214         More information can be found in docs/remoting.
10215         Other changes: Removed mono_find_method_by_name, and used
10216         mono_class_get_method_from_name instead.
10217         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10218         is stored in the remoting invoke hashtable.
10219         
10220         * marshal.h: published the new method for getting the xdomain wrapper,
10221         and also added a method for getting the adequate wrapper for a given
10222         method and target.
10223         
10224         * object-internals.h, object.c: Added a couple of methods for capying and
10225         cloning arrays.
10226         Modified mono_install_remoting_trampoline, which takes the new remoting
10227         trampoline that has a remoting target as parameter.
10228         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10229         will return the most suitable vtable for the target.
10230         Added mono_remote_class_vtable, which returns the vtable of a remote class
10231         (which can be the normal remoting vtable or the xdomain vtable).
10232         
10233         * threads.c: the xdomain invoke and dispatch wrappers must also be
10234         protected against interruptions.
10235
10236 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10237
10238         * icall.c: use memmove in BlockCopyInternal when the source and
10239         destination arrays are the same.
10240
10241 2004-11-09  Martin Baulig  <martin@ximian.com>
10242
10243         * class-internals.h (MonoGenericContainer): Removed `method' and
10244         `signature', replaced them with `is_method' and `is_signature'
10245         flags.  Added `context'.
10246
10247         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10248         instead of a `MonoGenericContainer *'.
10249
10250         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10251         for dynamic type parameters.
10252         (mono_metadata_load_generic_params): Setup `container->context'.
10253
10254         * reflection.c (mono_reflection_setup_generic_class): Setup
10255         `tb->generic_container->context'.
10256         (do_mono_reflection_bind_generic_parameters): Use
10257         mono_class_inflate_generic_type() to correctly inflate types,
10258         rather than using our own hack just for MONO_TYPE_VAR.
10259
10260 2004-11-09  Martin Baulig  <martin@ximian.com>
10261
10262         * class.c (mono_class_inflate_generic_method): Small fix; don't
10263         crash here.
10264
10265         * icall.c
10266         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10267         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10268         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10269         (ves_icall_Type_BindGenericParameters): Likewise.
10270         (ves_icall_Type_get_IsGenericInstance): Likewise.
10271         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10272         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10273         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10274         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10275
10276 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10277
10278         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10279         assembly versions and public key tokens. Fixes #69113.
10280
10281 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10282
10283         * metadata.c: fix bug introduced with the type cache changes
10284         on 2004-11-06.
10285
10286 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10287
10288         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10289         the MonoClass pointer instead of the token in exception clauses.
10290         * reflection.c: updates for the above and make the code not depend
10291         on the structure of MonoExceptionClause.
10292
10293 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10294
10295         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10296         Add support for dynamic assemblies. Fixes #69114.
10297
10298         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10299
10300 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10301
10302         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10303         since most only those methods use it. the code member of
10304         MonoMethodPInvoke was dead, so that can be removed too. Also,
10305         remove inline_count (again, not used), and move slot so that it
10306         can share bits with some other flags. This saves 8 bytes in the
10307         structure and gives us about 50 kb back for mcs helloworld.cs
10308
10309         * *.[ch]: Do naming changes for the above.
10310
10311         * loader.c (mono_method_get_header): Lazily init the header
10312         on first access.
10313         (mono_get_method_from_token): don't init the header here
10314         (mono_free_method): the header may never be allocated
10315
10316         Overall, this saves 150 kb of unmanaged allocations
10317         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10318         memory at runtime.
10319         
10320         * loader.c, loader.h (mono_method_get_header): new accessor.
10321
10322         * *.[ch]: use the above method. Prepares us to lazily load
10323         the header.
10324
10325         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10326         three warnings, which are actual bugs (see 69206).
10327
10328         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10329         unused. Saves a cool 4 bytes / method.
10330
10331 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10332
10333         * metadata.c (builtin_types): Add types for System.Object here.
10334         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10335         for a class or valuetype from klass->this_arg or klass->byval_arg.
10336
10337         On mcs for a hello world, this gets us down from 21836 MonoType's
10338         to 14560.
10339
10340         (mono_metadata_free_type): Account for the above change.
10341
10342 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10343
10344         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10345         exception instead of asserting if name is null.
10346         (ves_icall_System_AppDomain_GetData): Ditto.
10347
10348 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10349
10350         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10351         EnumBuilder.
10352
10353         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10354         Return NULL when the domain does not have entry_assembly set.
10355
10356         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10357         Add a 'resource_modules' argument.
10358         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10359
10360         * reflection.c (mono_reflection_create_runtime_class): Move setting
10361         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10362         for enums too.
10363
10364         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10365         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10366         Throw an ArgumentNullException if 'ptr' is null.
10367
10368         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10369         assemblies here. Fixes #69020.
10370
10371 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10372
10373         * reflection.c (build_compressed_metadata): Fix the previous patch for
10374         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10375         the stack.
10376
10377 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10378
10379         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10380         the cultures is false. Fixes #69090.
10381
10382         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10383         detected by valgrind.
10384         
10385         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10386         TypeResolve multiple times for the same type. Fixes #65577.
10387
10388 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10389
10390         * marshal.c: Avoid using ldftn to call managed functions. It is
10391         much slower than just a call.
10392
10393         * reflection.c (mono_module_get_object): free the basename we
10394         allocate here from glib.
10395         
10396         * reflection.c (ensure_runtime_vtable): make sure to free
10397         overrides.  Also, we were allocating an array of MonoMethod not an
10398         array of MonoMethod*.
10399
10400         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10401
10402         * image.c (mono_image_close): free image->guid here.
10403
10404 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10405
10406         * reflection.c: Fix some spec conformance issues with the PE file
10407         structures so mcs compiled apps run on the Net 2.0 beta.
10408
10409 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10410
10411         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10412         Implement this. Fixes #67264.
10413
10414         * debug-helpers.h debug-helpers.c marshal.c: Move 
10415         mono_find_method_by_name to debug-helpers.c.
10416
10417 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10418
10419         * object.c (mono_release_type_locks): type_initialization_hash is
10420         a GHashTable.
10421
10422         * reflection.c object.c object-internals.h: Fix warnings.
10423
10424         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10425         without accessors. Fixes #61561.
10426
10427         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10428         application base from the root domain if not set. Fixes #65641.
10429         (mono_runtime_init): Fix warning.
10430
10431 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10432
10433         * appdomain.c: call mono_thread_pool_init.
10434         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10435         of worker threads based on the number of CPUs and the environment
10436         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10437         for non-windows (windows) systems.
10438
10439 2004-10-27  Chris Toshok  <toshok@ximian.com>
10440
10441         * mono-debug-debugger.c (write_class): don't call mono_class_init
10442         here, as even with the check for (!klass->init_pending), we get
10443         into a situation where we're hitting cycles in class
10444         initialization.  Fixes #68816.
10445
10446 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10447
10448         * image.c: Avoid overwriting values in the loaded_images_hash when an
10449         assembly is loaded multiple times. Fixes #61152.
10450
10451         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10452         so multiple satellite assemblies for the same name can be loaded.
10453         Fixes #68259.
10454
10455         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10456         not NULL.
10457
10458         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10459         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10460
10461         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10462         pending finalizers are not invoked after the appdomain has been 
10463         unloaded. Fixes #67862.
10464
10465 2004-10-22  Martin Baulig  <martin@ximian.com>
10466
10467         * mono-debug-debugger.c
10468         (mono_debugger_runtime_invoke): Don't box valuetypes.
10469
10470 2004-10-22  Chris Toshok  <toshok@ximian.com>
10471
10472         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10473         don't hide private methods.
10474
10475 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10476
10477         * icall.c: Allows the runtime to "share" (when known) the public key
10478         token of an assembly. This avoid the need to recalculate the token 
10479         (from the public key) in managed code.
10480
10481 2004-10-21  Chris Toshok  <toshok@ximian.com>
10482
10483         * debug-helpers.c (append_class_name): argh, revert last patch.
10484         
10485 2004-10-21  Chris Toshok  <toshok@ximian.com>
10486
10487         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10488         not '/', so that it matches what the debugger uses to look up
10489         methods.
10490
10491 2004-10-21  Martin Baulig  <martin@ximian.com>
10492
10493         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10494         public method; this is called each time an exception is thrown and
10495         allows the debugger to use exception catch points.
10496
10497 2004-10-21  Martin Baulig  <martin@ximian.com>
10498
10499         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10500         the stack pointer and the exception object in some struct and pass
10501         that to the debugger.
10502
10503 2004-10-21  Chris Toshok  <toshok@ximian.com>
10504
10505         * mono-debug-debugger.c (do_write_class): add instance/static
10506         event support.  We don't expose "raise" or "other" yet.
10507         (event_is_static): new method.
10508
10509 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10510
10511         * mono-debug-debugger.c
10512         (mono_debugger_handle_exception): Remove
10513         bogus return value for fussy compilers.
10514
10515 2004-10-20  Martin Baulig  <martin@ximian.com>
10516
10517         * mono-debug-debugger.c
10518         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10519         (mono_debugger_handled_exception): Likewise.
10520
10521 2004-10-20  Martin Baulig  <martin@ximian.com>
10522
10523         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10524         MONO_DEBUGGER_EVENT_EXCEPTION.
10525
10526         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10527         public function to send the debugger a notification for an
10528         exception and inform it about a catch/finally clause.
10529
10530 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10531
10532         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10533         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10534         fix 2.95 build. 
10535
10536         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10537
10538 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10539
10540         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10541         marshalled as [In,Out]. Fixes #58325.
10542
10543 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10544
10545         * reflection.c (mono_method_body_get_object): Implement some fields.
10546
10547 2004-10-12  Martin Baulig  <martin@ximian.com>
10548
10549         * reflection.c (mono_reflection_bind_generic_parameters): Small
10550         fix, correctly retrieve our parent from a generic instance.
10551
10552 2004-10-12  Martin Baulig  <martin@ximian.com>
10553
10554         * metadata.c (mono_metadata_generic_param_equal): We always have
10555         an owner.
10556
10557         * class.c
10558         (mono_class_from_generic_parameter): We need to have an owner.
10559         (my_mono_class_from_generic_parameter): Likewise.
10560
10561         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10562         mono_reflection_create_generic_class() and added a new
10563         mono_reflection_setup_generic_class().  
10564         (mono_reflection_initialize_generic_param): If we're a nested
10565         generic type and inherited from the containing class, set our
10566         owner to the outer class.
10567
10568 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10569
10570         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10571
10572         * reflection.c (mono_method_body_get_object): New function to create
10573         a MethodBody object.
10574
10575         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10576
10577 2004-10-11  Martin Baulig  <martin@ximian.com>
10578
10579         * metadata.c (_mono_metadata_type_equal): Renamed to
10580         do_mono_metadata_type_equal() and made static.
10581
10582 2004-10-11  Martin Baulig  <martin@ximian.com>
10583
10584         * appdomain.c: Bump corlib version number to 28.
10585
10586 2004-10-10  Martin Baulig  <martin@ximian.com>
10587
10588         * class-internals.h
10589         (MonoGenericInst): Added `MonoGenericContainer *container'.
10590         (MonoGenericMethod): Likewise.
10591         (MonoGenericContext): Likewise.
10592         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10593
10594         * metadata.c
10595         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10596         (do_mono_metadata_parse_generic_inst): Likewise.
10597         (mono_metadata_parse_type_full): New public method.  This is the actual
10598         mono_metadata_parse_type() implementation - with an additional
10599         `MonoGenericContainer *' argument.
10600         (mono_metadata_parse_array_full): Likewise.
10601         (mono_metadata_parse_signature_full): Likewise.
10602         (mono_metadata_parse_method_signature_full): Likewise.
10603         (mono_metadata_parse_mh_full): Likewise.
10604         (mono_type_create_from_typespec): Likewise.
10605         (mono_metadata_interfaces_from_typedef_full): New public method;
10606         this is similar to the other _full() methods, but we take a
10607         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10608         (mono_metadata_parse_generic_param): Take an additional
10609         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10610         from that container.
10611         (mono_metadata_generic_param_equal): New static method to compare
10612         two type parameters.
10613         (_mono_metadata_type_equal): New static method; takes an
10614         additional `gboolean signature_only' argument - if true, we don't
10615         compare the owners of generic parameters.
10616         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10617         with a TRUE argument - do a signature-only comparision.
10618
10619         * loader.c: Use the new _full() methods and pass the
10620         MonoGenericContainer to them.
10621
10622         * object-internals.h (MonoReflectionTypeBuilder): Added
10623         `MonoGenericContainer *generic_container' field.
10624         (MonoReflectionMethodBuilder): Likewise.
10625
10626 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10627
10628         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10629         case initial images of dynamic assemblies.
10630
10631         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10632
10633         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10634
10635         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10636         length of event->other array.
10637         (typebuilder_setup_events): Ditto.
10638
10639         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10640         'assembly_by_name' and add an 'assemblies' list.
10641
10642         * assembly.h assembly.c: Add a new search hook for determining whenever
10643         an assembly is already loaded. Use this instead of searching in the
10644         loaded_assemblies list.
10645
10646         * domain.c appdomain.c: Implement the new search hook so loaded 
10647         assemblies are now scoped by appdomain. Fixes #67727.
10648
10649 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10650
10651         * threads.c (mono_thread_attach): Initialize synch_lock field so
10652         mono_thread_detach works again.
10653
10654         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10655         'lib' too. Fixes #63130.
10656
10657 2004-10-06  Jackson Harper  <jackson@ximian.com>
10658
10659         * culture-info-tables.h: regenerated.
10660
10661 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10662
10663         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10664         implemented by other interfaces in the result. Fixes #65764.
10665         
10666         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10667         Handle unloadable modules without crashing.
10668
10669         * image.c (load_modules): Revert the previous patch since modules must
10670         have a fixed index inside the array.
10671         
10672         * image.c (load_modules): Don't include native modules in the modules
10673         array.
10674
10675 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10676
10677         * reflection.h: Add param_defaults field.
10678
10679         * reflection.c: Add support for parameter defaults in dynamic methods.
10680         Fixes #64595.
10681
10682         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10683         an empty string when a type has no namespace. Fixes #64230.
10684
10685 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10686
10687         * tabledefs.h: Added "internal" security actions to support non-CAS
10688         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10689         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10690
10691 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10692
10693         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10694         constructor of abstract class. Fixes #61689.
10695
10696 2004-10-04  Martin Baulig  <martin@ximian.com>
10697
10698         * class-internals.h (MonoGenericContainer): New type.
10699         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10700         `MonoGenericContainer *generic_container'.
10701         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10702         `MonoGenericContainer *generic_container'.
10703
10704         * metadata.c (mono_metadata_load_generic_params): Return a
10705         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10706         removed the `num' argument.
10707
10708 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10709
10710         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10711         for dynamic images.
10712
10713         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10714         machine fields.
10715
10716         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10717
10718         * reflection.c: Save pe_kind and machine values into the generated
10719         image file.
10720
10721         * appdomain.c: Bump corlib version number.
10722
10723         * object-internals.h: Reorganize layout of LocalBuilder.
10724
10725         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10726         New helper function.
10727
10728         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10729         created MonoType for dynamic types. Fixes #66180.
10730
10731 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10732
10733         * threadpool.c: the ares hashtable needs a critical section around it.
10734         this prevents some nasty segfaults
10735
10736 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10737
10738         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10739         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10740         bug 67324).
10741         
10742 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10743
10744         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10745         
10746 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10747
10748         * image.c: Always canonicalize image file names, to avoid loading
10749         the same assembly twice when referenced using a relative path.
10750
10751 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10752
10753         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10754
10755         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10756
10757         * marshal.c: Fix warnings.
10758
10759 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10760
10761         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10762         attempting to marshal the delegate_trampoline as the method_addr.
10763         This patch has a static hashtable of marshalled delegates so that 
10764         we can map delegate_trampoline addresses back to delegates.  This
10765         allows a delegate passed to managed code to be passed back into native
10766         code.  Fixes #67039
10767
10768 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10769
10770         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10771
10772         * reflection.c (method_encode_code): Align method headers properly.
10773         Fixes #66025.
10774
10775 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10776
10777         * marshal.c: In the runtime invoke wrapper, reset the abort
10778         exception if it is cached. This avoids the automatic rethrowal of 
10779         the exception after the catch of the wrapper. Also check for pending
10780         interruptions before calling the managed method. This is done using
10781         the new method emit_thread_force_interrupt_checkpoint, since the
10782         normal checkpoint method is ignored when running the invoke wrapper.
10783         * object.c: If the abort exception is rethrown, set the abort_exc
10784         field of the thread, so it will be rethrown aftere every catch.
10785         * threadpool.c: Only run an interruption checkpoint if what has been
10786         requested is a stop of the thread (aborts will be ignored).
10787         * threads.c: By default, a thread will now never be interrumped while
10788         running the runtime invoke wrapper (this ensures that runtime_invoke
10789         will always return to the caller if an exception pointer is provided).
10790         There is a new special method mono_thread_force_interruption_checkpoint()
10791         to force an interruption checkpoint even if running a protected
10792         wrapper, which is used by the same runtime invoke wrapper to do a check
10793         at a safe point.
10794
10795 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10796
10797         * object.c, object-internals.h: Implemented mono_release_type_locks,
10798         which releases the cctor locks held by a thread.
10799         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10800         by a thread. Added mono_thread_exit() method to be used to safely stop
10801         a thread.
10802
10803 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10804
10805         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10806         Move null check before dereference.  Avoid indexing beyond the end
10807         of the 'modules' array.
10808
10809 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10810
10811         * metadata-internals.h (MonoImage): Add module_count field.
10812         * image.c (load_modules): Set image->module_count.
10813         (mono_image_load_file_for_image): Use image->module_count.
10814         * reflection.c (mono_image_load_module): Append to image->modules array 
10815         of dynamic assembly.
10816         (mono_module_get_object): Fix loop to actually increment index.
10817         Use image->module_count.
10818         * assembly.c (mono_assembly_load_references): Use image->module_count.
10819         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10820         Likewise.
10821
10822 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10823
10824         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10825         Avoid assert on generic types.
10826
10827 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10828
10829         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10830
10831         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10832
10833         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10834         function to convert a MarshalSpec structure to its managed counterpart.
10835
10836         * reflection.c: Fix warnings.
10837         
10838         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10839         field.
10840
10841         * icall.c (mono_create_icall_signature): Fix build.
10842
10843 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10844
10845         * icall.c: Add MakePointType icall.
10846
10847         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10848         warnings.
10849
10850 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10851
10852         * threadpool.c: reuse allocated slots in the queue.
10853
10854 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10855
10856         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10857
10858         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10859
10860         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10861         previous change.
10862
10863         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10864         ThrowOnUnmappableChar.
10865
10866         * icall.c (ves_icall_Type_GetPacking): New icall.
10867
10868 2004-09-24  Martin Baulig  <martin@ximian.com>
10869
10870         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10871
10872 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10873
10874         * appdomain.c:
10875         (mono_domain_set): allow setting a domain that is being unloaded.
10876         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10877         being unloaded.
10878
10879 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10880
10881         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10882         the GetCustomAttributes icall.
10883
10884 2004-09-23  Martin Baulig  <martin@ximian.com>
10885
10886         * object-internals.h (MonoReflectionGenericParam): Replaced
10887         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10888         with `guint32 attrs'.
10889
10890 2004-09-23  Martin Baulig  <martin@ximian.com>
10891
10892         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10893
10894 2004-09-23  Martin Baulig  <martin@ximian.com>
10895
10896         * object-internals.h (GenericParameterAttributes): New enum.
10897
10898 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10899
10900         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10901         
10902         * class.c (init_events): Fill out event->other field.
10903
10904         * class.c: Fix warnings.
10905
10906         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10907
10908 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10909
10910         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10911         walk which doesn't supply the IL offset.
10912
10913 2004-09-22  Martin Baulig  <martin@ximian.com>
10914
10915         * reflection.c (mono_reflection_setup_internal_class): If we're
10916         System.ValueType, System.Object or System.Enum, set
10917         `klass->instance_size' and create the vtable.
10918         (mono_reflection_create_internal_class): If we're an enum type,
10919         get the base class from our current corlib.
10920
10921 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10922
10923         * reflection.h (MonoResolveTokenError): New type.
10924
10925         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10926         icall.
10927
10928         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10929
10930 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10931
10932         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10933         Support also calling constructors, but only for already allocated objects.
10934
10935 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10936
10937         * reflection.c (type_get_qualified_name): If the klass is null
10938         return the typename to avoid a NullRefEx.
10939         (encode_cattr_value): Get the qualified name of the boxed type,
10940         not the underlying enumtype.  Fixes #62984.
10941
10942 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10943
10944         * marshal.c: Fix problems with previous checkin.
10945
10946 2004-09-21    <vargaz@freemail.hu>
10947
10948         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10949         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10950
10951         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10952
10953 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10954
10955         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10956         should only return a type for pointers, arrays, and passbyref types.
10957         Fixes bug #63841.
10958
10959 2004-09-21  Martin Baulig  <martin@ximian.com>
10960
10961         * domain.c (mono_debugger_check_runtime_version): New public
10962         function.
10963
10964         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10965
10966 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10967
10968         * reflection.c: Added missing sort to the declarative security 
10969         attributes table. MS implementation stops seeing the attributes if the
10970         token number regress in the table (as shown by ildasm and permview).
10971
10972 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10973
10974         * object-internals.h (MonoReflectionModule): Add 'token' field.
10975         
10976         * reflection.c (mono_reflection_get_token): Add support for Module
10977         and Assembly.
10978         (mono_module_get_object): Set 'token' field.
10979         (mono_module_file_get_object): Set 'token' field.
10980
10981         * icall.c: Add new Assembly and Module icalls.
10982
10983         * appdomain.c: Bump corlib version.
10984
10985 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10986
10987         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10988         tokens of metadata objects.
10989
10990         * reflection.h reflection.c (mono_reflection_get_token): New function
10991         to obtain the token of a metadata object.
10992
10993         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10994
10995 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10996
10997         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10998         
10999         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11000
11001 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11002
11003         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11004         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11005         AssemblyBuilder to access the permissions set in the class lib.
11006         * reflection.c: Added security attributes encoding step in 
11007         mono_image_build_metadata.
11008         * tabledefs.h: Added new security actions defined in 2.0:
11009         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11010
11011 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11012
11013         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11014         macro parameter.
11015
11016 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11017  
11018         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11019           finalized. There where random SIGSEVs at program termination, when
11020           an object being finalized was trying to do a string comparison and
11021           the current culture was already finalized.
11022  
11023 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11024
11025         * threads.c: call thread_cleanup before finishing the thread if we get
11026         there.
11027
11028 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11029
11030         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11031         assemblies from the parent. Fixes #65665.
11032
11033 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11034
11035         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11036         modifiers.
11037
11038 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11039
11040         * reflection.h: add prototype for mono_get_dbnull_object
11041         * reflection.c: add prototypes for get_default_param_value_blobs 
11042         and mono_get_object_from_blob for fussier compilers
11043
11044 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11045  
11046         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11047         false deadlock checks in class initialization.
11048  
11049 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11050
11051         * image.c (mono_image_addref): Fix comment.
11052
11053         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11054         possible.
11055
11056 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11057
11058         * reflection.c (mono_param_get_objects): Modified to return
11059         ParameterInfo.DefaultValue object.
11060
11061         (get_default_param_value_blobs):
11062         (mono_get_object_from_blob):
11063         (mono_get_dbnull_object): New helper routines. 
11064
11065         * object.c (mono_get_constant_value_from_blob): New helper routine
11066         carved out from get_default_field_value ()
11067
11068         * object-internals.h (mono_get_constant_value_from_blob): Added
11069         function declaration.
11070
11071 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11072
11073         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11074         referenced assemblies. Fixes #62135.
11075
11076         * exception.h exception.c (mono_get_exception_file_not_found2): New
11077         helper function.
11078
11079 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11080
11081         * class.h class.c: Add mono_type_get_underlying_type ().
11082
11083 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11084
11085         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11086         Fix GetTypes() to support dynamically created assemblies.
11087
11088 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11089
11090         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11091         
11092         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11093         previous patch.
11094
11095         * reflection.h reflection.c loader.c: Allow dynamic construction of
11096         pinvoke methods. Fixes #65571.
11097         
11098         * reflection.c (mono_reflection_get_type): Revert previous change since
11099         it causes regressions.
11100
11101 2004-09-08  Martin Baulig  <martin@ximian.com>
11102
11103         * class.c (class_compute_field_layout): Don't call
11104         mono_class_layout_fields() for open generic instances.
11105
11106 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11107         * threads.c appdomain.c: fix typo in GC macro
11108
11109 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11110
11111         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11112         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11113
11114 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11115
11116         * image.c (mono_image_close): Applied patch from 
11117         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11118         assembly is loaded multiple times from data.
11119         
11120         * image.c (mono_image_open): Fix warning.
11121
11122 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11123
11124         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11125         once. Fixes #58334.
11126         
11127         * reflection.c (mono_reflection_create_runtime_class): Initialize
11128         klass->nested_classes. Fixes #61224.
11129
11130 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11131
11132         * threads.c: sched_yield() on exit, to allow threads to quit.
11133
11134 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11135
11136         * object.c (mono_unhandled_exception): Remove leftover debug code.
11137
11138 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11139
11140         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11141
11142 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11143
11144         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11145         
11146         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11147
11148 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11149
11150         * marshal.c (emit_marshal_array): Null terminate string arrays.
11151         
11152         * marshal.c (raise_auto_layout_exception): Fix warning.
11153
11154         * reflection.c (mono_param_get_objects): Initialize the default value
11155         with DBNull.Value, not null. Fixes #62123.
11156
11157 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11158
11159         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11160         throw an exception with a cute explanation.
11161
11162 2004-09-06  Dick Porter  <dick@ximian.com>
11163
11164         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11165         Close the new process's thread handle, as we don't use it.  The
11166         handle stays around forever otherwise.
11167
11168 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11169
11170         * object.c (arith_overflow): Fix warning.
11171
11172         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11173         calling conventions in method refs. Fixes #65352.
11174
11175         * reflection.c: Fix warnings.
11176
11177 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11178
11179         * icall.c: Add a new icall for Array.Clear
11180
11181 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11182
11183         * object.c: When allocating an array, we have to throw
11184         an overflow exception if any of the lengths are < 0.
11185
11186 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11187
11188         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11189         properly. Also move implementation of string array marshalling to 
11190         managed code. Fixes #42316.
11191
11192 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11193
11194         * assembly.c: provide more information when loading an assembly fails.
11195
11196 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11197
11198         * filewatcher.c: don't expect the development fam package to be
11199         installed.
11200
11201 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11202
11203         * marshal.c: Make a copy of the signature cookie since it will be
11204         freed by the caller.
11205         
11206         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11207
11208         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11209
11210         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11211         marshal specs.
11212
11213         * marshal.c: More refactoring.
11214         
11215         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11216         smaller functions.
11217
11218 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11219
11220         * object.c: In mono_message_invoke, fill the output parameter array after
11221           calling the managed method (it was done before the call). This fixes
11222           bug #59299.
11223
11224 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11225
11226         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11227         as well.
11228
11229 2004-09-02  Martin Baulig  <martin@ximian.com>
11230
11231         * class.c (mono_class_instance_size): Don't allow generic type
11232         definitions or open generic instances.
11233         (mono_class_array_element_size): If we're a value type, call
11234         mono_class_instance_size() on the original class.
11235
11236         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11237         handle generic instances.
11238
11239         * mono-debug-debugger.c (write_type): Handle generic instances
11240         like classes.
11241
11242 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11243
11244         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11245         the allocation request fails. Fixes #65089.
11246
11247         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11248         
11249         * object.c (mono_runtime_free_method): New function to free a dynamic
11250         method.
11251
11252         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11253         delegate trampoline.
11254
11255         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11256         with hasthis as dynamic,
11257
11258         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11259
11260         * domain.c (mono_jit_info_table_remove): New function to remove an
11261         entry from the jit info table.
11262
11263         * class-internals.h (MonoMethod): Add 'dynamic' field.
11264
11265         * loader.c: Fix warnings.
11266
11267 2004-09-01  Martin Baulig  <martin@ximian.com>
11268
11269         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11270         instead of mono_debugger_lock() because the latter one is a no-op
11271         unless running in the debugger.
11272
11273 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11274
11275         * class.c (class_compute_field_layout): Classes with auto-layout or
11276         reference fields are not blittable.
11277         
11278 2004-09-01  Dick Porter  <dick@ximian.com>
11279
11280         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11281         mono_image_get_filename() to get the assembly location.
11282
11283         * icall.c:
11284         * metadata.h: Fix compile warnings
11285
11286 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11287
11288         * class.c (class_compute_field_layout): System.Object is blittable.
11289
11290         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11291         as in/out. Fixes #59909.
11292
11293 2004-09-01  Martin Baulig  <martin@ximian.com>
11294
11295         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11296         mono_metadata_generic_inst_is_valuetype() if we're a generic
11297         instance to check whether our underlying type is a reference type.
11298
11299 2004-09-01  Martin Baulig  <martin@ximian.com>
11300
11301         * metadata.c (mono_type_size): If we're a generic instance, call
11302         mono_class_value_size() for value types.
11303
11304 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11305
11306         * marshal.c: Implement more custom marshalling functionality. Fixes
11307         #64915.
11308
11309 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11310
11311         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11312
11313 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11314
11315         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11316
11317         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11318
11319         * icall.c: Fix some warnings.
11320
11321         * threads.c (abort_appdomain_thread): Fix unref errors.
11322         (mono_thread_current): Fix THREAD_DEBUG define.
11323
11324 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11325
11326         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11327
11328         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11329
11330 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11331
11332         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11333         string arrays.
11334
11335 2004-08-28  Martin Baulig  <martin@ximian.com>
11336
11337         * metadata.c
11338         (mono_metadata_generic_inst_is_valuetype): New public function.
11339
11340         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11341         mono_metadata_generic_inst_is_valuetype() if we're a generic
11342         instance to check whether our underlying type is a valuetype.
11343
11344 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11345
11346         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11347         #63768.
11348
11349 2004-08-25  Martin Baulig  <martin@ximian.com>
11350
11351         * loader.c (mono_get_method_from_token): Abstract methods can also
11352         be generic and thus have type parameters.
11353
11354         * metadata-internals.h
11355         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11356
11357         * reflection.c (mono_image_get_generic_param_info): Don't create a
11358         metadata row, just add an entry to the `gen_params' array.
11359         (build_compressed_metadata): Sort the `gen_params' array and then
11360         actually create the metadata.
11361
11362 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11363
11364         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11365
11366 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11367
11368         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11369
11370 2004-08-24  Martin Baulig  <martin@ximian.com>
11371
11372         * class.cs (mono_class_is_subclass_of): Like an interface, a
11373         generic instance also derives from System.Object.
11374
11375 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11376
11377         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11378         custom modifiers to be in any order. Fixes #61990.
11379
11380 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11381
11382         * object.c: Register mono_object_new_fast icall.
11383         
11384         * object.c (mono_class_get_allocation_ftn): Return to calling
11385         mono_object_new_fast, since it seems faster to compute the object 
11386         size in unmanaged code than passing it as a parameter.
11387
11388         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11389
11390         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11391         this function with Boehm as the oom handler, so we don't have to check
11392         the result of GC_malloc.
11393
11394         * object.c: Remove checks for oom.
11395
11396         * object.h object.c (mono_class_get_allocation_ftn): New function to
11397         return the icall which can be used to allocate an instance of a given
11398         class. 
11399
11400         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11401
11402         * class-internals.h: Add 'enabled' field.
11403
11404 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11405
11406         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11407
11408 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11409         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11410         value 0x0010.
11411
11412 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11413
11414         * appdomain.c: use the Tls function for appdomain too,
11415         at Zoltan's request. Actually return in mono_context_get
11416
11417         * appdomain.c, profiler.c, threads.c: use __thread
11418
11419 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11420
11421         * appdomain.c threads.c: Call GC_CreateThread on windows.
11422
11423         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11424         multiple libraries since this don't work on windows.
11425
11426 2004-08-18  Martin Baulig  <martin@ximian.com>
11427
11428         * class-internals.h
11429         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11430         MonoMethodHeader.
11431
11432         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11433         MonoMethodNormal since we also need it for abstract and interface
11434         methods.
11435
11436         * reflection.c
11437         (build_compressed_metadata): Sort the GenericParam table.
11438         (mono_image_create_token): Added `gboolean create_methodspec'
11439         argument; this is false when generating a MethodImpl token.
11440         (reflection_methodbuilder_to_mono_method): Abstract and interface
11441         methods may also have generic parameters.
11442
11443 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11444
11445         * appdomain.c: thread local alloc
11446
11447 2004-08-17  Martin Baulig  <martin@ximian.com>
11448
11449         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11450
11451         * icall.c
11452         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11453         argument.
11454
11455         * class.c (mono_type_get_full_name): New public function.
11456         (mono_type_get_name): Don't include the type arguments.
11457
11458 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11459
11460         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11461         for inclusion into the mono executable.
11462
11463 2004-08-16  Martin Baulig  <martin@ximian.com>
11464
11465         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11466         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11467
11468 2004-08-14  Martin Baulig  <martin@ximian.com>
11469
11470         * class.c (dup_type): Also copy the `byref' field.
11471
11472 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11473
11474         * reflection.c (create_dynamic_mono_image): Revert the last change 
11475         since it breaks bootstrap.
11476
11477 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11478
11479         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11480
11481         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11482         not free them with g_free.
11483
11484 2004-08-11  Martin Baulig  <martin@ximian.com>
11485
11486         * reflection.c (mono_reflection_setup_internal_class): Also call
11487         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11488
11489 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11490
11491         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11492         called during default (first) AppDomain creation. Keep track of
11493         Evidence when loading assemblies.
11494
11495 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11496
11497         * opcodes.c, opcodes.h: reduce runtime relocations.
11498
11499 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11500
11501         * culture-info.h, locales.c: fixes and chages to sue the new
11502         optimized format of the locale data.
11503         * culture-info-tables.h: regenerated.
11504
11505 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11506         
11507         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11508
11509 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11510
11511         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11512         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11513         * domain-internals.h: icall declaration.
11514         * icall.c: icall registration.
11515         * object-internals.h: New fields in MonoAssembly for CAS.
11516
11517 2004-08-05  Duncan Mak  <duncan@ximian.com>
11518
11519         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11520         CEE_LDELEM_ANY.
11521
11522 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11523
11524         * reflection.c: fix to deal with object[] arrays in custom ctors
11525         (bug #62550).
11526
11527 2004-08-05  Martin Baulig  <martin@ximian.com>
11528
11529         * class.c (mono_class_array_element_size): Added support for
11530         generic instances and correctly handle "recursive" types.
11531
11532 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11533
11534         * assembly.c: Fix warnings.
11535
11536 2004-08-04  Martin Baulig  <martin@ximian.com>
11537
11538         * class.c
11539         (mono_type_get_name_recurse): Added `gboolean include_arity'
11540         argument specifying whether or not we should include the generic
11541         arity in the type name.
11542         (_mono_type_get_name): New static function.
11543         (mono_class_setup_vtable): If we're a generic instance, don't
11544         include the generic arity in the names of explicit method
11545         implementations.        
11546
11547 2004-08-03  Martin Baulig  <martin@ximian.com>
11548
11549         * class.c (mono_type_get_name_recurse): Enclose the generic type
11550         arguments in `<', '>'.
11551
11552 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11553
11554         * gc.c: make GC warning messages use the trace API, they are just
11555         noise to most of the users.
11556
11557 2004-08-03  Martin Baulig  <martin@ximian.com>
11558
11559         * debug-mono-symfile.c (read_string): Correctly read the string.
11560
11561 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11562
11563         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11564         
11565         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11566         icalls.
11567         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11568
11569 2004-07-30  Martin Baulig  <martin@ximian.com>
11570
11571         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11572         Reflect latest symbol writer changes.   
11573
11574 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11575
11576         * object.c: always create an object if null is passed
11577         to Invoke() where a valuetype is expected.
11578
11579 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11580
11581         * marshal.c (mono_marshal_init): make managed
11582         signatures match native ones better for 64bits.
11583
11584 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11585
11586         * appdomain.c: hack to build correctly the private bin path on windows.
11587         Fixes bug #61991.
11588
11589 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11590
11591         * assembly.c: Load mscorlib from the correct framework directory
11592           (mono/<version>/mscorlib.dll).
11593         * appdomain.h: Added prototypes for new functions.
11594         * internals.h: Added some prototypes.
11595         * domain.c: When initializing the runtime, get from the executable and
11596           the configuration files the runtime version that the app supports.
11597           Added support methods for reading app.exe.config. Added list of versions
11598           supported by the JIT. Added two new methods: mono_init_from_assembly,
11599           which initializes the runtime and determines the required version from
11600           the provided exe file, and mono_init_version, which initializes
11601           the runtime using the provided version.
11602         * icall.c: Get machine.config from version-specific directory.
11603         * reflection.c: When generating an image, embed the version number
11604           of the current runtime.
11605
11606 2004-07-28  Dick Porter  <dick@ximian.com>
11607
11608         * socket-io.c
11609         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11610         returned sockaddr size before creating the remote address object.
11611         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11612         61608.
11613
11614 2004-07-28  Dick Porter  <dick@ximian.com>
11615
11616         * locales.c (string_invariant_compare_char): Fix invariant char
11617         compares between upper and lower cases.  Fixes bug 61458.
11618
11619 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11620         
11621         * marshal.c: actually cache stelem.ref wrappers.
11622         
11623 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11624
11625         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11626         sections and remove the mono_cli_rva_map () function.
11627
11628 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11629
11630         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11631         by Geoff Norton (<gnorton@customerdna.com>).
11632
11633 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11634
11635         * class.c: fix class loads for pointer types (typeof(int) !=
11636         typeof(int*)).
11637
11638 2004-07-27  Martin Baulig  <martin@ximian.com>
11639
11640         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11641         reading the debugging information from an external ".mdb" file.
11642
11643 2004-07-24  Martin Baulig  <martin@ximian.com>
11644
11645         * reflection.c (mono_image_get_type_info): Only write a class
11646         layout entry if we actually have a size or a packing size.
11647
11648 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11649
11650         * reflection.c (type_get_fully_qualified_name): 
11651         insert cast to get type checking of ?: with non-gcc compilers
11652
11653 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11654
11655         * rand.c: use g_getenv for both lookups of
11656         MONO_EGD_SOCKET
11657
11658 2004-07-17  Martin Baulig  <martin@ximian.com>
11659
11660         * reflection.c (mono_reflection_bind_generic_method_parameters):
11661         Set `gmethod->reflection_info'.
11662
11663 2004-07-17  Martin Baulig  <martin@ximian.com>
11664
11665         * class.c (mono_class_create_from_typedef): Insert the newly
11666         created class into the hash table before computing the interfaces
11667         since we could be called recursively.
11668
11669 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11670
11671         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11672         function to implement stelem.ref in managed code
11673         * class-internals.h, debug-helpers.c: a new wrapper type
11674         for the above.
11675
11676 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11677
11678         * gc.c: allow GC handles to work even when no GC is compiled in.
11679         Fix part of bug #61134 (GetAddrOfPinnedObject).
11680
11681 2004-07-13  Peter Williams  <peter@newton.cx>
11682  
11683         * process.c (complete_path): Make sure we don't attempt to execute
11684         directories.
11685  
11686 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11687
11688         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11689           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11690           and will add/subtract the hour if needed
11691
11692 2004-07-12  Martin Baulig  <martin@ximian.com>
11693
11694         * reflection.c (mono_field_get_object): If we have
11695         `field->generic_info', take the attributes from
11696         `field->generic_info->generic_type'.    
11697
11698 2004-07-12  Martin Baulig  <martin@ximian.com>
11699
11700         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11701         This function must be called before initializing the runtime.
11702         (mono_debug_init_1): New function; call this after initializing
11703         the runtime, but before loading the assembly.  It tells the
11704         debugger to load corlib and the builtin types.
11705
11706         * mono-debug-debugger.c: Did some larger changes in the debugging
11707         code; support recursive class declarations, make sure we actually
11708         add all classes.
11709
11710 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11711
11712         * debug-helpers.c: undo my previous patch and fixed the real issue in
11713         ../mini/exceptions-x86.c
11714
11715 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11716
11717         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11718         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11719         called from other .cctors.
11720
11721 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11722
11723         * loader.c: Removed the mono_loader_wine_init hack now that we are
11724         doing a managed version of Windows.Forms.
11725
11726 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11727
11728         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11729         threadpool.c, threads.c: remove static data from rootset.
11730
11731 2004-07-09  Dick Porter  <dick@ximian.com>
11732
11733         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11734         Don't do any more processing if the matched length was 0.  It was
11735         increasing the size of the string before.  Fixes bug 61167.
11736
11737 2004-07-09  Dick Porter  <dick@ximian.com>
11738
11739         * socket-io.h:
11740         * socket-io.c
11741         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11742         Add support for SO_PEERCRED if its available.
11743
11744 2004-07-09  Peter Bartok <pbartok@novell.com>
11745         * loader.c: winelib.exe.so error message is now only displayed if
11746         MONO_DEBUG is set. To help us avoid questions when people are trying
11747         out the new Managed.Windows.Forms.
11748
11749 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11750
11751         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11752         for isinst and castclass wrappers.
11753
11754         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11755         to libmetadata from the JIT, so they could be used by the marshalling
11756         code and the interpreter.
11757
11758         * marshal.c: Register marshalling related JIT icalls here instead of
11759         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11760         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11761
11762         * metadata.h: Remove unneeded marshalling conversions.
11763
11764         * opcodes.c: Update for new opcodes.
11765         
11766 2004-07-08  Martin Baulig  <martin@ximian.com>
11767
11768         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11769         (mono_debug_get_domain_data): Make this function static.
11770
11771 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11772
11773         * gc.c, object.h: add nice GC handle API for embedders.
11774
11775 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11776
11777         * reflection.c: more changes for the new api
11778
11779         * object.c: When we reflect on a field w/ a constant value, it
11780         will not have a memory location, so we must access metadata. Also,
11781         allow easier reading of strings so that we can read them from
11782         the constant data.
11783
11784         * class.c (mono_class_layout_fields): no need for literal fields here.
11785
11786         * class-internals.h: api changes for const fields
11787
11788         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11789
11790 2004-07-06  Martin Baulig  <martin@ximian.com>
11791
11792         * mono-debug.h: Increment version number to 44.
11793
11794         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11795         now a gpointer, rewrote this whole method.
11796
11797         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11798         function.  Add information about the wrapper in a new "misc table".
11799
11800         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11801         for the new misc table.
11802
11803 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11804
11805         * metadata-internals.h image.c: Add a cache for helper signatures.
11806
11807         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11808
11809 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11810
11811         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11812         delegates from a delegate. Fixes #61033.
11813         
11814         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11815         marshalling of stringbuilder arrays. Fixes #59900.
11816
11817 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11818
11819         * icall.c: Add EnumBuilder:setup_enum_type icall.
11820
11821 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11822
11823         * icall.c: Added a new icall for the property version of
11824         OffsetOfStringData.
11825
11826 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11827
11828         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11829         it has a constant size across platforms.
11830
11831         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11832         stack trace.
11833
11834 2004-06-29  Martin Baulig  <martin@ximian.com>
11835
11836         * mono-debug.c (mono_debug_add_method): Protect the whole function
11837         in mono_debugger_lock(), not just parts of it.
11838
11839 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11840
11841         * reflection.c: make sure padding bytes in heaps are zeroed.
11842
11843 2004-06-24  David Waite  <mass@akuma.org>
11844
11845         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11846         image.c, loader.c, locales.c, marshal.c, metadata.c,
11847         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11848         string-icalls.c, threads.c: change to C90-style comments from C99 /
11849         C++ -style
11850
11851 2004-06-24  Dick Porter  <dick@ximian.com>
11852
11853         * threads.c
11854         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11855         return createdNew.  Fixes bug 60412.
11856
11857         * threads-types.h: 
11858         * icall.c: Add createdNew parameter to CreateMutex icall
11859
11860 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11861
11862         * reflection.c, object-internals.h: save default value in params.
11863
11864 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11865
11866         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11867         no need to build a new path combining that with the application base.
11868         Fixes bug #60442.
11869
11870 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11871
11872         * reflection.c: fixed minor standard compliance issues.
11873
11874 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11875
11876         * reflection.c: fixed issue with encoding some custom attributes
11877         (arrays in properties and fields, bug #60411).
11878
11879 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11880
11881         * reflection.c: fix start address when copying the public key token.
11882
11883 2004-06-23  Martin Baulig  <martin@ximian.com>
11884
11885         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11886         the `exc' object in a static object to put it into the GC's root set.
11887
11888 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11889
11890         * reflection.c: make mono_reflection_setup_internal_class ()
11891         callable a second time to setup a new parent class.
11892
11893 2004-06-23  Dick Porter  <dick@ximian.com>
11894
11895         * threads.c: Check for WAIT_IO_COMPLETION return values.
11896
11897 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11898
11899         * appdomain.c: Removed the g_free on the public key token. Now copy 
11900         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11901         * assembly.c: Added public key token string value when loading 
11902         assemblies. Fix bug #60439.
11903         * icall.c: Added missing informations (like public key) in 
11904         GetReferencedAssemblies. Fix #60519.
11905         * image.h: Changed definition for public key token from const char*
11906         public_tok_value to guchar public_key_token [17];
11907         * reflection.c: Updated for changes to public key token.
11908
11909 2004-06-22  Lluis Sanchez Gual
11910
11911         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11912         for the field in base classes.
11913
11914 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11915
11916         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11917         mark headers as not supported, they are installed only for use by the
11918         debugger.
11919
11920 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11921
11922         * *.c, *.h: avoid namespace pollution in public headers.
11923
11924 2004-06-21  Martin Baulig  <martin@ximian.com>
11925
11926         * exception.c (mono_get_exception_security): It's in
11927         "System.Security", not in "System".
11928
11929         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11930         the exception classes.
11931
11932 2004-06-21  Martin Baulig  <martin@ximian.com>
11933
11934         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11935         Protect the exception object from being finalized.
11936
11937 2004-06-21  Martin Baulig  <martin@ximian.com>
11938
11939         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11940         public function.
11941
11942 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11943
11944         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11945         if it was not loaded before. Fix parts of #60439.
11946
11947 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11948
11949         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11950         code that was broken since Ben's change: wrappers are now
11951         dependent on the method signature only again.
11952
11953 2004-06-21  Martin Baulig  <martin@ximian.com>
11954
11955         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11956         added interface support.
11957
11958 2004-06-21  Martin Baulig  <martin@ximian.com>
11959
11960         * class.c (mono_vtable_get_static_field_data): New public method.
11961
11962 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11963
11964         * filewatcher.c : Windows build fix to be compliant with API changes.
11965
11966 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11967
11968         * class.h, class.c: more accessors.
11969         * metadata.h, metadata.c: prepare for hiding MonoType and
11970         MonoMethodSignature: people should use the accessors from now on
11971         outside of the tree.
11972
11973 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11974
11975         * *.c, *.h: more API cleanups.
11976
11977 2004-06-18  Jackson Harper  <jackson@ximian.com>
11978
11979         * assembly.c: Trace loading assemblies.
11980         * loader.c: Trace loading native libraries.
11981         * mono-config.c: Trace loading config files.
11982         
11983 2004-06-18  Dick Porter  <dick@ximian.com>
11984
11985         * locales.c: Tell ICU the lengths of strings, it can cope with
11986         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11987
11988 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11989
11990         * image.c: swapped name/filename;
11991
11992 2004-06-18  Martin Baulig  <martin@ximian.com>
11993
11994         * mono-debug-debugger.c (write_class): Write the parent class at
11995         the end of the header.
11996
11997 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11998
11999         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12000
12001 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12002
12003         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12004         (bundle_obj): New conditional define.
12005         (BUILT_SOURCES): Remove.
12006         ($(bundle_srcs)): Make parallel-make safe.
12007         (libmonoruntime_la_LIBADD): Make unconditional.
12008         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12009         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12010
12011 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12012
12013         * culture-info-tables.h: It was inconsistent with the latest
12014           supp info files.
12015
12016 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12017
12018         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12019         be loaded.
12020
12021         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12022         with gcc 2.95.
12023
12024 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12025
12026         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12027         cleaned up public header threads.h.
12028
12029 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12030
12031         * Makefile.am, *.c, *.h: more API cleanups.
12032
12033 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12034
12035         * Makefile.am: removed monosn from compilation.
12036         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12037         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12038         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12039         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12040         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12041         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12042
12043 2004-06-15  Jackson Harper  <jackson@ximian.com>
12044
12045         * assembly.c: Make locales lower case when searching the GAC for
12046         assemblies. gacutil will always make locales lowercase when
12047         installing so this effectively makes them case insensitive.
12048         
12049 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12050
12051         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12052         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12053           parameter which allows to choose whether the wait can be interrupted or 
12054           not. Also added the method mono_monitor_enter(), which locks the monitor
12055           using an infinite wait and without allowing interruption.
12056           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12057           interrupted.
12058         * object.h: Added new fields in MonoThread. suspend_event holds the event
12059           used to susped/resume the thread. synch_lock is the lock object to use for
12060           modifying the thread state.
12061         * threads.c: Use the new synch_lock object for locking, instead of "this",
12062           which can generate deadlocks.
12063           Moved thread state change in Thread.Sleep and Thread.Join from managed
12064           to unmanaged code. This avoids a deadlock when the thread was suspended
12065           just after acquiring the thread lock.
12066           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12067           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12068           which is not fully implemented in the io-layer.
12069         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12070
12071 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12072
12073         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12074         threads-types.h: more API cleanups.
12075
12076 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12077
12078         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12079         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12080         threadpool.c, threads.c: first pass at the exported API cleanup.
12081
12082 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12083
12084         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12085
12086 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12087
12088         * icall.c: added internalGetHome.
12089
12090 2004-06-14  Dick Porter  <dick@ximian.com>
12091
12092         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12093         possible to return successfully when '.' or '..' were the only
12094         entries in a directory, but were skipped.  The MonoIOStat was not
12095         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12096         Fixes bug 59574.
12097
12098 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12099
12100         * reflection.c: make binaries run on .Net 1.1 by default.
12101
12102 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12103
12104         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12105
12106 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12107
12108         * marshal.c: keep track of struct size with explicit layout
12109         (bug #59979).
12110
12111 2004-06-12  Martin Baulig  <martin@ximian.com>
12112
12113         * mono-debug-debugger.c: Comment out a debugging g_message().
12114
12115 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12116
12117         * reflection.c, reflection.h: do not free custom attrs that are cached.
12118         * icall.c: use braces to make code clearer.
12119
12120 2004-06-11  Martin Baulig  <martin@ximian.com>
12121
12122         * class.h (MonoInflatedField): New type.
12123         (MonoClassField): Replaced `MonoType *generic_type' with
12124         `MonoInflatedField *generic_info'.
12125
12126         * icall.c
12127         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12128
12129 2004-06-11  Martin Baulig  <martin@ximian.com>
12130
12131         * reflection.c (mono_image_create_method_token): Correctly encode
12132         varargs methods.
12133
12134 2004-06-11  Martin Baulig  <martin@ximian.com>
12135
12136         * metadata.c (mono_metadata_parse_method_signature): When parsing
12137         a MethodDef which has VarArgs, also set sentinelpos if we don't
12138         have any parameters.
12139
12140 2004-06-11  Martin Baulig  <martin@ximian.com>
12141
12142         * verify.c (mono_method_verify): In CEE_CALL, use
12143         mono_method_get_signature() to get the method's signature, unless
12144         we're a PInvoke method.
12145
12146 2004-06-10  Jackson Harper  <jackson@ximian.com>
12147
12148         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12149         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12150         logical name as the supplied path is just a prefix to the gac not
12151         the direct path to it.
12152         
12153 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12154
12155         * reflection.c: make the token for a created method match
12156         the token of the MethodBuilder it was created from
12157         (IKVM requires this behaviour now).
12158
12159 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12160
12161         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12162         reflection.c, socket-io.c: leak fixes.
12163
12164 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12165
12166         * icall.c: handle sentinel pos in vararg methods in position different
12167         from 0.
12168
12169 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12170
12171         * culture-info-tables.h: freshly generated.
12172
12173 2004-06-09  Martin Baulig  <martin@ximian.com>
12174
12175         * loader.c (mono_get_method_constrained): Call `mono_class_init
12176         (constrained_class)'.   
12177
12178 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12179
12180         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12181         any methods. Fixes #59629.
12182
12183 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12184
12185         * culture-info-tables.h: reflecting locale-builder updates.
12186
12187 2004-06-08  Dick Porter  <dick@ximian.com>
12188
12189         * object.h:
12190         * locales.c: Fixed compile warnings, including a real bug in
12191         CompareInfo_internal_compare.
12192         
12193 2004-06-08  Dick Porter  <dick@ximian.com>
12194
12195         * locales.c
12196         (ves_icall_System_Globalization_CompareInfo_internal_index):
12197         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12198         Double-check the resuls of usearches, because ICU currently
12199         ignores most of the collator settings here.  Fixes bug 59720.
12200         
12201 2004-06-08  Dick Porter  <dick@ximian.com>
12202
12203         * locales.c
12204         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12205         Fix memory leak and segfault-causing typo.  No idea how this one
12206         lasted so long without being noticed.
12207
12208 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12209
12210         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12211         any methods. Fixes #59629.
12212
12213 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12214
12215         * assembly.c:
12216         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12217         own the critical section before). Removed dead code (that's done
12218         in the preload hook).
12219
12220         (mono_assembly_load_with_partial_name): call the preload hook.
12221
12222 2004-06-08  Martin Baulig  <martin@ximian.com>
12223
12224         * metadata.c (mono_metadata_signature_alloc): Default
12225         `sentinelpos' to -1.
12226
12227         * reflection.c (mono_image_get_array_token): Likewise.
12228
12229 2004-06-08  Martin Baulig  <martin@ximian.com>
12230
12231         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12232
12233         * metadata.c (mono_metadata_parse_method_signature): When parsing
12234         a MethodDef which has VarArgs, set sentinelpos.
12235
12236         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12237         `gint16' since we're using -1 for non-varargs methods.
12238
12239         * reflection.c
12240         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12241         (method_encode_signature): Added varargs support.
12242         (method_builder_encode_signature): Likewise.
12243         (mono_image_get_varargs_method_token): New static method.
12244         (mono_image_create_method_token): New public method; this is
12245         called via an icall instead of mono_image_create_token() when
12246         calling a varargs method.       
12247
12248 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12249
12250         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12251
12252 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12253
12254         * culture-info-tables.h : Reflecting the latest locale-builder that
12255           fixed empty array representation ({} to {0}).
12256
12257 2004-06-07  Jackson Harper  <jackson@ximian.com>
12258
12259         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12260         looking up extra gac paths. This allows MONO_GAC_PATH to act
12261         exactly like a prefix.
12262         
12263 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12264
12265         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12266         type name before modifying it. Fixes #59405.
12267
12268 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12269
12270         * culture-info.h: added fields for "all datetime patterns".
12271         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12272           _construct_datetime_format ()): fill xxx_patterns fields.
12273         * object.h: added fields for "all datetime patterns" to
12274           MonoDateTimeFormatInfo.
12275         * culture-info-tables.h: reflecting locale-builder updates.
12276
12277 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12278
12279         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12280         the event has no add and remove methods. Fixes #59629.
12281
12282 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12283
12284         * object.c: Fixed possible integer overflow when allocating large
12285         strings.
12286
12287 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12288
12289         * culture-info-tables.h: reflecting locale-builder updates.
12290
12291 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12292
12293         * culture-info-tables.h: reflecting locale-builder updates.
12294
12295 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12296
12297         * culture-info-tables.h: reflecting locale-builder updates.
12298
12299 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12300
12301         * threads.c: Made Thread.Sleep abortable.
12302
12303 2004-06-02  Martin Baulig  <martin@ximian.com>
12304
12305         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12306
12307         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12308
12309 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12310
12311         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12312
12313 2004-05-30  Jackson Harper  <jackson@ximian.com>
12314
12315         * reflection.c: Do not hardcode assembly versions or public key
12316         tokens anymore. All of this except the corlib section was dead
12317         code anyways.
12318         
12319 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12320
12321         * object.c (mono_runtime_invoke_array): Automatically create boxed
12322         objects for byref valuetypes if needed. Fixes #59300.
12323         
12324         * object.c (mono_method_return_message_restore): Handle 
12325         MONO_TYPE_OBJECT as well.
12326
12327 2004-05-28  Jackson Harper  <jackson@ximian.com>
12328
12329         * reflection.c: The modified type encoding was causing build
12330         problems. Reverted for now.
12331         
12332 2004-05-28  Jackson Harper  <jackson@ximian.com>
12333
12334         * reflection.c/h: Take an assembly ref so that we dont create
12335         fully qualified names when encoding types in the same assembly as
12336         the custom attribute being emitted.
12337         * appdomain.c: Increment version number.
12338         
12339 2004-05-26  Duncan Mak  <duncan@ximian.com>
12340
12341         * icall.c
12342         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12343         Set the full version number (major, minor, build, revision).
12344
12345 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12346
12347         * marshal.c (emit_struct_conv): increment src/dst after blit
12348         (mono_marshal_get_managed_wrapper,
12349         mono_marshal_get_native_wrapper): make sure we have marshalling
12350         info before marshalling params (info computation affects
12351         blittable)
12352
12353         * class.c (class_compute_field_layout): correctly deal with
12354         blittable
12355         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12356         value types (as per what windows dows by default)
12357         (mono_class_setup_mono_type): System.ValueType is blittable
12358         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12359         blittable
12360
12361         * marshal.c (mono_marshal_load_type_info): flag types  as
12362         non-blittable if the native layout doesn't match the managed
12363         layout
12364
12365 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12366
12367         * appdomain.c: don't add stuff in the private search path that is
12368         above the application base. If application base is not set, there's
12369         no private search path.
12370
12371 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12372
12373         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12374         byref struct arguments in native->managed marshalling.
12375
12376 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12377
12378         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12379         cache methods using signature (special case for methods
12380         that are value type or string class)
12381         
12382         * image.c (mono_image_close): clean up allocated GSList's
12383         in runtime_invoke_cache.
12384
12385 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12386
12387         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12388         there's no MONO_CFG_DIR environment variable defined.
12389
12390 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12391
12392         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12393
12394 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12395
12396         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12397           is interrumped.
12398         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12399           before waiting for it, and call CloseHandle after the wait to unref it.
12400           This will make sure that handles are not disposed too early.
12401
12402 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12403
12404         * appdomain.c:
12405         * appdomain.h:
12406         * icall.c: removed
12407         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12408         needed now.
12409
12410         * object.c: se the application_base only for the domain that runs
12411         Main. Fixes bug #59216,
12412
12413 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12414
12415         * appdomain.c:
12416         * object.c: only the domain in which Main is run have
12417         SetupInformation.ConfigurationFile set, so moved a few lines from
12418         appdomain.c to object.c.
12419
12420 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12421
12422         * appdomain.c: we tried to load [name].(dll|exe), but according
12423         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12424         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12425         There's a test case attached to bug #58922.
12426
12427 2004-05-27  Dick Porter  <dick@ximian.com>
12428
12429         * icall.c:
12430         * file-io.c: Implemented icalls for locking and unlocking regions
12431         in a file.
12432         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12433         FALSE on error (fixes both compiler warning and real bug.)
12434
12435 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12436
12437         * culture-info-tables.h: reflecting locale-builder updates.
12438
12439           (Added missing ChangeLog entry for 05/26)
12440
12441 2004-05-27  Jackson Harper  <jackson@ximian.com>
12442
12443         * locales.c: Fix some cut and paste errors.
12444         
12445 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12446
12447         * mono-config.c: set the correct path for config. directory on windows.
12448
12449 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12450
12451         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12452           on win32.
12453
12454 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12455
12456         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12457         from pinvoke functions.
12458         
12459         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12460
12461 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12462
12463         * culture-info-tables.h: reflecting locale-builder updates.
12464
12465 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12466
12467         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12468         #59086.
12469
12470 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12471
12472         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12473         * icall.c: Modified icalls for RNG.
12474         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12475         Windows (CryptoAPI).
12476
12477 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12478
12479         * locales.c: Fix build.
12480
12481 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12482
12483         * culture-info-tables.h: reflecting locale-builder updates.
12484
12485 2004-05-25  Jackson Harper  <jackson@ximian.com>
12486
12487         * locales.c: When creating the current culture use the $LANGs
12488         specific culture. So DateTimeFormat and NumberFormat entries are created.
12489         
12490 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12491
12492         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12493         a char array as parameter.
12494
12495 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12496
12497         * image.c: In mono_image_open(), always use an absolute path name to
12498           look for already loaded images.
12499
12500 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12501
12502         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12503         missing in the windows build (like older cygwin include files).
12504
12505 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12506
12507         * icall.c: Fixed check for possible integer overflow in Buffer_
12508         BlockCopy icall. Replaced comments style // by /* */.
12509
12510 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12511
12512         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12513         
12514         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12515         check after MONO_VTADDR. Fixes pinvoke2.exe.
12516
12517         * marshal.h marshal.c metadata.h: Add beginnings of support for
12518         ftnptr -> delegate marshalling.
12519
12520 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12521
12522         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12523         * threads.c: Fix warnings.
12524
12525 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12526
12527         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12528         * icall.c: Registered icalls for Suspend and Resume.
12529         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12530           Thread.Abort.
12531         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12532         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12533         * process.c: Use WaitForSingleObjectEx.
12534         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12535           checkpoints.
12536         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12537           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12538           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12539           background threads. Added basic support for Abort in Windows.
12540           Start new threads using a managed delegate invoke wrapper. This wrapper
12541           has an interruption checkpoint that is needed since an interruption
12542           can be requested before the thread leaves the unmanaged code that starts 
12543           the thread.
12544         * marshal.c: Added interruption checkpoint after every native call, and
12545           also before managed calls for wrappers called from unmanaged code to
12546           go into managed code.
12547         * object.h: Added new field in MonoThread to keep track of interruption
12548           requests.
12549
12550 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12551
12552         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12553         calls.
12554
12555 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12556
12557         * appdomain.c:
12558         * assembly.c:
12559         * gc.c:
12560         * locales.c:
12561         * mono-config.c:
12562         * rand.c: getenv -> g_getenv (windows!)
12563
12564         * process.c: complete_path is also used on non-windows platforms.
12565
12566 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12567
12568         * icall.c: new signature for Process_Start.
12569
12570         * process.[ch]: new signature for Process_Start. If we're on windows
12571         and UseShellExecute is false, we have to search for the program by
12572         ourselves if we don't get a full path.
12573
12574 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12575
12576         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12577         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12578
12579 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12580
12581         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12582         Fixes bug #58373.
12583
12584 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12585
12586         * process.c: use double quotes to quote program name and arguments on
12587         windows. Fixes bug #58575.
12588
12589 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12590
12591         * file-io.c: don't return "." and ".." when using windows Find*File.
12592
12593 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12594
12595         * marshal.c: Don't pass wrappers to message init because method 
12596         addressed used to lookup metadata. part of remoting[2|3] fix.
12597
12598 2004-05-15  Jackson Harper  <jackson@ximian.com>
12599
12600         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12601         path is essentially the same as MONO_PATH except that it points to
12602         GACs instead of lib directories.
12603         * loader.h: The user gac is gone so we dont need function to
12604         enable/disable it.
12605         * mono-config.c: user gac option is now gone.
12606         
12607 2004-05-15  Jackson Harper  <jackson@ximian.com>
12608
12609         * culture-info.h: Make defines more consistent, add calendar data
12610         to the culture info table.
12611         * culture-info-tables.h: Add basic calendar data. Basically
12612         everyone gets default gregorian until all the data is
12613         updated.
12614         * locales.c: Use the new consistent defines. Set calendar data for
12615         culture info objects.
12616         * object.h: add a field for calendar data to CultureInfo
12617         
12618 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12619
12620         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12621         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12622         a signature.
12623         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12624         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12625         an extra param that is the pointer of the method to invoke. The IL for
12626         the invoke method is no longer specific to the method, but to the
12627         signature of the method. Thus, we can share the same code for multiple
12628         methods. This reduces the number of methods that have to be compiled.
12629
12630 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12631
12632         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12633
12634         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12635
12636         * icall.c: Optimize Buffer.BlockCopy.
12637
12638 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12639
12640         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12641         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12642         quote). Changed them to "MMMM yyyy".
12643
12644 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12645
12646         * rand.c
12647         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12648
12649 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12650
12651         * reflection.h: Updated after changes to managed structures.
12652
12653         * appdomain.c: Bump corlib version.
12654
12655 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12656
12657         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12658         windows.
12659
12660 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12661
12662         * Makefile.am: link to ../os/libmonoos.la on windows.
12663
12664         * assembly.c:
12665                 -If MONO_DEBUG, warn about non-existing directories in
12666                 MONO_PATH.
12667                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12668                 compile time variable.
12669                 -Removed init_default_path and call mono_set_rootdir from
12670                 libmonoos.a instead (windows only).
12671
12672         * assembly.h: declare mono_assembly_getrootdir().
12673
12674         * domain.c:
12675         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12676
12677         * loader.c: s/getenv/g_getenv/
12678
12679 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12680
12681         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12682
12683         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12684
12685         * metadata.h: Add new marshalling conversions.
12686
12687         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12688         function.
12689
12690         * reflection.c (mono_reflection_get_type): Lookup the type in all
12691         modules of a multi-module assembly. Fixes #58291.
12692
12693 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12694
12695         * threads.c: Before aborting a background, set the StopRequested
12696         state.  This avoids throwing the Abort exception.
12697         In mono_thread_manage, don't continue with the shutdown until all
12698         aborted threads have actually stopped.
12699
12700 2004-05-10  Jackson Harper  <jackson@ximian.com>
12701
12702         * locales.c: Remove the modifier from culture names.
12703         
12704 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12705
12706         * Makefile.am: monosn is not installed any more. It has been deprecated
12707         in favor of sn.
12708
12709 2004-05-07  Jackson Harper  <jackson@ximian.com>
12710
12711         * locales.c
12712         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12713         Fix array construction, add bailout if the length is 0.
12714
12715 2004-05-07  Dick Porter  <dick@ximian.com>
12716
12717         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12718         machine doesn't have a DNS entry.  Patch by Urs Muff
12719         (umuff@quark.com), fixes bug 57928.
12720
12721 2004-05-06  Jackson Harper  <jackson@ximian.com>
12722
12723         * reflection.c: Handle null PublicTokens properly. alloc mem for
12724         assembly names culture so we dont crash when freeing it.
12725         
12726 2004-05-06  Jackson Harper  <jackson@ximian.com>
12727
12728         * assembly.c: Check the usergac when loading with partial names.
12729         
12730 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12731
12732         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12733         does nothing for now (not required for Linux/Windows) but the class
12734         library can call it (and a newer or modified runtime could need it).
12735         * icall.c: Registred icall.
12736
12737 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12738
12739         * loader.c: prints a message on module loading error we set MONO_DEBUG
12740         environment variable.
12741
12742 2004-05-05  Jackson Harper  <jackson@ximian.com>
12743
12744         * appdomain.c: Handle PublicKeyToken=null properly.
12745         
12746 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12747
12748         * environment.c|h: Added icall ves_icall_System_Environment_
12749         GetOSVersionString to get the current OS version as a string.
12750         * icall.c: Registred icall.
12751
12752 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12753
12754         * object.c: in mono_object_get_virtual_method(), take into account that
12755         non-virtual methods don't have a slot in the vtable. Check needed when
12756         the object is a proxy.
12757
12758 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12759
12760         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12761         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12762
12763         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12764
12765         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12766         passed when a valuetype is expected.
12767
12768         * object.c (mono_unhandled_exception): Only set the exit code if the
12769         exception happens in the main thread. Fixes thread5.exe.
12770
12771         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12772         invalid names. Fixes #58047.
12773
12774 2004-05-03  Jackson Harper  <jackson@ximian.com>
12775
12776         * assembly.c: This line was committed accidently and is unneeded.
12777         
12778 2004-05-03  Jackson Harper  <jackson@ximian.com>
12779
12780         * icall.c: Add new icall for Assembly::LoadWithPartialName
12781         * assembly.c/.h: new function that probes the GAC to load partial
12782         assembly names by Paolo Molaro.
12783         
12784 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12785
12786         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12787         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12788         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12789         full type name.
12790
12791 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12792
12793         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12794         * reflection.c: fix bug when parsing a full type name and Version is not
12795         the last thing in the string.
12796
12797 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12798
12799         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12800         crashes when it is freed.
12801
12802 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12803
12804         * assembly.c: print the compat warning to stderr.
12805
12806 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12807
12808         * assembly.c (mono_assembly_load_references): Add a compatibility
12809         hack to run old applications that might be still referencing the
12810         3300-based assemblies, only do this for System.xxx.
12811
12812 2004-05-01  Jackson Harper  <jackson@ximian.com>
12813
12814         * appdomain.c: If the culture is neutral we set it to "".
12815         
12816 2004-04-29  Jackson Harper  <jackson@ximian.com>
12817
12818         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12819
12820 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12821  
12822         * string-icalls.c: added low overhead function for copying chars
12823         * icall.c: added needed icall for the above function
12824  
12825 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12826
12827         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12828         Environment.GetLogicalDrives.
12829
12830 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12831
12832         * rand.c: try and talk to egd or prngd
12833         for random bytes if opening devices fail.
12834
12835 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12836
12837         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12838         alignment for the type using the native alignment of its members 
12839         instead of using klass->min_align.
12840
12841         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12842
12843 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12844
12845         * file-io.c:
12846         * socket-io.c: added check for sys/aio.h.
12847
12848 2004-04-28  Dick Porter  <dick@ximian.com>
12849
12850         * threads.c: Don't abort a thread thats already aborting, when
12851         terminating everything.
12852
12853 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12854
12855         * icall.c: added 2 new async calls for Socket.
12856
12857         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12858         IO on *nix systems.
12859
12860         * threadpool.c: removed unused variable.
12861
12862 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12863
12864         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12865
12866 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12867
12868         * locales.c: put back string_invariant_tolower () and
12869         string_invariant_toupper ().
12870
12871 2004-04-26 David Waite <mass@akuma.org>
12872
12873         * file-io.h:
12874         * socket-io.h:
12875         * threads.h:
12876         * unicode.h: remove comma from end of enumeration declarations
12877
12878 2004-04-26 David Waite <mass@akuma.org>
12879
12880         * debug-mono-symfile.h:
12881         * decimal.c:
12882         * mono_debug.h:
12883         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12884
12885
12886 2004-04-26  Jackson Harper  <jackson@ximian.com>
12887
12888         * appdomain.c: Increment version number.
12889         
12890 2004-04-26  Jackson Harper  <jackson@ximian.com>
12891
12892         * appdomain.c: Set assembly references public token value when
12893         PublicKeyToken is specified, not the hash_value. Free public token
12894         values when free assembly name data. Previously the public key
12895         token was hex decoded, however we are using hex encoded public key
12896         tokens, so this is not neccasary.
12897         * assembly.c: Lookup assemblies in the gac if their public token
12898         value is set. Add function to allow enabling user gac
12899         lookups. Specify whether or not the assembly was loaded from the
12900         GAC. Compare full assembly names when checking the cache for
12901         assemblies (Temporarily disabled see comment in code). Remove
12902         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12903         specifies trace-loader they get extra info to stdout on the
12904         loading of assemblies.
12905         * image.h: Add a field for an assembly references public token
12906         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12907         whether an assembly has been loaded from the GAC.
12908         * image.c: Remove a corlib -> mscorlib name mapping.
12909         * loader.h: Add function to enable/disable the user gac.
12910         * mono-config.c: Check if the usergac is enabled in the config
12911         file.
12912         * icall.c: New icall to determine whether or not an assembly has
12913         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12914         * tabldefs.h: Add constant for assemblyref flag that specifies a
12915         full public key is used instead of a public token.
12916         * reflection.c: Remove mscorlib -> corlib mappings. Set
12917         PublicTokenValue instead of hash value. This value is a hex
12918         string so it does not need to be expanded.
12919
12920 2004-04-26  Martin Baulig  <martin@ximian.com>
12921
12922         * mono-debug-debugger.c (mono_debugger_initialize): Set
12923         `mono_debugger_initialized' before calling mono_debug_lock().
12924
12925 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12926
12927         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12928           InternalToUpper/InternalToLower.
12929         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12930           removed invariant culture shortcut.  This is now done in managed code.
12931         * locales.c: (string_invariant_toupper/tolower) removed.
12932
12933 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12934
12935         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12936         Added Poll internal call.
12937
12938         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12939         call for Poll. Select was too heavy for polling a single socket.
12940
12941         * threadpool.[ch]: added mono_threadpool_cleanup.
12942         * threads.c: use it. Don't use Thread_Abort on windows.
12943
12944 2004-04-23  Martin Baulig  <martin@ximian.com>
12945
12946         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12947
12948 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12949
12950         * icall.c: Registred new icalls for key pair protection and added an
12951         icall for Environment.GetFolderPath on Windows.
12952         * security.c|h: Added new icalls for key pair protection.
12953
12954 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12955
12956         * socket-io.c: don't display the non-supported family warning for known
12957         families. Now this is not displayed on windows when checking support
12958         for IPv4/IPv6.
12959
12960 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12961
12962         * class.c: don't display the layout warning for static fields.
12963
12964 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12965
12966         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12967         * locales.c, locales.h: Added new icalls for culture-specific
12968         Char.ToLower and Char.ToUpper.
12969
12970 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12971
12972         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12973         by David Waite.
12974
12975 2004-04-20  Martin Baulig  <martin@ximian.com>
12976
12977         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12978         of the type name before passing it to mono_reflection_type_from_name().
12979
12980 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12981
12982         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12983         encodings here. Fixes #56965.
12984
12985 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12986
12987         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12988         fix test on strstr result not that I can see anything that
12989         relies on the result.
12990
12991 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12992
12993         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12994         Fixes #57081.
12995
12996         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12997
12998         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12999         function to determine which marshalling to use for strings. Fixes
13000         #56965.
13001
13002         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13003
13004         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13005
13006 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13007
13008         * icall.c: #include mono-config.h
13009
13010 2004-04-15  Jackson Harper  <jackson@ximian.com>
13011
13012         * culture-info-tables.h: Fix date formats for en-US culture.
13013         
13014 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13015
13016         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13017         ThreadPool.SetMinThreads.
13018         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13019         ThreadPool.SetMinThreads.
13020
13021 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13022
13023         * mono-config.c: also load the .config file in the directory
13024         where the assembly was found.
13025
13026 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13027
13028         * assembly.c: load per-assembly config files.
13029         * icall.c: decrapified code to get the config dir and moved to
13030         mono-config.c.
13031         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13032         per-assembly config files. When doing a dll map lookup give precedence
13033         to the per-assembly data.
13034
13035 2004-04-14  Martin Baulig  <martin@ximian.com>
13036
13037         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13038         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13039         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13040
13041         * mono-debugger-debugger.c: While the debugger is locked, remember
13042         whether the symbol tables have changes and send one single
13043         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13044
13045 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13046
13047         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13048
13049         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13050         function.
13051
13052         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13053         account when marshalling string arrays. Fixes #56965.
13054
13055 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13056
13057         * icall.c: Add new icalls mapping for security.
13058         * security.c|h: Add internal calls for WindowsIdentity,
13059         WindowsImpersonationContext and WindowsPrincipal.
13060
13061 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13062
13063         * class.c: Added comment to ensure the System.MonoDummy class
13064         is removed when no longer necessary
13065
13066 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13067
13068         * appdomain.c: Pass arguments to the bootstraping exceptions to
13069         minimize JITed methods at boot
13070
13071         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13072         second string to be null.
13073
13074         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13075         Change the protocol to minimize the JIT methods at startup.  Now
13076         it Returns the internal codepage, if the value of "int_code_page"
13077         is 1 at entry, and we can not compute a suitable code page
13078         number, returns the code page as a string.
13079
13080 2004-04-13  Jackson Harper  <jackson@ximian.com>
13081
13082         * culture-info-tables.h: Fix number of decimal digits for all
13083         english locales.
13084
13085 2004-04-13  Jackson Harper  <jackson@ximian.com>
13086
13087         * icall.c: Clairfy out of sync error message. It is not always
13088         your corlib that is out of sync.
13089
13090 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13091
13092         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13093         properties when only the set accessor is overriden. Fixes #55874.
13094
13095 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13096
13097         * assembly.c (mono_assembly_load_references): Make this thread safe.
13098         Fixes #56327.
13099
13100 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13101
13102         * monosn.c: Add missing initialization calls.
13103
13104 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13105
13106         * locales.c:
13107         ves_icall_System_Globalization_CultureInfo_construct_number_format
13108         Fix g_assert so it compiles on fussier compilers re int/ptr
13109         mismatch
13110
13111 2004-04-08  Dick Porter  <dick@ximian.com>
13112
13113         * socket-io.h:
13114         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13115         53992.  Also rearrange the code so that the internal calls return
13116         an error value and exceptions are thrown from managed code.
13117
13118         * icall.c: Add type info to the socket icalls.
13119
13120 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13121
13122         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13123         owes me a beer.
13124
13125 2004-04-07  Martin Baulig  <martin@ximian.com>
13126
13127         * class.c (mono_class_from_generic_parameter): Don't default
13128         `klass->parent' to `mono_defaults.object_type'.
13129
13130 2004-04-07  Martin Baulig  <martin@ximian.com>
13131
13132         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13133         `param->pklass->reflection_info'.       
13134
13135 2004-04-07  Jackson Harper  <jackson@ximian.com>
13136
13137         * culture-info-tables.h: Fix date separator symbol.
13138         
13139 2004-04-07  Martin Baulig  <martin@ximian.com>
13140
13141         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13142         from System.Type to System.MonoType.
13143
13144 2004-04-07  Martin Baulig  <martin@ximian.com>
13145
13146         * reflection.h
13147         (MonoReflectionGenericParam): Added `has_reference_type' and
13148         `has_value_type' fields.
13149
13150         * reflection.c (mono_image_get_generic_param_info): Encode the
13151         correct flags if we have the `class' or `struct' constraint.
13152
13153 2004-04-07  Martin Baulig  <martin@ximian.com>
13154
13155         * reflection.h
13156         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13157
13158 2004-04-07  Jackson Harper  <jackson@ximian.com>
13159
13160         * appdomain.c: Revert extra patches, just wanted to bump the
13161         version number.
13162         
13163 2004-04-07  Jackson Harper  <jackson@ximian.com>
13164
13165         * Makefile.am: Add culture-info private headers.
13166         * icall.c: Add new icalls for contructing locales.
13167         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13168         * locales.h: Declare new culture info construction methods.
13169         * object.h: Add new fields used to avoid the CultureMap to
13170         MonoCultureInfo.
13171         * culture-info.h: Definition of structs used in the culture info
13172         tables.
13173         * culture-info-tables.h: Autogenerated tables that contain culture
13174         info data. This file was generated with the locale-builder tool.
13175         * appdomain.c: Incement corlib version number.
13176         
13177 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13178
13179         * appdomain.c: (mono_runtime_init) move mono_thread_init
13180         to before mono_object_new calls so critical sections
13181         are initialized before use.
13182
13183 2004-04-07  Martin Baulig  <martin@ximian.com>
13184
13185         * icall.c
13186         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13187         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13188         (ves_icall_MonoGenericParam_initialize): Removed.
13189         (monogenericparam_icalls): Removed.
13190         (generictypeparambuilder_icalls): Added new table for
13191         System.Reflection.Emit.GenericTypeParameterBuilder.
13192
13193         * reflection.c
13194         (mono_reflection_define_generic_parameter): Removed.
13195         (mono_reflection_initialize_generic_parameter): This is now called
13196         from GenericTypeParameterBuilder's .ctor.
13197
13198 2004-04-06  Martin Baulig  <martin@ximian.com>
13199
13200         * class.c (mono_class_init): Don't inflate nested classes in a
13201         generic instance.
13202         (mono_type_get_name_recurse): Include the generic arguments for
13203         generic instances and generic type declarations.
13204         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13205         (_mono_class_get_instantiation_name): Removed.
13206         (mono_class_create_generic): Always use `gklass->name' as our name.
13207
13208         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13209
13210         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13211         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13212         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13213         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13214         closed generic methods here.
13215
13216         * reflection.c
13217         (mono_reflection_generic_inst_get_nested_types): Removed.
13218         (inflate_mono_method): Copy the generic parameters from the
13219         MonoMethodHeader into out MonoGenericMethod.
13220
13221 2004-04-06  Martin Baulig  <martin@ximian.com>
13222
13223         * row-indexes.h
13224         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13225
13226         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13227
13228         * reflection.c (build_compressed_metadata): If we have any entries
13229         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13230         set the header version to 1.1.
13231
13232 2004-04-06  Martin Baulig  <martin@ximian.com>
13233
13234         * class.c (mono_class_init): If we're a generic instance,
13235         initialize our nested classes, too.
13236         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13237         suffix. 
13238
13239 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13240
13241         * process.c: quote the argument passed to the shell on windows.
13242
13243 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13244
13245         * threads.c (mono_alloc_special_static_data): Allow this to be
13246         called during startup.
13247
13248 2004-04-02  Martin Baulig  <martin@ximian.com>
13249
13250         * icall.c
13251         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13252
13253 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13254
13255         * icall.c: Fix build.
13256
13257 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13258
13259         * Makefile.am: Added security.c|h.
13260         * icall.c: Added icall for get_UserName;
13261         * security.c: New file for security related icalls. Added function
13262         get_UserName for System.Environment (fix #56144).
13263         * security.h: New. Header file for security.c
13264
13265 2004-04-02  Dick Porter  <dick@ximian.com>
13266
13267         * icall.c: Deleted the icalls that were obsoleted some time ago
13268         by the ICU string code, and which were mixed into the icall
13269         rearranging.  Fixes bug 55969.
13270
13271         * string-icalls.h: 
13272         * string-icalls.c: Deleted the code that those icalls reference.
13273
13274 2004-04-01  Martin Baulig  <martin@ximian.com>
13275
13276         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13277
13278         * class.c (mono_class_from_generic_parameter): Don't set 
13279         TYPE_ATTRIBUTE_INTERFACE.
13280         (my_mono_class_from_generic_parameter): Likewise.
13281
13282 2004-04-01  Martin Baulig  <martin@ximian.com>
13283
13284         * loader.c (find_method): Added an optional `MonoClass *ic'
13285         argument to search in a specific interface.
13286         (mono_get_method_constrained): New public function.
13287
13288 2004-04-01  Martin Baulig  <martin@ximian.com>
13289
13290         * reflection.c (mono_image_get_generic_field_token): Use the
13291         `handleref' cache here.
13292
13293 2004-04-01  Martin Baulig  <martin@ximian.com>
13294
13295         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13296
13297         * reflection.c (create_generic_typespec): Use the `typespec' hash
13298         here, not the `typeref' one.    
13299
13300 2004-04-01  Martin Baulig  <martin@ximian.com>
13301
13302         * class.c (mono_class_inflate_generic_type): Moved the
13303         functionality into a new static inflate_generic_type() which
13304         returns NULL if it didn't do anything.  Only increment the
13305         `mono_stats.inflated_type_count' if we actually inflated
13306         something.
13307         (mono_class_get_full): Check the classes type to see whether we
13308         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13309
13310 2004-04-01  Jackson Harper  <jackson@ximian.com>
13311
13312         * reflection.c: Set culture for assembly references.
13313         
13314 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13315
13316         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13317
13318 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13319
13320         * assembly.c:
13321         (do_mono_assembly_open): the critical section also covers
13322         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13323
13324 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13325
13326         * threads.c:
13327         (mono_manage_threads): abort the background threads when finishing.
13328         Fixes bug #47232.
13329
13330 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13331
13332         * gc.c: only close the done_event handle if there was no timeout.
13333         C-ified comments.
13334
13335 2004-03-30  Martin Baulig  <martin@ximian.com>
13336
13337         * icall.c (icall_entries): It's called "System.Activator", not
13338         "System.Activation".    
13339
13340 2004-03-30  Martin Baulig  <martin@ximian.com>
13341
13342         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13343         (mono_class_create_from_typespec): Likewise.
13344
13345 2004-03-30  Martin Baulig  <martin@ximian.com>
13346
13347         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13348         `has_ctor_constraint' and `initialized'.
13349
13350 2004-03-30  Martin Baulig  <martin@ximian.com>
13351
13352         * reflection.c (encode_new_constraint): New static function to add
13353         the constructor constraint attribute to a type parameter.
13354         (encode_constraints): Call encode_new_constraint() if necessary.
13355
13356         * reflection.h
13357         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13358
13359         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13360         
13361 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13362
13363         * reflection.c, icall.c: add support for pinning variables. 
13364
13365 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13366
13367         * marshal.c (mono_marshal_get_managed_wrapper):
13368         init bool local with zero rather than null.
13369
13370 2004-03-29  Martin Baulig  <martin@ximian.com>
13371
13372         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13373         the "official" behavior here.
13374         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13375
13376 2004-03-29  Martin Baulig  <martin@ximian.com>
13377
13378         * icall.c: Reflect latest API changes.
13379
13380 2004-03-29  Martin Baulig  <martin@ximian.com>
13381
13382         * loader.c (mono_get_method_from_token): Also call
13383         mono_metadata_load_generic_params () for abstract and interface
13384         methods; replace the type arguments in the method signature with
13385         the ones which are loaded from the metadata.
13386
13387 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13388
13389         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13390         of the lock is not the current thread. MS.NET don't do it, in spite of
13391         what the documentation says. See bug #56157.
13392
13393 2004-03-28  Martin Baulig  <martin@ximian.com>
13394
13395         * class.c (mono_class_init): Don't call init_properties() and
13396         init_events() for generic instances; set `prop->parent' when
13397         inflating properties.
13398
13399         * reflection.c (mono_generic_inst_get_object): Call
13400         `mono_class_init (ginst->klass)'.
13401         (mono_type_get_object): Only create a MonoGenericInst if your
13402         generic type is a TypeBuilder.
13403         (do_mono_reflection_bind_generic_parameters): Only set
13404         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13405
13406 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13407
13408         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13409         Fixes #56091.
13410
13411 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13412
13413         * icall.c: added Kill_internal icall.
13414         * process.[ch]: added Kill_internal icall.
13415
13416 2004-03-25  Martin Baulig  <martin@ximian.com>
13417
13418         * class.h (MonoStats): Added `generic_instance_count',
13419         `inflated_method_count', `inflated_type_count' and
13420         `generics_metadata_size'.       
13421
13422 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13423
13424         * reflection.c: no warnings now.
13425
13426 2004-03-25  Martin Baulig  <martin@ximian.com>
13427
13428         * class.c (mono_class_get_full): New public function; does a
13429         mono_class_get(), but also takes a `MonoGenericContext *'.
13430
13431         * loader.c (mono_field_from_memberref): Renamed to
13432         `field_from_memberref', made static and added `MonoGenericContext *'
13433         argument.
13434         (mono_field_from_token): Added `MonoGenericInst *' argument.
13435         (method_from_memberef): Likewise.
13436         (mono_get_method_from_token): Likewise.
13437         (mono_get_method_full): New public function; does a
13438         mono_get_method(), but also takes a `MonoGenericContext *'.
13439
13440         * verify.c (mono_method_verify): Get the method's generic context
13441         and pass it to mono_field_from_token(), mono_get_method_full() and
13442         mono_class_get_full().
13443
13444 2004-03-25  Martin Baulig  <martin@ximian.com>
13445
13446         * class.c (mono_class_inflate_generic_type): Take a
13447         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13448         `MonoGenericMethod *'.
13449
13450 2004-03-25  Martin Baulig  <martin@ximian.com>
13451
13452         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13453         instead of the MonoGenericMethod here.
13454
13455 2004-03-25  Martin Baulig  <martin@ximian.com>
13456
13457         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13458         each time we create a new MonoGenericInst, we also create a new
13459         context which points back to us.
13460
13461         * class.c (inflate_method): Use `ginst->context' instead of
13462         creating a new context.
13463
13464         * loader.c (method_from_memberref): Use
13465         `klass->generic_inst->context' instead of creating a new context.
13466
13467 2004-03-25  Martin Baulig  <martin@ximian.com>
13468
13469         * class.h (MonoGenericContext): New struct.
13470         (MonoGenericMethod): Removed `generic_inst'.
13471
13472         * class.c (mono_class_inflate_generic_method): Take a
13473         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13474
13475 2004-03-25  Martin Baulig  <martin@ximian.com>
13476
13477         * loader.h (MonoMethodInflated): New typedef.
13478
13479         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13480         `generic_param_count' consume just 30 bits, added `is_inflated'
13481         and `has_type_parameters' flags (one bit each).
13482
13483         * class.c (mono_class_inflate_generic_method): Create a
13484         MonoMethodInflated instead of a MonoMethodNormal and set
13485         `is_inflated' in the method signature.
13486
13487         * class.h (MonoGenericMethod): Removed `generic_method'.
13488
13489 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13490
13491         * image.c: Make sure the name of a MonoImage is always an absolute path.
13492           This fixes bug #54415.
13493
13494 2004-03-24  Martin Baulig  <martin@ximian.com>
13495
13496         * class.c (mono_class_setup_vtable): If we're a generic instance,
13497         use our generic type's vtable size.
13498
13499 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13500
13501         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13502         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13503         problems.
13504
13505 2004-03-23  Martin Baulig  <martin@ximian.com>
13506
13507         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13508         `MonoEvent *events'.
13509
13510         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13511         (typebuilder_icalls): Added "get_event_info"; calls
13512         mono_reflection_event_builder_get_event_info(). 
13513
13514         * reflection.c (mono_reflection_generic_inst_initialize): Added
13515         `MonoArray *events'.
13516         (mono_reflection_event_builder_get_event_info): New function.
13517
13518 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13519
13520         * object.h: add mono_type_initialization_init
13521
13522         * object.c (mono_runtime_class_init): 
13523         implement class constructor synchronization rules
13524         to cope with threading issues.  
13525         add mono_type_initialization_init
13526
13527         * appdomain.c (mono_runtime_init): call 
13528         mono_type_initialization_init
13529
13530         * class.h: removing initializing field from MonoVTable
13531
13532 2004-03-23  Martin Baulig  <martin@ximian.com>
13533
13534         * class.c (my_mono_class_from_generic_parameter): Use
13535         `param->name' if it's not NULL. 
13536
13537 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13538
13539         * class.c: do not insert non-virtual methods in the vtable.
13540         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13541         that means the method is non-virtual. This never would have
13542         happened before.
13543
13544 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13545
13546         * profiler.c: Added lock for accessing coverage_hash.
13547
13548 2004-03-22  Martin Baulig  <martin@ximian.com>
13549
13550         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13551         `method->method->signature->generic_param_count != 0' to make it
13552         work for interface methods.
13553
13554 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13555
13556         * process.c: quote the string passed to the shell using g_shell_quote.
13557
13558 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13559
13560         * threads.c:
13561         (mono_threads_manage): don't remove the finalizer thread and self
13562         from the threads hash table so that mono_thread_manage can be called
13563         more than once.
13564
13565 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13566
13567         * process.c: quote the arguments when UseShellExecute is true. Fixes
13568         bug #55790.
13569
13570 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13571
13572         * threads.c: set mono_thread_detach as a cleanup routine for every
13573         thread. This way it's always executed upon thread termination, either
13574         aborted or finished normally. No more xsp hangs!
13575
13576 2004-03-17  Martin Baulig  <martin@ximian.com>
13577
13578         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13579         `int count_nested' and a `MonoType **nested'.
13580
13581         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13582         most of the functionality into a new static
13583         do_mono_reflection_bind_generic_parameters() and don't take a
13584         `MonoType *nested_in' argument any more.  Don't compute nested
13585         types here.
13586         (mono_reflection_generic_inst_get_nested_types): New public method
13587         to get nested types.
13588
13589         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13590         we're a nested class.
13591
13592         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13593         mono_reflection_generic_inst_get_nested_types() to compute the
13594         nested types.
13595
13596 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13597
13598         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13599         descriptive error message under windows.
13600         
13601 2004-03-17  Martin Baulig  <martin@ximian.com>
13602
13603         * class.c (dup_type): Added `const MonoType *original' argument;
13604         copy the attrs from the original type.
13605
13606 2004-03-17  Martin Baulig  <martin@ximian.com>
13607
13608         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13609         `m->generic_inst_cache' here.
13610
13611 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13612
13613         * exception.h exception.c: Add stack_overflow_exception.
13614
13615 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13616
13617         * threadpool.c:
13618         (overlapped_callback): call SetEvent *after* invoking the callback.
13619         No need to call CloseHandle.
13620
13621 2004-03-16  Martin Baulig  <martin@ximian.com>
13622
13623         * reflection.c (mono_image_get_fieldref_token): Take a
13624         `MonoReflectionField *' instead of a `MonoClassField *' and a
13625         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13626
13627 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13628
13629         * appdomain.c: don't add the culture to the filename we're looking for
13630         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13631
13632 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13633
13634         * locales.c: don't ignore symbols when doing case insensitive compares.
13635         Thanks Dick! Fixes bug #54046.
13636
13637         * threads.c: surround 'threads' usage with enter/leave in
13638         mono_thread_manage.
13639
13640 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13641
13642         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13643         implicitly marshalled as [Out]. Fixes #55450.
13644
13645         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13646         an exception.
13647
13648 2004-03-16  Martin Baulig  <martin@ximian.com>
13649
13650         * class.c (mono_class_from_generic_parameter): Use the actual
13651         parameter name. 
13652
13653 2004-03-16  Martin Baulig  <martin@ximian.com>
13654
13655         * reflection.c (type_get_signature_size): New static function.
13656         Compues the size of the type in a method signature.
13657         (method_get_signature_size): New static function; calls
13658         type_get_signature_size() to compute the actual size of the
13659         method's signature.
13660         (method_encode_signature): Use method_get_signature_size() to get
13661         the signature's size rather than using `nparams * 10'.
13662
13663 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13664
13665         * file-io.h: define here WapiOverlapped on windows. I don't want the
13666         regular OVERLAPPED one.
13667
13668         * file-io.c:
13669         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13670         Disabling AIO on windows.
13671
13672 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13673
13674         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13675         bug #55385.
13676
13677 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13678
13679         * appdomain.c: upgraded corlib version.
13680
13681         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13682         and BeginWrite. Allow opening files for asynchrnous operations.
13683
13684         * file-io.h: new struct that maps FileStreamAsyncResult.
13685         * icall.c: added new icalls.
13686         * process.[ch]: support setting child process environment variables
13687         and use the SHELL or COMSPEC when UseShellExecute is true.
13688
13689         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13690         callback for async. IO is here and also BindHandle.
13691
13692         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13693         from here.
13694
13695 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13696
13697         * reflection.c (create_custom_attr): Allow len == 0.
13698
13699         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13700         computation on big-endian machines.
13701
13702 2004-03-13  Martin Baulig  <martin@ximian.com>
13703
13704         * class.h (MonoGenericInst): Added `int count_ifaces'.
13705
13706         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13707         `ginst->count_ifaces' instead `klass->interface_count' since we
13708         may get called before the vtable is created.
13709
13710         * loader.c (mono_method_get_param_names): If we're a generic
13711         instance, return and don't initialize the class.
13712
13713         * reflection.c (mono_reflection_setup_generic_class): Don't call
13714         ensure_runtime_vtable().
13715         (mono_reflection_bind_generic_parameters): Set
13716         `ginst->count_ifaces'.
13717
13718 2004-03-11  Jackson Harper <jackson@ximian.com>
13719
13720         * icall.c:
13721         * unicode.c:
13722         * unicode.h: Remove unused System.Char icalls.
13723         
13724 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13725
13726         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13727         code when we P/Invoke the first library in Windows.Forms, instead
13728         of when we first open the assembly.
13729
13730         * assembly.c: Drop the lookup from here.
13731
13732 2004-03-10  Martin Baulig  <martin@ximian.com>
13733
13734         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13735         class for properties, fields and events.  Finally fixes #54945.
13736
13737 2004-03-10  Martin Baulig  <martin@ximian.com>
13738
13739         * metadata.c (mono_metadata_class_equal): New static function;
13740         checks whether two generic instances or two generic parameters are
13741         equal.
13742         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13743         compare classes.        
13744
13745 2004-03-10  Martin Baulig  <martin@ximian.com>
13746
13747         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13748
13749         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13750         argument and write it into the `reflection_info' field.
13751
13752         * icall.c
13753         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13754         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13755
13756 2004-03-09  Jackson Harper  <jackson@ximian.com>
13757
13758         * char-conversions.h: use 8 bits for numeric data its all we need
13759         * icall.c: numeric data is only 8 bits now.
13760
13761 2004-03-09  Martin Baulig  <martin@ximian.com>
13762
13763         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13764
13765         * class.c (init_properties, init_events): Initialize the new
13766         `parent' field.
13767
13768         * reflection.c (typebuilder_setup_properties): Likewise.
13769         (typebuilder_setup_events): Likewise.
13770
13771         * reflection.h (MonoEventInfo): Replaced `parent with
13772         `declaring_type' and `reflected_type'.
13773
13774         * icall.c (ves_icall_get_property_info): Distinguish between
13775         declaring and reflected type.
13776         (ves_icall_get_event_info): Likewise.
13777
13778 2004-03-09  Martin Baulig  <martin@ximian.com>
13779
13780         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13781         (ves_icall_Type_GetField): Correctly set field->klass.
13782
13783 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13784
13785         * loader.h: Fix warning.
13786
13787 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13788
13789         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13790         library routine if present.  Notice that it will still continue
13791         executing even if its missing, for those working on the Gtk#
13792         edition of Windows.Forms.
13793
13794         * assembly.c (do_mono_assembly_open): If loading the
13795         System.Windows.Forms call mono_loader_wini_init.
13796
13797 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13798
13799         * class.h: Added MonoRemoteClass struct.
13800         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13801         function for MonoStrings.
13802         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13803         Added internal call for getting the proxy type.
13804         * marshal.c: Get the type of transparent proxies from its remote_class.
13805         Added methods that generate the IL for type checks and casts:
13806         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13807         mono_marshal_get_proxy_cancast.
13808         * marshal.h: Declaration of the previous new methods.
13809         * object.c: Added new moethods for creating and updating MonoRemoteClass
13810         instances: mono_remote_class, mono_upgrade_remote_class, 
13811         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13812         * verify.c: FIx transparent_proxy_fields layout.
13813         * appdomain.c: Bump corlib version.
13814
13815 2004-03-04  Jackson Harper  <jackson@ximian.com>
13816
13817         * icall.c: Add icall to access char conversion tables.
13818         * char-conversions.h: Character conversion tables.
13819         * Makefile.am: Add char-conversions.h private header file.
13820         
13821 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13822
13823         * appdomain.c (unload_thread_main): Increase unloading timeout to
13824         10 sec as a temporary workaround for Nant problems.
13825
13826 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13827
13828         * gc.c: Add checks for GC_enable and GC_disable.
13829
13830         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13831         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13832         (bug #54988).
13833         
13834 2004-02-27  Martin Baulig  <martin@ximian.com>
13835
13836         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13837         `MonoReflectionType *' instead of a `MonoType *'.
13838
13839 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13840
13841         * gc.c (run_finalize): Avoid finalizing the object representing the
13842         finalizer thread.
13843         (finalizer_thread): Fix warning.
13844
13845 2004-02-25  Martin Baulig  <martin@ximian.com>
13846
13847         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13848         argument for nested types.
13849         (mono_class_create_generic): Added support for nested generictypes.
13850
13851         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13852         `GList *nested'.
13853
13854         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13855
13856         * reflection.c (method_encode_signature): Increase the minimum
13857         value of `size' from 10 to 11.
13858         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13859         and `MonoType **types' arguments instead of the `MonoArray
13860         *types'; added `MonoType *nested_in'.  Recursively instantiate
13861         nested classes. 
13862
13863 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13864
13865         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13866         stack_overflow_ex members which are used by exception handling.
13867
13868         * appdomain.c (mono_runtime_init): Initialize the new members.
13869
13870         * gc.c (mono_gc_enable): New helper function.
13871         * gc.c (mono_gc_disable): New helper function.
13872
13873 2004-02-23  Martin Baulig  <martin@ximian.com>
13874
13875         * icall.c: I must have been really stupid - make it actually work
13876         this time ;-)
13877
13878 2004-02-23  Martin Baulig  <martin@ximian.com>
13879
13880         * loader.c (method_from_memberref): Only inflate the method if
13881         it's in another klass.
13882
13883 2004-02-23  Martin Baulig  <martin@ximian.com>
13884
13885         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13886         (mono_class_init): If we're a generic instance and an interface,
13887         compute `class->interface_id'; also create `class->interfaces'
13888         here and inflate them.
13889
13890         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13891         `ginst->is_open'.
13892         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13893
13894         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13895
13896 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13897
13898         * reflection.c (method_encode_code): Improved the error message
13899         generated by the exception.
13900
13901 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13902
13903         * icall.c: Martin did not do what he said in the ChangeLog for
13904         2004-02-18, but put back the changes for properties and events.
13905         Commenting those changes out again and adding comment to bug #54518.
13906         
13907         * process.c: removed warning.
13908
13909 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13910
13911         * marshal.c (emit_struct_conv): Print an error message instead of
13912         asserting when a type does not have the StructLayout attribute.
13913
13914 2004-02-20  Martin Baulig  <martin@ximian.com>
13915
13916         * reflection.c (mono_type_get_object): Also use the cache for
13917         generic instances.
13918         (mono_reflection_bind_generic_parameters): Always compute
13919         `ginst->ifaces'.        
13920
13921 2004-02-20  Martin Baulig  <martin@ximian.com>
13922
13923         * class.h (MonoGenericMethod): Removed `klass'.
13924
13925         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13926         *klass' argument.
13927
13928 2004-02-20  Martin Baulig  <martin@ximian.com>
13929
13930         * reflection.c (method_encode_methodspec): Actually use the
13931         uninflated signature for the memberref.
13932
13933 2004-02-20  Martin Baulig  <martin@ximian.com>
13934
13935         * class.h (MonoGenericMethod): Removed `declaring'.
13936
13937         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13938         is NULL, compute it here.
13939
13940 2004-02-20  Martin Baulig  <martin@ximian.com>
13941
13942         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13943
13944         * metadata.c (mono_metadata_generic_inst_hash): New method.
13945         (mono_metadata_generic_inst_equal): New method.
13946
13947         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13948         `klass->image->generic_inst_cache' cache to avoid creating
13949         duplicate MonoGenericInst's.
13950
13951         * class.c (mono_class_inflate_generic_type): Use the cache.
13952
13953 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13954
13955         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13956
13957 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13958
13959         * icall.c: added Socket.WSAIoctl icall.
13960
13961         * socket-io.[ch]: implemented
13962         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13963
13964 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13965
13966         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13967
13968 2004-02-18  Urs C Muff  <umuff@quark.com>
13969
13970         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13971         this work on PPC and other big-endian architectures.
13972
13973         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13974         fields with an underscore to make sure they're only accessed by
13975         the read32() macro.
13976
13977 2004-02-18  Martin Baulig  <martin@ximian.com>
13978
13979         * icall.c: Put the klass->refclass changes back for methods and
13980         fields, but not for properties and events.  We're currently not
13981         distinguishing between DeclaringType and ReflectedType for
13982         properties and events, that's what caused the regressions.
13983
13984 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13985
13986         * object.c:
13987         (mono_async_result_new): the handle can be NULL.
13988
13989         * threadpool.c: Use an event instead of a semaphore, don't initialize
13990         it until needed. This saves quite a few semaphores from being created
13991         when using the threadpool.
13992
13993 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13994
13995         * object.c (mono_string_is_interned_lookup): Fix interning of long
13996         strings. Fixes #54473.
13997
13998         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13999
14000         * icall.c: Revert the klass->refclass changes since they introduce
14001         regressions (bug #54518).
14002
14003 2004-02-18  Martin Baulig  <martin@ximian.com>
14004
14005         * class.c (mono_class_init): If we're a generic instance and don't
14006         come from a TypeBuilder, inflate our members here.
14007         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14008         (mono_class_create_generic): New public method.
14009         (mono_class_initialize_generic): Removed.
14010         (get_instantiation_name): Renamed to
14011         _mono_class_get_instantiation_name() and made it public.
14012
14013 2004-02-18  Martin Baulig  <martin@ximian.com>
14014
14015         * class.c (mono_class_inflate_generic_type): Clear the new
14016         instance's `nginst->klass' when inflating a generic instance.
14017         (mono_class_is_subclass_of): Added (basic) support for generic
14018         instances.
14019
14020 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14021
14022         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14023         MonoMempool to hold compiled native code.
14024
14025 2004-02-17  Martin Baulig  <martin@ximian.com>
14026
14027         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14028         `properties'.
14029
14030         * reflection.c (mono_reflection_generic_inst_initialize): Added
14031         `MonoArray *properties' argument.
14032
14033         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14034
14035 2004-02-17  Martin Baulig  <martin@ximian.com>
14036
14037         * icall.c (ves_icall_Type_GetFields): Renamed to
14038         ves_icall_Type_GetFields_internal() and added a
14039         `MonoReflectionType *rtype' argument; pass it to
14040         mono_field_get_object() to set the field's "reflected" type.
14041         (ves_icall_Type_GetConstructors): Likewise.
14042         (ves_icall_Type_GetEvents): Likewise.
14043         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14044         argument; pass it to mono_method_get_object() to set the method's
14045         "reflected" type.       
14046
14047 2004-02-17  Martin Baulig  <martin@ximian.com>
14048
14049         * class.h (MonoDynamicGenericInst): New type.
14050         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14051
14052         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14053         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14054         (ves_icall_MonoGenericInst_GetFields): New interncall.
14055
14056         * class.c (mono_class_from_generic): Don't call
14057         mono_class_initialize_generic() if this is a dynamic instance;
14058         ie. it's being created from a TypeBuilder.
14059         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14060         `class->byval_arg.type'.
14061
14062         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14063         to `inflate_method' and made static.
14064         (mono_reflection_inflate_field): Removed.
14065         (mono_reflection_generic_inst_initialize): New public method.
14066
14067         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14068         `ctors' and `fields'; added `initialized'.
14069
14070 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14071
14072         * debug-helpers.c (mono_method_full_name): Fix output for empty
14073         namespaces.
14074
14075 2004-02-12  Martin Baulig  <martin@ximian.com>
14076
14077         * class.h (MonoClassField): Added `MonoType *generic_type'.
14078
14079         * reflection.c (mono_image_get_fieldref_token): Added support for
14080         instantiated generic types.
14081         (field_encode_inflated_field): Removed.
14082         (mono_image_get_inflated_field_token): Removed.
14083         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14084
14085         * reflection.h (MonoReflectionInflatedField): Removed.
14086
14087 2004-02-12  Martin Baulig  <martin@ximian.com>
14088
14089         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14090         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14091
14092         * reflection.c (mono_image_get_methodspec_token): Take a
14093         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14094         (mono_image_create_token): Check whether we have a
14095         `method->signature->gen_method' and call
14096         mono_image_get_methodspec_token() if appropriate.
14097         (inflated_method_get_object): Removed.
14098         (mono_reflection_bind_generic_method_parameters): Return a
14099         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14100         (mono_reflection_inflate_method_or_ctor): Likewise.
14101
14102         * reflection.h (MonoReflectionInflatedMethod): Removed.
14103
14104 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14105
14106         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14107         for custom valuetype marshalling.
14108
14109         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14110
14111 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14112
14113         * icall.c: fixed WSAGetLastError_internal name.
14114
14115 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14116
14117         * threads.c (mono_thread_attach): Allow this to be called multiple
14118         times for a thread.
14119         
14120         * threads.c (build_wait_tids): Do not wait for ourselves.
14121
14122         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14123         appdomain list is empty.
14124
14125         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14126         memory returned by mono_string_builder_to_utf16, since it points into
14127         managed memory. Thanks to Bernie Solomon for noticing this.
14128
14129         * icall.c: Add AppDomainSetup icalls.
14130
14131         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14132
14133         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14134         types.
14135
14136         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14137         custom attributes to the method_aux struct. Also fix array indexes etc.
14138
14139         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14140         
14141 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14142
14143         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14144         (both static and runtime) and reduce startup time.
14145
14146 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14147
14148         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14149         AsAny marshalling conversion instead of crashing.
14150
14151         * marshal.c: Fix warnings.
14152
14153 2004-02-09  Martin Baulig  <martin@ximian.com>
14154
14155         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14156
14157         * reflection.h (MonoReflectionInflatedMethod): Removed the
14158         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14159
14160         * reflection.c (method_encode_methodspec): Removed the `method'
14161         argument; we get it from `gmethod->declaring'.
14162         (inflated_method_get_object): Removed the `declaring' argument.
14163
14164 2004-02-09  Martin Baulig  <martin@ximian.com>
14165
14166         * class.h (MonoGenericMethod): New type.
14167         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14168         `generic_method'.
14169
14170         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14171         a `MonoGenericMethod *gen_method' one.
14172
14173         * class.c (mono_class_inflate_generic_type): Take an additional
14174         `MonoGenericMethod * argument.  This is only non-NULL if we're
14175         inflating types for a generic method.   
14176         (mono_class_inflate_generic_signature): Renamed to
14177         inflate_generic_signature() and made static; take a
14178         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14179         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14180         instead of a `MonoGenericInst *' one.
14181         (mono_class_inflate_generic_method): Likewise.
14182
14183         * reflection.c (encode_generic_method_sig): Take a
14184         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14185         (method_encode_methodspec): Likewise.
14186         (inflated_method_get_object): Likewise. 
14187
14188         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14189         field with a `MonoGenericMethod *gmethod' one.  
14190
14191 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14192
14193         * class.h (mono_class_has_parent): add parens to expansion
14194         so you can ! this.
14195
14196 2004-02-08  Martin Baulig  <martin@ximian.com>
14197
14198         * image.h (MonoImage): Removed `generics_cache'.
14199
14200         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14201         instead of a `MonoType *' argument; removed the `inflate_methods'
14202         argument.  Don't inflate methods here.
14203
14204         * loader.c (find_method): If it's a generic instance, call
14205         mono_class_init() on the `sclass->generic_inst->generic_type'.
14206
14207         * metadata.c (mono_type_size): Make this work on uninitialized
14208         generic instances; call it on the `ginst->generic_type's class.
14209
14210         * reflection.c (mono_reflection_bind_generic_parameters): Call
14211         mono_class_from_generic() to create the `ginst->klass'.
14212
14213 2004-02-08  Martin Baulig  <martin@ximian.com>
14214
14215         * class.h (MonoClass): Changed type of `generic_inst' from
14216         `MonoType *' to `MonoGenericInst *'.
14217
14218 2004-02-08  Martin Baulig  <martin@ximian.com>
14219
14220         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14221         mono_type_get_object(), this is now creating a `MonoGenericInst'
14222         for MONO_TYPE_GENERICINST.
14223         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14224         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14225
14226         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14227         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14228         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14229         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14230         and reflected type.
14231
14232         * reflection.h (MonoReflectionInflatedMethod): Removed
14233         `declaring_type' and `reflected_type'.
14234
14235 2004-02-08  Martin Baulig  <martin@ximian.com>
14236
14237         * class.h (MonoGenericInst): Added `MonoType *parent' and
14238         `MonoType **ifaces'.
14239
14240         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14241         `parent' and `interfaces'.
14242
14243         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14244         `MonoType *' argument and return a `MonoType *'.
14245
14246         * icall.c
14247         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14248         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14249
14250 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14251
14252         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14253         valuetype marshalling.
14254
14255 2004-02-06  Martin Baulig  <martin@ximian.com>
14256
14257         * class.c
14258         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14259         (my_mono_class_from_generic_parameter): Likewise.
14260
14261 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14262
14263         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14264         contents of the symbol files lazily.
14265
14266         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14267
14268         * threads.h threads.c icall.c: New icalls for getting and setting the
14269         threads name.
14270
14271 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14272
14273         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14274         Raise an exception when the domain is not found.
14275
14276 2004-02-03  Martin Baulig  <martin@ximian.com>
14277
14278         * reflection.c (mono_image_get_methodspec_token): Use the
14279         uninflated signature; fixes gen-33.
14280
14281 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14282
14283         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14284         the finalizer code can use thread functionality.
14285
14286         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14287         the finalizer thread.
14288
14289         * threads.c: Make some functions more robust.
14290
14291         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14292
14293         * metadata.h: Add new marshalling conventions.
14294
14295         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14296         stringbuilder marshalling. Fixes #53700.
14297
14298         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14299
14300         * reflection.c (mono_image_get_type_info): Save declarative security
14301         info.
14302
14303         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14304         unmanaged fields as well.
14305
14306         * appdomain.c: Bump corlib version.
14307
14308 2004-02-01  Martin Baulig  <martin@ximian.com>
14309
14310         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14311         method type arguments.  
14312
14313 2004-01-30  Duncan Mak  <duncan@ximian.com>
14314
14315         * marshal.h: Add prototype for
14316         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14317         and
14318         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14319         fix the build.
14320
14321 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14322
14323         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14324         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14325
14326 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14327
14328         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14329         custom marshalling of valuetypes.
14330
14331         * marshal.c: Fix some warnings.
14332
14333 2004-01-29  Martin Baulig  <martin@ximian.com>
14334
14335         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14336         for generic method parameters.
14337
14338         * reflection.c (method_encode_methodspec): Write the uninflated
14339         signature into the methodspec table.
14340         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14341         is always the uninflated method.
14342         (reflection_methodbuilder_to_mono_method): Copy the generic
14343         parameters from the MethodBuilder into `header->gen_params'.
14344
14345 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14346
14347         * class.c (mono_class_from_generic_parameter): Fix warning.
14348
14349 2004-01-27  Martin Baulig  <martin@ximian.com>
14350
14351         * class.c (mono_class_from_generic_parameter): Don't create
14352         `klass->methods' here.  
14353
14354 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14355
14356         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14357         extension since it does not work with libraries named lib<FOO>.dll.so.
14358
14359 2004-01-25  Martin Baulig  <martin@ximian.com>
14360
14361         * class.c (mono_class_inflate_generic_type): Added support for
14362         MONO_TYPE_GENERICINST.
14363
14364         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14365         inflate methods on open constructed types.      
14366
14367 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14368
14369         * object.c: fire ProcessExit event in the root AppDomain after running
14370         Main. Fixes bug #53299.
14371
14372 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14373
14374         * socket-io.c: include the new socket-wrappers.h header.
14375         Use the wrappers instead of the unix socket functions to make the code
14376         more clear.
14377
14378 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14379
14380         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14381
14382         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14383         Fixes #22532.
14384
14385 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14386
14387         * reflection.c (mono_image_create_pefile): Handle the case when the
14388         entry point is not a MethodBuilder.
14389
14390         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14391         field to ReflectionMethod since it is not allways a builder.
14392
14393         * reflection.c (type_get_fully_qualified_name): New helper function to
14394         return the fully qualified name of a type.
14395
14396         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14397         type name for custom marshallers.
14398
14399         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14400
14401         * class.c (mono_class_setup_vtable): If a parent class already 
14402         implements an interface, use the implementing methods from that class.
14403         Fixes #53148.
14404
14405 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14406
14407         * threadpool.c: just return instead of ExitThread to allow for thread
14408         clean up earlier.
14409
14410 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14411
14412         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14413         when closing resource modules.
14414
14415         * reflection.c (mono_image_create_pefile): Handle the case when the
14416         entry point is not a MethodBuilder.
14417
14418         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14419         field to ReflectionMethod since it is not allways a builder.
14420
14421 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14422
14423         * marshal.c (mono_marshal_get_managed_wrapper): 
14424         mono_marshal_alloc takes native int so CONV_I
14425         the arg for 64bits.
14426
14427 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14428
14429         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14430         tokens in the cattr table. Fixes #53108.
14431
14432 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14433
14434         * loader.c: don't trim ".dll" before looking up in the config file.
14435         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14436
14437 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14438
14439         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14440         Return the module which contains the resource as well.
14441         (ves_icall_System_Reflection_Module_Close): New icall.
14442
14443         * appdomain.c: Bump corlib version number.
14444
14445         * image.c (mono_image_addref): New public function.
14446
14447         * assembly.c: Call mono_image_addref.
14448
14449         * reflection.c (mono_module_get_object): Increase reference count of 
14450         the image.
14451
14452         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14453         Fixes #22532.
14454
14455         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14456         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14457         proper exceptions on DllImport problems.
14458
14459 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14460
14461         * class.c, metadata.c: eliminate CSIZE macro.
14462
14463 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14464
14465         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14466         * object.h: Added async_callback field in MonoAsyncResult.
14467         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14468         * verify.c: Added async_callback in MonoAsyncResult layout.
14469
14470 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14471
14472         * reflection.c (mono_reflection_get_custom_attrs): Add support
14473         for Modules.
14474
14475 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14476
14477         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14478         marshalling.
14479         (mono_marshal_method_from_wrapper): Add null pointer check.
14480
14481 2004-01-16  Martin Baulig  <martin@ximian.com>
14482
14483         * debug-mono-symfile.h: Set version number to 36 and reflect
14484         latest symbol writer changes.
14485
14486 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14487
14488         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14489         multi-dimensional arrays.
14490         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14491         (mono_class_from_mono_type): Use bounded_array_class_get.
14492         
14493         * class.c (mono_bounded_array_class_get): New function which takes
14494         a 'bounded' bool argument to distinguish vectors from one dimensional
14495         arrays.
14496
14497         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14498         bounded_array_class_get if the array has bounds.
14499
14500         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14501         Search modules loaded using AssemblyBuilder:AddModule as well.
14502
14503 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14504
14505         * appdomain.c: increased corlib version.
14506         * filewatcher.c: removed g_print.
14507         * icall.c:
14508         (get_property_info): only allocate what is actually requested.
14509         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14510
14511 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14512
14513         * Makefile.am: added filewatcher.[ch]
14514         * filewatcher.[ch]: FileSystemWatcher runtime support.
14515         * icall.c: added new FSW icalls.
14516
14517 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14518
14519         * string-icalls.c: fix stringbuilder regression as suggested by
14520         Iain McCoy <iain@mccoy.id.au>.
14521
14522 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14523
14524         * process.c (process_read_stringtable_block): Recognize '007f' as
14525         a language neutral stringtable block.
14526
14527 2004-01-12  Patrik Torstensson
14528
14529         * object.h (MonoStringBuilder) : Changed layout to support our
14530         new stringbuilder class.
14531         * marshal.c: Change marshalling to support the new layout of 
14532         string builder.
14533         * appdomain.c: increased version number because new layout of
14534         string builder.
14535
14536 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14537
14538         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14539         assembly name as an string instead of an AssemblyName, since it is
14540         easier to extract info from it.
14541
14542         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14543         the culture subdirectories too. Fixes #52231.
14544
14545 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14546
14547         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14548         It takes 2 new parameters with an optional name for the method to look
14549         for and case ignoring info.
14550
14551         * threadpool.c: removed unused variable.
14552
14553 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14554
14555         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14556         It takes 2 new parameters with an optional name for the property to look
14557         for and case ignoring info.
14558         Fixes bug #52753.
14559
14560 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14561
14562         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14563         Fix #52451.
14564
14565 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14566
14567         * appdomain.c:
14568         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14569         Fixes bug #52630.
14570
14571 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14572
14573         * reflection.c: Add support for more than one unmanaged resource.
14574
14575         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14576         in field->def_value, as done in all other cases.
14577
14578         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14579         TypeBuilders.
14580
14581         * reflection.c (mono_reflection_create_runtime_class): Remove 
14582         errorneous assignment to klass->element_class, since it is already
14583         done in mono_reflection_setup_internal_class.
14584
14585 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14586
14587         * gc.c: added missing LeaveCriticalSection.
14588         * icall.c: indented a couple of lines.
14589         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14590         if we call EndInvoke inside a callback. Fixes bug #52601.
14591
14592 2004-01-07  Martin Baulig  <martin@ximian.com>
14593
14594         * mono-debug-debugger.h
14595         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14596
14597 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14598
14599         * appdomain.c: Use messages in NotImplementedException.
14600
14601         * exception.c (mono_get_exception_not_implemented): Now this takes
14602         a message argument.
14603
14604         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14605         exception instead of g_asserting an aborting when something is not
14606         implemented.
14607
14608         Add some inline docs.
14609
14610 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14611
14612         * reflection.h: Update after changes to object layout.
14613
14614         * reflection.c: Implement saving of unmanaged aka win32 resources.
14615
14616         * appdomain.c: Bump version number.
14617
14618         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14619         Handle missing domains gracefully.
14620
14621 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14622
14623         * file-io.c : On Windows, there are much more invalid_path_chars.
14624
14625 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14626
14627         * class.h, object.c: prepare for GetType () speedup.
14628
14629 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14630
14631         * profiler.c: workaround for --profile null reference exception on
14632           cygwin. Patch by Patrik Torstensson.
14633
14634 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14635
14636         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14637         make work for unaligned access.
14638
14639 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14640
14641         * class.c: small cleanup (class->fields [i] -> field).
14642         * image.c: check address of metadata is valid.
14643
14644 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14645
14646         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14647         search the list of loaded assemblies.
14648
14649         * reflection.c (mono_reflection_type_from_name): Use 
14650         mono_assembly_loaded instead of mono_image_loaded.
14651
14652         * reflection.c: Fix warnings.
14653
14654 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14655
14656         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14657         is dynamic. This is needed since an assembly can contain both dynamic and
14658         non-dynamic images.
14659
14660         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14661         assembly->dynamic.
14662
14663         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14664
14665         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14666         to store modules loaded using AddModule.
14667
14668         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14669         on Modules.
14670
14671         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14672
14673         * reflection.c (mono_image_fill_export_table_from_module): New function to
14674         fill out the EXPORTEDTYPES table from a module.
14675
14676         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14677         into a separate function. Also handle loaded non-dynamic modules.
14678
14679         * reflection.c (mono_image_basic_init): Fix memory allocation.
14680
14681         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14682
14683         * assembly.c (mono_assembly_load_references): Make this public.
14684
14685 2003-12-19  Martin Baulig  <martin@ximian.com>
14686
14687         * class.c (mono_class_initialize_generic): Made this static, take
14688         a `MonoGenericInst *' instead of a `MonoClass *'.
14689         (mono_class_from_generic): Call mono_class_initialize_generic()
14690         unless we're already initialized or being called from
14691         do_mono_metadata_parse_generic_inst().
14692
14693         * class.h (MonoGenericInst): Added `initialized' and
14694         `init_pending' flags.
14695
14696         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14697         `mono_class_init (gklass)' or mono_class_initialize_generic()
14698         here; set `generic_inst->init_pending' while parsing the
14699         `type_argv'.
14700
14701 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14702
14703         * locales.c: include string.h for memxxx prototypes
14704
14705 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14706
14707         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14708         constructor when accessing literal fields.
14709
14710 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14711
14712         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14713
14714         * reflection.c (assembly_add_resource_manifest): New function to fill
14715         the MANIFESTRESOURCE table.
14716
14717         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14718
14719         * reflection.h: Update to changes in class layout.
14720
14721         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14722         Reenable call to mono_runtime_is_shutting_down ().
14723
14724         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14725         determine if the runtime is shutting down.
14726
14727 2003-12-16  Jackson Harper <jackson@ximian.com>
14728
14729         * icall.c: comment out call to mono_runtime_is_shutting_down to
14730         fix build.
14731         
14732 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14733
14734         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14735         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14736
14737 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14738
14739         * reflection.c: move definition of swap_with_size
14740         to before its first call
14741
14742 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14743
14744         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14745
14746         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14747         icall.
14748
14749         * object.c: Fix warnings.
14750
14751         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14752         members if FlattenHierarchy is set.
14753
14754         * reflection.c (mono_image_add_decl_security): New function to emit
14755         declarative security.
14756
14757         * reflection.h reflection.c: Add support for declarative security.
14758
14759         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14760         
14761 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14762
14763         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14764         
14765         * appdomain.c verify.c: Moved corlib version checking into its own
14766         function in appdomain.c since it needs to create vtables etc.
14767
14768 2003-12-13  Patrik Torstensson <p@rxc.se>
14769
14770         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14771         instead of unwrapped server.
14772
14773 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14774
14775         * verify.c (check_corlib): Fix field index.
14776
14777 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14778
14779         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14780         GetGacPath icall.
14781
14782 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14783
14784         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14785         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14786         cope with sizeof(size_t) != sizeof(guint32).
14787
14788 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14789
14790         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14791         in case of failure.
14792
14793 2003-12-10  Mark Crichton <crichton@gimp.org>
14794
14795         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14796         in managed code.
14797
14798         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14799
14800 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14801
14802         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14803         marked as deleted.
14804
14805 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14806
14807         * verify.c (check_corlib): Handle the case when the version field is 
14808         initialized by a static constructor.
14809
14810 2003-12-08  Patrik Torstensson  <p@rxc.se>
14811
14812     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14813
14814 2003-12-08  Martin Baulig  <martin@ximian.com>
14815
14816         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14817         a MonoReflectionGenericParameter, also take the parameter index
14818         and name as arguments.
14819         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14820         (ves_icall_MonoGenericParam_initialize): New interncall.
14821         (ves_icall_Type_make_byref_type): New interncall.
14822
14823         * reflection.h (MonoReflectionGenericParam): Derive from
14824         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14825         `index' fields.
14826
14827         * reflection.c (mono_reflection_define_generic_parameter): Create
14828         and return a new MonoReflectionGenericParam; don't initialize the
14829         constraints here.
14830         (mono_reflection_initialize_generic_parameter): New public method;
14831         initializes the constraints and creates the `param->pklass'.
14832
14833 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14834
14835         * reflection.h reflection.c: Use the new fields 'num_types', 
14836         'num_fields' and 'num_methods' to track the number of types etc.
14837
14838         * verify.c (check_corlib): Check corlib version number.
14839
14840 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14841
14842         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14843         function works on all methods.
14844
14845 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14846
14847         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14848         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14849         the custom_type_info flag of the transparent proxy.
14850         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14851         objects that supports IRemotingTypeInfo.
14852         * object.h: Added custom_type_info field in transparent proxy.
14853
14854 2003-12-06  Martin Baulig  <martin@ximian.com>
14855
14856         * class.c (mono_class_create_from_generic): Removed.
14857         (mono_class_from_generic): Check `ginst->klass' before doing
14858         anything else.  This is important to fully support "recursive"
14859         generic types.
14860
14861         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14862         empty `generic_inst->klass' before doing anything else.
14863
14864 2003-12-06  Dick Porter  <dick@ximian.com>
14865
14866         * verify.c: 
14867         * object.h:
14868         * icall.c:
14869         * locales.c: Use C structs to access class fields.  Don't do a
14870         conversion between MonoString and UChar because both are
14871         platform-endian UTF-16.  Compare now takes startindex and count
14872         parameters.  Add a char overload for IndexOf.  Speed up the
14873         invariant string IndexOf.
14874
14875 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14876
14877         * Makefile.am (monosn_LDADD): Fix parallel build.
14878
14879 2003-12-04  Martin Baulig  <martin@ximian.com>
14880
14881         * icall.c
14882         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14883         (ves_icall_Type_make_array_type): New interncall.       
14884
14885 2003-12-04  Martin Baulig  <martin@ximian.com>
14886
14887         * locales.c: also change it in the !HAVE_ICU case.
14888
14889 2003-12-04  Dick Porter  <dick@ximian.com>
14890
14891         * icall.c:
14892         * locales.c: construct_compareinfo is now in CompareInfo, not
14893         CultureInfo.
14894
14895 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14896
14897         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14898         image->files array.
14899
14900         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14901         table as well.
14902
14903         * assembly.c (mono_assembly_load_references): Only load references
14904         once.
14905
14906         * class.c (mono_class_from_name): Avoid linear search of the 
14907         EXPORTEDTYPE table.
14908
14909         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14910
14911 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14912
14913         * image.h (MonoImage): Add 'field_cache' field.
14914
14915         * loader.c (mono_field_from_token): Cache field lookups.
14916         
14917         * reflection.c (mono_module_get_object): Fix name property.
14918
14919         * icall.c (ves_icall_get_enum_info): Update after changes to 
14920         mono_metadata_get_constant_index ().
14921
14922         * icall.c: Get rid of get_type_info icall, use a separate icall for
14923         each type property to avoid needless memory allocations. Fixes #51514.
14924
14925         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14926         to avoid needless binary searches.
14927
14928         * class.c (class_compute_field_layout): Move the initialization of
14929         field->def_value to mono_class_vtable ().
14930
14931         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14932         non-corlib types.
14933
14934         * object.c (mono_object_allocate): Make it inline.
14935
14936         * object.c (mono_object_allocate_spec): Make it inline.
14937         
14938 2003-12-02  Dick Porter  <dick@ximian.com>
14939
14940         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14941         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14942
14943 2003-12-01  Dick Porter  <dick@ximian.com>
14944
14945         * threads.c: Fix signature and call in CreateMutex and
14946         CreateEvent.
14947
14948 2003-12-01  Dick Porter  <dick@ximian.com>
14949
14950         * icall.c: 
14951         * locales.c: Implement string compares and searching
14952
14953         * object.h: Add extra Thread field
14954
14955 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14956
14957         * reflection.c (fixup_method): Add support for MonoCMethod.
14958
14959 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14960
14961         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14962
14963         * reflection.c (assembly_name_to_aname): Allow extra characters in
14964         assembly names. Fixes #51468.
14965
14966 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14967
14968         * exception.c (mono_exception_from_name_domain): New helper function.
14969
14970         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14971         exception object in the correct domain.
14972
14973         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14974         formatting + make a copy a the input data.
14975
14976         * loader.c (mono_get_method_from_token): Methods which contain
14977         native code do not have entries in the ImplMap.
14978
14979         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14980         Thanks to Gonzalo for spotting this.
14981         
14982         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14983         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14984
14985         * assembly.h (mono_assembly_load_from): Split the second part of 
14986         assembly loading into a new public function.
14987
14988         * exception.h (mono_get_exception_bad_image_format): New function.
14989
14990 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14991
14992         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14993         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14994         
14995         * icall.c: Add new icall for creating dynamic methods.
14996
14997         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14998
14999         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15000
15001         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15002         create a dynamic method.
15003
15004         * reflection.c (resolve_object): New helper function.
15005
15006         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15007         which manipulate it so they can also work on dynamic methods.
15008
15009         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15010         creating the MonoReflectionMethodAux structure if it is not needed.
15011         
15012         * reflection.h verify.c: Update after changes to object layout.
15013
15014         * reflection.c (method_builder_encode_signature): Fix compilation on
15015         gcc 2.95.x.
15016
15017 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15018
15019         * appdomain.h: Added support for context static fields. Added static_data
15020           field to MonoAppContext and renamed thread_static_fields to a more
15021           generic special_static_fields in MonoAppDomain, since it can now contain
15022           context static fields.
15023         * domain.c: Updated hashtable name.
15024         * object.c: Replaced field_is_thread_static() for a more generic
15025           field_is_special_static() which also checks for context static attribute.
15026           In mono_class_vtable(), added support for static context fields.
15027         * threads.c: Changed methods that manage thread static fields to more
15028           generic methods so they can be reused both for thread and context static
15029           data.
15030         * threads.h: Declared some new methods.
15031
15032 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15033
15034         * reflection.h: Update after changes to the managed types.
15035
15036         * reflection.c (encode_custom_modifiers): New helper function.
15037
15038         * reflection.c (method_encode_signature): Emit custom modifiers.
15039
15040         * reflection.c (field_encode_signature): Emit custom modifiers.
15041
15042 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15043
15044         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15045
15046         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15047         implementation.
15048
15049         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15050         icall.
15051
15052         * object.c (mono_field_get_value_object): New function.
15053
15054         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15055         specific.
15056
15057 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15058
15059         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15060         return a preallocated out-of-memory exception instance.
15061
15062         * object.c (out_of_memory): Use the new function.
15063
15064         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15065         flag is before the custom modifiers. Fixes #49802.
15066
15067 2003-11-16  Martin Baulig  <martin@ximian.com>
15068
15069         * class.c (mono_class_is_open_constructed_type): Implemented the
15070         MONO_TYPE_GENERICINST case.
15071
15072 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15073
15074         * assembly.c (mono_assembly_fill_assembly_name): New function to
15075         fill out the MonoAssemblyName structure.
15076         (mono_assembly_open): Use the new function.
15077
15078         * icall.c (fill_reflection_assembly_name): New helper function.
15079
15080         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15081         new function.
15082
15083         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15084
15085 2003-11-15  Martin Baulig  <martin@ximian.com>
15086
15087         * class.c (mono_class_is_open_constructed_type): New public
15088         function; checks whether a type is an open constructed type,
15089         ie. whether it still contains type parameters.
15090         (mono_class_inflate_generic_type): If we're a type parameter and
15091         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15092         type.
15093
15094         * class.h (MonoGenericInst): Added `guint32 is_open'.
15095
15096         * loader.c (method_from_methodspec): Check whether we're an open
15097         or closed constructed type and set `ginst->is_open'.
15098
15099         * reflection.c (mono_reflection_bind_generic_parameters): Check
15100         whether we're an open or closed constructed type and set
15101         `ginst->is_open'.
15102         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15103         from open constructed types.
15104
15105 2003-11-15  Martin Baulig  <martin@ximian.com>
15106
15107         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15108         a generic instance (instead of a generic type declaration) with
15109         unbound generic parameters, bind them to our actual types.
15110
15111 2003-11-14  Martin Baulig  <martin@ximian.com>
15112
15113         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15114
15115         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15116         an interface type, populate `res->interfaces' with instantiated
15117         versions of all the interfaces we inherit.
15118
15119 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15120
15121         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15122         when MONO_PATH is set but doesn't contain the install dir.
15123
15124 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15125
15126         * icall.c:
15127         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15128         it's also implemented in base classes. Fixes bug #50927.
15129
15130 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15131
15132         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15133         if this method is called from a finalizer. Fixes #50913.
15134
15135 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15136
15137         * threads.c: Implement VolatileRead/VolatileWrite
15138
15139         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15140
15141 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15142
15143         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15144         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15145         2.95.3.
15146
15147         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15148         from Peter Ross (pro@missioncriticalit.com).
15149         
15150 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15151
15152         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15153
15154 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15155
15156         * assembly.c (mono_assembly_load_references): Disable check because it
15157         triggers on older corlibs which lots of people have.
15158
15159 2003-11-12  Jackson Harper  <jackson@ximian.com>
15160
15161         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15162         load corlib.dll if mscorlib.dll is not found.
15163         * assembly.h: Remove corlib name define.
15164         * class.c:
15165         * domain.c:
15166         * image.c: Change corlib name to mscorlib.
15167         
15168 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15169
15170         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15171
15172 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15173
15174         * appdomain.h: Added loader_optimization here to sync with the C#
15175         code, and add disallow_binding_redirects field.
15176
15177 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15178
15179         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15180
15181         * reflection.c (mono_image_build_metadata): Fix crash on modules
15182         with no types.
15183
15184         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15185
15186         * icall.c (ves_icall_get_method_info): Return callingConvention as
15187         well.
15188
15189         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15190         namespaces from the EXPORTEDTYPE table as well.
15191
15192         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15193         from all modules inside the assembly.
15194         
15195 2003-11-11  Martin Baulig  <martin@ximian.com>
15196
15197         * reflection.c (mono_reflection_bind_generic_parameters): Make
15198         this work for interfaces.
15199
15200 2003-11-11  Martin Baulig  <martin@ximian.com>
15201
15202         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15203
15204 2003-11-11  Martin Baulig  <martin@ximian.com>
15205
15206         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15207         "MonoInflatedMethod" and "MonoInflatedCtor".
15208
15209 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15210
15211         * reflection.c (resolution_scope_from_image): Use the assembly table
15212         from the manifest module, since other modules don't have it.
15213
15214         * debug-helpers.c (mono_type_full_name): New helper function.
15215
15216         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15217
15218         * image.c (mono_image_load_file_for_image): New public function which
15219         is a replacement for the load_file_for_image in class.c.
15220
15221         * assembly.c (mono_assembly_load_module): A wrapper for the function
15222         above which does assembly association and reference loading too.
15223
15224         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15225
15226 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15227
15228         * appdomain.c: not all of the attributes for the full assembly name
15229         are required and the order doesn't matter. Fixes bug #50787.
15230
15231 2003-11-10  Dick Porter  <dick@ximian.com>
15232
15233         * locales.c: Use platform-endian UTF16
15234
15235 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15236
15237         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15238         
15239 2003-11-10  Martin Baulig  <martin@ximian.com>
15240
15241         * metadata.c
15242         (mono_metadata_load_generic_params): Make this actually work.
15243
15244         * reflection.c (mono_reflection_bind_generic_parameters): If our
15245         parent is a generic instance, pass all the `types' to it, no
15246         matter whether it has the same number of type parameters or not.
15247
15248 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15249
15250         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15251
15252         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15253         assignment code to this function so it gets called recursively for all
15254         modules.
15255
15256         * image.c (load_modules): Remove the assembly assignment since it is
15257         now done by mono_assembly_load_references.
15258         
15259         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15260         Add 'module' argument.
15261         (mono_module_get_types): New helper function.
15262         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15263
15264 2003-11-08  Martin Baulig  <martin@ximian.com>
15265
15266         * class.c (mono_class_inflate_generic_method): Interface method
15267         don't have a header.
15268
15269         * reflection.c (mono_image_get_methodspec_token): Take an
15270         additional `MonoGenericInst *' argument instead of reading it from
15271         the header; this is necessary to support interfaces.
15272         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15273         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15274         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15275         argument.
15276
15277         * reflection.h (MonoReflectionInflatedMethod): Added
15278         `MonoGenericInst *ginst'.
15279
15280 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15281
15282         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15283
15284 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15285
15286         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15287
15288 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15289
15290         * reflection.c 
15291         (reflection_methodbuilder_from_method_builder):
15292         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15293         initialize a ReflectionMethodBuilder structure.
15294         (mono_image_get_methodbuilder_token):
15295         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15296         tokens which point to types in another module inside the same assembly.
15297
15298         * reflection.c: Use the new helper functions.
15299         
15300         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15301
15302         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15303         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15304
15305         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15306         neccesary.
15307
15308         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15309         current module. Emit the manifest only for the main module.
15310
15311         * reflection.c (mono_image_create_token): Add assertion when a 
15312         memberref needs to be created.
15313
15314         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15315
15316         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15317         larger buffer for the custom attribute blob. Fixes #50637.
15318         
15319 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15320
15321         * threadpool.c: notify listener on async processing handles after
15322         invoking the async callback. Thanks to Zoltan.
15323
15324 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15325
15326         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15327         avoid code duplication.
15328
15329         * reflection.h (MonoDynamicImage): New type which is currently unused,
15330         but will be used through the ref.emit code in place of 
15331         MonoDynamicAssembly.
15332
15333         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15334         object layout.
15335
15336         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15337         a MonoDynamicImage instead of just a MonoImage.
15338         
15339         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15340         icalls to ModuleBuilder but keep their semantics, so they will work
15341         with moduleb->assemblyb. This will change later.
15342         
15343 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15344
15345         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15346         object layout.
15347
15348         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15349         main module, since it is now done by the managed code.
15350
15351 2003-11-03  Martin Baulig  <martin@ximian.com>
15352
15353         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15354         `ginst->klass' here.
15355         (method_encode_methodspec): Don't use the `ginst->generic_method's
15356         klass if it's a generic instance, use `ginst->klass' in this case.
15357
15358 2003-11-03  Martin Baulig  <martin@ximian.com>
15359
15360         * reflection.c (mono_image_get_generic_method_param_info):
15361         Removed, use mono_image_get_generic_param_info() instead.
15362         (mono_image_get_type_info): Write the GenericParam table before
15363         the Method table.  This is neccessary because in the GenericParam
15364         table, type parameters of the class (ie. '!0' etc.) must come
15365         before the ones from its generic methods (ie. '!!0' etc).
15366
15367 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15368
15369         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15370
15371 2003-11-02  Martin Baulig  <martin@ximian.com>
15372
15373         * reflection.c (create_generic_typespec): Take a
15374         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15375         the generic parameters from it.
15376
15377 2003-11-02  Martin Baulig  <martin@ximian.com>
15378
15379         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15380         instead of a `MonoClassField *' since we just need the type.
15381         (create_generic_typespec): New static function.  Creates a
15382         TypeSpec token for a generic type declaration.
15383         (mono_image_get_generic_field_token): New static function.
15384         (mono_image_create_token): If we're a FieldBuilder in a generic
15385         type declaration, call mono_image_get_generic_field_token() to get
15386         the token.
15387
15388 2003-11-02  Martin Baulig  <martin@ximian.com>
15389
15390         * reflection.h
15391         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15392         `MonoReflectionGenericInst *declaring_type' and
15393         `MonoReflectionGenericInst *reflected_type' fields.
15394
15395         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15396         `MonoReflectionGenericInst *declaring_type' and a
15397         `MonoReflectionGenericInst *reflected_type' argument instead of a
15398         single `MonoReflectionGenericInst *type' one.  Set
15399         `res->declaring_type' and `res->reflected_type' from them.
15400         (mono_reflection_inflate_field): Likewise.      
15401
15402 2003-11-02  Martin Baulig  <martin@ximian.com>
15403
15404         * class.c (mono_class_setup_vtable): Don't store generic methods
15405         in the vtable.  
15406
15407 2003-11-02  Martin Baulig  <martin@ximian.com>
15408
15409         * reflection.h (MonoReflectionGenericInst): Added
15410         `MonoReflectionType *declaring_type'.
15411
15412         * reflection.c (mono_reflection_bind_generic_parameters): Use
15413         `if (tb->parent)' instead of `klass->parent'.
15414
15415 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15416
15417         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15418         with an empty ASSEMBLY table.
15419
15420         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15421         variable in the inner and outer loops.
15422
15423 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15424
15425         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15426         argument.
15427
15428         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15429         
15430         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15431         icalls. Instead, do everything in managed code. This is needed since
15432         it is hard to restore the original domain etc. in unmanaged code in the
15433         presence of undeniable exceptions.
15434
15435         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15436         New icalls to push and pop appdomain refs.
15437
15438 2003-10-31  Martin Baulig  <martin@ximian.com>
15439
15440         * class.c (inflate_generic_type): Renamed to
15441         mono_class_inflate_generic_type() and made it public.
15442
15443         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15444         New interncall.
15445
15446         * loader.c (mono_field_from_memberref): Also set the retklass for
15447         typespecs.
15448
15449         * fielder.c (mono_image_get_inflated_field_token): New static
15450         method; creates a metadata token for an inflated field.
15451         (mono_image_create_token, fixup_method): Added support for
15452         "MonoInflatedField".
15453         (fieldbuilder_to_mono_class_field): New static function.
15454         (mono_reflection_inflate_field): New public function.
15455
15456         * reflection.h
15457         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15458         (MonoReflectionInflatedField): New typedef.     
15459
15460 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15461
15462         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15463         for Solaris and other platforms without s6_addr16
15464
15465 2003-10-30  Martin Baulig  <martin@ximian.com>
15466
15467         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15468         argument instead of two.
15469         (mono_class_inflate_generic_signature): Likewise.
15470         (inflate_generic_header): Likewise.
15471         (mono_class_inflate_generic_method): Likewise.  In addition, if
15472         `ginst->klass' is set, it becomes the new `method->klass'.
15473
15474         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15475         field.
15476
15477         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15478         first byte. [FIXME]
15479         (method_encode_methodspec): If we have generic parameters, create
15480         a MethodSpec instead of a MethodRef.
15481         (fixup_method): Added support for "MonoInflatedMethod" and
15482         "MonoInflatedCtor".
15483         (mono_image_create_token): Added support for "MonoInflatedMethod"
15484         and "MonoInflatedCtor".
15485         (inflated_method_get_object): New static function; returns a
15486         managed "System.Reflection.MonoInflatedMethod" object.
15487         (mono_reflection_bind_generic_method_parameters): Return a
15488         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15489         (mono_reflection_inflate_method_or_ctor): Likewise.
15490         (mono_image_get_generic_method_param_info): Initialize unused
15491         fields to zero.
15492         (mono_image_get_generic_param_info): Likewise.
15493
15494         * reflection.h (MonoReflectionInflatedMethod): New public
15495         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15496         "S.R.MonoInflatedCtor" classes.
15497
15498         * loader.c (method_from_memberref): If we're a TypeSpec and it
15499         resolves to a generic instance, inflate the method.
15500
15501 2003-10-28  Dick Porter  <dick@ximian.com>
15502
15503         * object.c (mono_runtime_run_main): Convert command-line arguments
15504         into utf8, falling back to the user's locale encoding to do so.
15505
15506 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15507
15508         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15509         at this time.
15510
15511         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15512
15513         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15514         up icalls at method definition time. Partially fixes #33569.
15515
15516 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15517
15518         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15519         marshalling of arrays. Fixes #50116.
15520
15521         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15522
15523         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15524         points to a vtable in the dying appdomain.
15525
15526         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15527         listeners into unmanaged code inside the lock.
15528
15529         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15530         domains and add some comments.
15531
15532 2003-10-25  Martin Baulig  <martin@ximian.com>
15533
15534         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15535
15536         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15537
15538         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15539         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15540         currently parsing.  Create the generic class and store it in
15541         `generic_inst->klass' before parsing the type arguments.  This is
15542         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15543         for an example.
15544         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15545         to support recursive typespec entries.
15546
15547         * class.c (mono_class_setup_parent): If our parent is a generic
15548         instance, we may get called before it has its name set.
15549         (mono_class_from_generic): Splitted into
15550         mono_class_create_from_generic() and mono_class_initialize_generic().
15551
15552 2003-10-25  Martin Baulig  <martin@ximian.com>
15553
15554         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15555         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15556         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15557         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15558
15559         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15560         (create_typespec): Likewise.
15561         (mono_reflection_bind_generic_parameters): Return a
15562         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15563         (mono_reflection_inflate_method_or_ctor): New public function.
15564
15565         * reflection.h (MonoReflectionGenericInst): New typedef.        
15566
15567 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15568
15569         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15570         inside the domain lock. Fixes #49993.
15571         
15572         * object.c (mono_class_vtable): When typed allocation is used, 
15573         allocate vtables in the GC heap instead of in the mempool, since the
15574         vtables contain GC descriptors which are used by the collector even
15575         after the domain owning the mempool is unloaded.
15576
15577         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15578
15579         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15580         reflect what it does. Also invalidate mempools instead of freeing
15581         them if a define is set.
15582
15583         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15584         of the appdomain.
15585         
15586         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15587         hold the finalizable objects in this domain.
15588
15589         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15590         appdomain.
15591
15592         * appdomain.c (mono_domain_set): New function to set the current
15593         appdomain, but only if it is not being unloaded.
15594
15595         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15596         appdomain which is being unloaded.
15597         
15598         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15599         unloading of the root appdomain.
15600
15601         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15602         icall to execute a method in another appdomain. Intended as a 
15603         replacement for InternalSetDomain, which can confuse the code 
15604         generation in the JIT.
15605
15606         * appdomain.c (mono_domain_is_unloading): New function to determine
15607         whenever an appdomain is unloading.
15608
15609         * appdomain.c (mono_domain_unload): New function to correctly unload
15610         an appdomain.
15611
15612         * assembly.c (mono_assembly_load_references): Check that an assembly
15613         does not references itself.
15614
15615         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15616         domain manually, it asks the finalizer thread to do it, then waits for
15617         the result. Also added a timeout.
15618
15619         * icall.c: Register the new icalls.
15620
15621         * threads.h threads.c: Export the mono_gc_stop_world and 
15622         mono_gc_start_world functions.
15623         
15624         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15625         function to fill out the mempool with 0x2a.
15626
15627 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15628
15629         * reflection.h (MonoReflectionMethodAux): New structure to store
15630         information which is rarely used, thus is not in the MonoMethod
15631         structure.
15632
15633         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15634         store the aux info.
15635
15636         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15637         and marshalling info into the aux structure.
15638
15639         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15640         from the aux structure.
15641
15642         * loader.c (mono_method_get_param_names): Retrieve the param names from
15643         the aux structure.
15644         
15645 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15646
15647         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15648         warning.
15649
15650 2003-10-21  Dick Porter  <dick@ximian.com>
15651
15652         * socket-io.c
15653         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15654         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15655
15656 2003-10-21  Martin Baulig  <martin@ximian.com>
15657
15658         * reflection.c (mono_reflection_bind_generic_parameters):
15659         `klass->parent' is NULL for interfaces.
15660
15661 2003-10-21  Martin Baulig  <martin@ximian.com>
15662
15663         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15664
15665 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15666
15667         * exception.c (mono_exception_from_name_msg): New helper function for
15668         creating exceptions and initializing their message field.
15669
15670         * exception.c: Simplify functions using the new helper.
15671
15672         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15673         New function.
15674
15675         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15676         mono_raise_exception, since otherwise gcc doesn't generate the function
15677         epilog for raise_exception, confusing the stack unwinding in the JIT.
15678         Fixes #45043.
15679
15680         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15681         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15682         Fixes #49499.
15683
15684 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15685
15686         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15687         utf8.
15688
15689 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15690
15691         * icall.c: Removed GetUninitializedObject method because
15692           AllocateUninitializedClassInstance does the same.
15693
15694 2003-10-18  Martin Baulig  <martin@ximian.com>
15695
15696         * class.c (inflate_generic_signature): Renamed to
15697         mono_class_inflate_generic_signature() and made it public.
15698         (my_mono_class_from_generic_parameter): New static function; if we
15699         don't already have the generic parameter's MonoClass, create a
15700         very simple one which is just used internally in the runtime and
15701         not passed back to managed code.
15702
15703         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15704
15705         * metadata.h (MonoMethodSignature): Moved the
15706         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15707         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15708
15709         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15710         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15711         interncall on the MonoMethod class, not on MethodInfo.
15712         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15713         calling mono_reflection_bind_generic_method_parameters() directly.
15714
15715         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15716         return the already computed `method->signature'.
15717         (method_from_methodspec): New static function to load a method
15718         from a MethodSpec entry.
15719         (mono_get_method_from_token): Call the new method_from_methodspec()
15720         for MethodSpec tokens.  
15721         (mono_get_method_from_token): If we're a generic method, load the
15722         type parameters.
15723
15724         * reflection.c (mono_image_get_memberref_token): Allow
15725         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15726         table.
15727         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15728         (mono_image_create_token): First check whether it's a generic
15729         method (so we'd need to create a MethodSpec), then do the other
15730         two alternatives.
15731         (mono_reflection_bind_generic_method_parameters): Return a
15732         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15733         called directly from the interncall.
15734
15735 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15736
15737         * reflection.c (load_public_key): Move loading of the public key
15738         into managed code.
15739
15740         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15741
15742         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15743         fields.
15744
15745         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15746         culture, hash_alg and public_key. Fixes #49555.
15747
15748 2003-10-17  Martin Baulig  <martin@ximian.com>
15749
15750         * class.h (MonoGenericInst): Moved this declaration here and added
15751         `MonoMethod *generic_method'.
15752
15753         * icall.c
15754         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15755         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15756
15757         * metadata.c (mono_metadata_type_equal): Two types of
15758         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15759         index; ie. don't compare the address of the `MonoGenericParam'
15760         structure.
15761         (mono_metadata_load_generic_params): Removed the `MonoMethod
15762         *method' argument.
15763
15764         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15765         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15766
15767         * reflection.c (method_encode_signature): Encode the number of
15768         generic parameters.
15769         (encode_generic_method_sig): New static function.
15770         (method_encode_methodspec): New static function; creates an entry
15771         in the MethodSpec table for a generic method.
15772         (mono_image_get_methodspec_token): New static function.
15773         (mono_image_create_token): Call mono_image_get_methodspec_token()
15774         for generic methods.
15775         (mono_reflection_bind_generic_method_parameters): New public
15776         function.  Instantiates a generic method.
15777
15778 2003-10-16  Martin Baulig  <martin@ximian.com>
15779
15780         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15781         *gen_params' here from MonoMethodHeader.
15782
15783         * metadata.c (mono_metadata_parse_method_signature): If we have
15784         generic parameters, initialize `method->gen_params' and then set
15785         the correct `type->data.generic_param' in all the parameters.
15786
15787 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15788
15789         * threads.c (mono_threads_get_default_stacksize): New function to 
15790         return the default stacksize.
15791
15792         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15793         termination of the finalizer thread, since the previous method had
15794         race conditions. Fixes #49628.
15795
15796         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15797         as for the other managed threads.
15798
15799 2003-10-16  Martin Baulig  <martin@ximian.com>
15800
15801         * class.c (inflate_generic_signature): Copy `generic_param_count'
15802         and `gen_params'.
15803
15804         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15805         New interncall.
15806
15807         * metadata.c (mono_metadata_parse_method_signature): Actually set
15808         the `method->generic_param_count' here.
15809         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15810
15811 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15812
15813         * object.h: Add a new field to TypedRef to simplify the implementation
15814         of the REFANY opcodes in the JIT.
15815
15816         * icall.c: Make use of the new field.
15817
15818         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15819         dynamically.
15820
15821 2003-10-15  Martin Baulig  <martin@ximian.com>
15822
15823         * class.c (mono_class_from_gen_param): Renamed to
15824         mono_class_from_generic_parameter() and moved most of the
15825         functionality from mono_reflection_define_generic_parameter()
15826         here; ie. we create a "real" class here.
15827         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15828         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15829         previously been called.
15830
15831         * class.h (MonoGenericParam): Moved the declaration of this struct
15832         here from metadata.h and added `MonoMethod *method'.
15833
15834         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15835         interncall.
15836
15837         * loader.c (mono_get_method_from_token): If we have any generic
15838         parameters, call mono_metadata_load_generic_params() to read them
15839         from the MONO_TABLE_GENERICPAR.
15840
15841         * metadata.c (mono_metadata_load_generic_params): Added
15842         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15843
15844         * metadata.h (MonoMethodSignature): Replaced
15845         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15846         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15847
15848         * reflection.c (mono_reflection_define_generic_parameter): Moved
15849         most of the functionality into the new
15850         mono_class_from_generic_parameter(); set the `method' field if
15851         we're a method parameter.       
15852
15853 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15854
15855         * marshal.c (emit_struct_conv): if native size is 0
15856         emit no code.
15857
15858 2003-10-14  Martin Baulig  <martin@ximian.com>
15859
15860         * icall.c: The generics API has changed in the spec since it was
15861         added to System.Type; these modifications make it match the spec
15862         again.
15863         (ves_icall_Type_GetGenericParameters): Renamed to
15864         `ves_icall_Type_GetGenericArguments'.
15865         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15866         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15867         `ves_icall_MonoType_get_HasGenericArguments'.
15868         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15869         `ves_icall_MonoType_get_IsGenericParameter'.
15870         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15871         this is no interncall anymore.
15872         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15873         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15874
15875 2003-10-14  Martin Baulig  <martin@ximian.com>
15876
15877         * reflection.c (mono_reflection_bind_generic_parameters): Also
15878         inflate generic methods if we're reading the class from IL.
15879
15880 2003-10-13  Martin Baulig  <martin@ximian.com>
15881
15882         * reflection.c (mono_reflection_define_generic_parameter): This
15883         method isn't called directly from the icall anymore; take a
15884         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15885         method generic parameters.
15886         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15887         (method_builder_encode_signature): Encode generic parameters.
15888         (mono_image_get_method_info): Write generic params to the
15889         MONO_TABLE_GENERICPARAM table.
15890
15891         * reflection.h (MonoReflectionMethodBuilder): Added
15892         `MonoArray *generic_params'.
15893
15894         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15895
15896         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15897         wrapper for mono_reflection_define_generic_parameter().
15898         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15899
15900 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15901
15902         * marshal.h: Add missing function to fix build.
15903
15904         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15905         the SetLastError pinvoke attribute.
15906
15907         * marshal.c (mono_marshal_set_last_error): New helper function called
15908         by the generated code.
15909         
15910         * marshal.c (mono_mb_emit_branch): New helper function.
15911
15912         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15913
15914         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15915         classes as parameters and return values of delegates. Fixes #29256. 
15916
15917 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15918
15919         * locales.c: use gint32 in non HAVE_ICU case
15920
15921 2003-10-11  Martin Baulig  <martin@ximian.com>
15922
15923         * mono-debug.c (mono_debug_add_method): Added a workaround for
15924         bug #48591.
15925
15926 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15927
15928         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15929         delegates passed to native code must use the STDCALL calling 
15930         convention. Fixes #35987.
15931
15932 2003-10-10  Martin Baulig  <martin@ximian.com>
15933
15934         * class.c (inflate_generic_type): If we're inflating for a generic
15935         type instance (and not for a generic method), return
15936         MONO_TYPE_MVAR unchanged.
15937
15938 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15939
15940         * string-icalls.c: Join ignores null strings in the source array.
15941         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15942         * threads.c: GetAvailableTheads is slightly more accurate.
15943
15944 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15945
15946         * threads.h threads.c : add mono_threads_set_default_stacksize
15947         and pass default to CreateThread calls.
15948
15949 2003-10-09  Dick Porter  <dick@ximian.com>
15950
15951         * icall.c:
15952         * locales.h:
15953         * locales.c: Internal calls for constructing CultureInfo and
15954         related objects from libicu (if its available.)
15955
15956 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15957
15958         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15959
15960 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15961
15962         * threadpool.c: added an argument to async_invoke_thread that is the
15963         item to process, pass the MonoAsyncResult to the thread start function
15964         when creating a new thread. This way we don't need to acquire any lock
15965         when we're creating a new thread. Readded a semaphore for faster
15966         response times (instead of that Sleep i added).
15967
15968 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15969
15970         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15971         get daylight change dates better on Windows, fix handling
15972         of platforms without tm_gmtoff.
15973
15974 2003-10-06  Martin Baulig  <martin@ximian.com>
15975
15976         * class.c (inflate_generic_method): Renamed to
15977         mono_class_inflate_generic_method() and made public.
15978         (mono_class_init): Don't inflate the generic methods here.
15979         (mono_class_from_generic): Added `gboolean inflate_methods'
15980         argument.  Inflate the methods here.
15981
15982         * loader.c (mono_method_get_param_names): Ignore instances of
15983         generic types for the moment.
15984
15985         * reflection.c (fixup_method): Added support for inflated methods.
15986         (mono_image_create_token): Use mono_image_get_methodref_token()
15987         for inflated methods.
15988         (mono_custom_attrs_from_param): Ignore instances of generic types
15989         for the moment.
15990         (mono_reflection_bind_generic_parameters): New public function.
15991         Moved all the functionality from
15992         ves_icall_Type_BindGenericParameters() here and added support for
15993         dynamic types.
15994         (mono_reflection_define_generic_parameter): Initialize
15995         `klass->methods' here.
15996
15997         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15998         functionality into mono_reflection_define_generic_parameter().
15999         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16000         TypeBuilder, return that TypeBuilder.
16001
16002 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16003
16004         * appdomain.c: removed mono_delegate_semaphore.
16005
16006         * threadpool.c:
16007         (mono_thread_pool_add): moved hash table creation inside and the thread 
16008         creation outside of the critical region.
16009         (mono_thread_pool_finish): removed obsolete code.
16010         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16011         continue or exit the thread depending on the queue.
16012
16013 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16014
16015         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16016         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16017         handle more bool marshalling options
16018
16019 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16020
16021         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16022         arrays of structs. Also add a more descriptive error message when
16023         a structure member is marshalled as LPArray.
16024
16025 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16026
16027         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16028         marshalling arrays of complex types. Fixes #29098. Also remove an
16029         usused and incomplete function.
16030
16031 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16032
16033         * gc.c: report heap_size - free_bytes as total memory allocated
16034         (bug#49362).
16035
16036 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16037
16038         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16039         fix timezone handling problems on Windows.
16040         
16041         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16042         asserts when the year is outside the range handled by ms the functions.
16043
16044         * class.c (setup_interface_offsets): If the class is an interface,
16045         fill out its interface_offsets slot.
16046
16047 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16048
16049         * threadpool.c: mark threadpool threads as background.
16050
16051 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16052
16053         * decimal.c - define DECINLINE to nothing if not using GCC
16054
16055 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16056
16057         * assembly.c: More refcount fixes.
16058
16059 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16060
16061         * string-icalls.c: if we're not trimming, return the same string.
16062         When not splitting, don't create a new string.
16063
16064 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16065
16066         * image.c:
16067         (mono_image_open): increment the ref_count inside the critical section.
16068
16069 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16070
16071         * image.c (mono_image_open): Fix reference counting bug.
16072
16073 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16074
16075         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16076         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16077         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16078         mono_lookup_pinvoke_call throws.        
16079
16080 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16081
16082         * reflection.c (mono_reflection_parse_type): Fix #49114.
16083
16084         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16085         temporary workaround for cygwin header problem.
16086
16087         * object.c (mono_object_isinst): Synchronize this with the code
16088         generated by the JIT for casts.
16089
16090 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16091
16092         * reflection.c (encode_type): Fix #38332.
16093
16094 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16095
16096         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16097         the original method from the wrapper method.
16098
16099 2003-09-25  Martin Baulig  <martin@ximian.com>
16100
16101         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16102         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16103         (ves_icall_Type_get_IsGenericInstance): New interncall.
16104
16105 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16106
16107         * object.c: fix cast warning in big endian code.
16108
16109 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16110
16111         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16112         
16113 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16114
16115         * assembly.c: don't call check_env from mono_assembly_load. It's
16116         already done once in mono_assemblies_init and may cause headaches when
16117         multiple threads are loading assemblies.
16118
16119 2003-09-19  Martin Baulig  <martin@ximian.com>
16120
16121         * reflection.c (mono_reflection_define_generic_parameter): Don't
16122         allocate `klass->methods', set `klass->flags' to
16123         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16124
16125 2003-09-18  Martin Baulig  <martin@ximian.com>
16126
16127         * class.c (mono_class_init): Don't create `class->methods' if it's
16128         already initialized.
16129
16130         * metadata.c (mono_metadata_load_generic_params): Make this
16131         actually work.
16132
16133         * reflection.c (mono_reflection_define_generic_parameter): Set
16134         parent class and interfaces from the constraints.
16135
16136         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16137         to keep this struct in sync with the declaration in TypeBuilder.cs.
16138
16139 2003-09-17  Martin Baulig  <martin@ximian.com>
16140
16141         * metadata.h (MonoType): Replaced the data's `int type_param'
16142         field with `MonoGenericParam *generic_param'.
16143         (MonoGenericParam): Added `MonoClass *klass'.
16144
16145         * class.c (mono_class_from_gen_param): Removed the
16146         `MonoImage *image' and `int type_num' arguments.
16147
16148         * metadata.c (mono_metadata_parse_generic_param): New static
16149         method; creates a MonoGenericParam which just contains the index.
16150         (do_mono_metadata_parse_type): Call
16151         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16152         MONO_TYPE_MVAR.
16153
16154         * reflection.c (mono_image_typedef_or_ref): Generic type
16155         parameters may be in the same assembly, but never use a typedef
16156         for them.
16157         (mono_reflection_define_generic_parameter): We're now creating a
16158         "real" class for the type parameter; it's now safe to call
16159         mono_class_from_mono_type() on the class'es type, it'll do the
16160         right thing.
16161
16162 2003-09-16  Martin Baulig  <martin@ximian.com>
16163
16164         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16165         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16166         the `symfile' data structure must be fully initialized before it
16167         gets added to the table.
16168
16169 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16170
16171         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16172
16173         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16174         class init trampolines.
16175
16176 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16177
16178         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16179         to the built-in profiler to turn off time and allocation profiling
16180         respectively.
16181
16182 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16183
16184         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16185         g_direct_equal.
16186
16187         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16188         in human readable form.
16189
16190 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16191
16192         * reflection.c icall.c: Fixed warnings.
16193
16194         * image.c (load_class_names): Use a temporary hash table to hold the
16195         namespaces in order to avoid doing many string comparisons.
16196
16197         * image.h: Fix typo.
16198
16199         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16200         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16201         since the NULL case is short-circuited inside g_hash_table_lookup, 
16202         leading to better performance.  
16203
16204         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16205         obtain the first custom attribute for a given index. Depends on the
16206         CustomAttribute table being sorted by the parent field.
16207
16208         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16209         for better performance.
16210
16211 2003-09-07  Martin Baulig  <martin@ximian.com>
16212
16213         * class.c (mono_class_init): If we're a generic instance, inflate
16214         all our methods instead of loading them from the image.
16215         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16216
16217 2003-09-07  Martin Baulig  <martin@ximian.com>
16218
16219         * mono-debug-debugger.c: Added support for constructors.
16220
16221 2003-09-06  Martin Baulig  <martin@ximian.com>
16222
16223         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16224         New interncall.
16225
16226         * reflection.c (mono_reflection_setup_generic_class): Call
16227         ensure_runtime_vtable() to create the vtable.
16228
16229 2003-09-05  Martin Baulig  <martin@ximian.com>
16230
16231         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16232         MONO_TYPE_MVAR.
16233
16234 2003-09-04  Martin Baulig  <martin@ximian.com>
16235
16236         * reflection.c (mono_reflection_define_generic_parameter): Generic
16237         parameters start with zero.
16238
16239 2003-09-04  Martin Baulig  <martin@ximian.com>
16240
16241         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16242
16243         * reflection.h (MonoReflectionGenericParam): New typedef.
16244         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16245         the generic parameters from the managed TypeBuilder.
16246
16247         * reflection.c (mono_reflection_define_generic_parameter): New function.
16248         (mono_reflection_create_runtime_class): Encode generic parameters.
16249         (mono_reflection_setup_generic_class): New function; this is
16250         called after adding adding all generic params to the TypeBuilder.
16251         (encode_type): Added MONO_TYPE_VAR.
16252
16253 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16254
16255         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16256         here from the JIT.
16257
16258         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16259         load hook.
16260
16261 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16262
16263         * reflection.h reflection.c class.h class.c: Delete duplicate 
16264         definition of mono_type_get_name () from reflection.c and export the
16265         one in class.c.
16266
16267         * class.c: Class loading fixes from Bernie Solomon 
16268         (bernard@ugsolutions.com).
16269
16270         * reflection.c: Endianness fixes from Bernie Solomon 
16271         (bernard@ugsolutions.com).
16272         
16273 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16274
16275         * assembly.h assembly.c: Define a file format version for AOT
16276         libraries.
16277         
16278         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16279
16280         * appdomain.h (MonoJitInfo): New field to determine whenever the
16281         code is domain neutral.
16282         
16283 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16284
16285         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16286
16287 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16288
16289         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16290         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16291         Avoid caching the result since strings must be domain specific. Fixes
16292         #48050.
16293
16294 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16295
16296         * marshal.c (mono_marshal_init): Make this callable multiple times
16297         since it is hard to find a correct place to call it.
16298
16299         * object.c (mono_runtime_class_init): Execute static constructors in
16300         the correct appdomain.
16301
16302         * image.c (build_guid_table): Handle the case when multiple images have
16303         the same GUID.
16304
16305 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16306
16307         * icall.c: added a couple of icalls for System.Web.
16308
16309 2003-08-28  Martin Baulig  <martin@ximian.com>
16310
16311         * icall.c (ves_icall_Type_BindGenericParameters): Use
16312         `klass->generic_inst' instead of `&klass->byval_arg' in the
16313         mono_type_get_object() call.  The returned type must be
16314         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16315
16316 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16317
16318         * NOTES: New file.
16319
16320         * object.c (mono_class_proxy_vtable): Make it thread safe.
16321
16322         * pedump.c: Fix warning.
16323
16324         * object.c appdomain.h: Get rid of metadata_section. 
16325         It is no longer needed and it was causing deadlocks with domain->lock.
16326
16327         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16328
16329 2003-08-26  Martin Baulig  <martin@ximian.com>
16330
16331         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16332
16333 2003-08-26  Martin Baulig  <martin@ximian.com>
16334
16335         * pedump.c (main): Call mono_metadata_init(),
16336         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16337         and mono_loader_init().
16338
16339 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16340
16341         * loader.h: Add missing include to fix build.
16342
16343         * image.h: mono_image_load_references is no more.
16344
16345         * assembly.c: Reworked assembly loading to make it really thread safe.
16346         After these changes, the assembly returned by mono_assembly_open is
16347         fully initialized, i.e. all its references assemblies are loaded.
16348
16349         * assembly.c (mono_image_load_references): Renamed to 
16350         mono_assembly_load_references, and made private, since clients no
16351         longer need to call it.
16352
16353         * class.c: Removed calls to mono_assembly_load_references, since it was
16354         a source of deadlocks.
16355
16356         * loader.h loader.c class.h class.c: Protect data structures using a 
16357         new lock, the loader lock.
16358
16359         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16360         GPtrArrays only when needed.
16361
16362         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16363         into empty structures by mcs. Fixes pinvoke7.cs.
16364         
16365         * domain.c (mono_init): Call a new initialization function.
16366
16367         * appdomain.c (mono_runtime_init): Call the new initializer function
16368         of the marshal module.
16369
16370         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16371         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16372
16373         * marshal.h marshal.c: Added locks around the wrapper caches to make
16374         this module thread safe.
16375
16376         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16377         this argument. Fixes pinvoke1.exe.
16378
16379 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16380
16381         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16382         enumeration of values. Removed fields to store remote call output values in
16383         MonoAsyncResult. Not needed any more.
16384         * object.c: Initialize call_type and async_result fields in mono_message_init.
16385         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16386         dispatching the message.
16387         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16388         async call to finish. To do it use a message with EndInvoke call type.
16389
16390 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16391
16392         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16393         determines whenever a method has marshalling info.
16394
16395 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16396
16397         * assembly.c: fix the build on windows.
16398
16399 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16400
16401         * object.cs: Fixed bug #47785.
16402
16403 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16404
16405         * string-icalls.c (StringReplace): If their are no occurances of
16406         the old string found return a reference to the supplied
16407         string. This saves some memory and matches MS behavoir.
16408         
16409 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16410
16411         * socket-io.c: fixed compilation for systems that define AF_INET6
16412         and don't define SOL_IP/SOL_IPV6.
16413
16414 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16415
16416         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16417         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16418
16419         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16420
16421         * domain.c: Make this module thread safe.
16422
16423         * domain.c (mono_init): Call new initialization function.
16424
16425         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16426         reference types too. Fixes #38812.
16427
16428         * image.c (mono_image_init): Fixed warnings.
16429
16430         * class.c (mono_class_from_typeref): Handle assembly load failure
16431         correctly.
16432
16433         * appdomain.c (add_assemblies_to_domain): Handle the case when
16434         the references of an assembly are not yet loaded.
16435
16436         * metadata.c image.c assembly.c: Moved initialization of global
16437         variables to a separate function called at startup since lazy 
16438         initialization of these variables is not thread safe.
16439         
16440         * image.c assembly.c: Made this module thread safe by adding locks in 
16441         the appropriate places.
16442
16443         * domain.c (mono_init): Call the new initialization functions of the
16444         three modules.
16445
16446 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16447
16448         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16449           make a direct call. It is proxy's work to make the call asynchronous.
16450           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16451           the return values.
16452         * object.cs: mono_method_call_message_new(): read AsyncResult and
16453           state object from parameters list, if this info is requested.
16454         * object.h: Added fields to store remote call output values in
16455           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16456
16457 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16458
16459         * object.h: add needed fields to MonoThread.
16460         * threads.c, threads.h: allow registering a function to cleanup data
16461         allocated per thread by the JIT.
16462
16463 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16464
16465         * loader.h: portability fix by Bernie Solomon
16466         * <bernard@ugsolutions.com>.
16467
16468 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16469
16470         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16471         return a MonoArray. This simplifies the code and also ensures that
16472         the cache allways contains an object reference as a value.
16473
16474         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16475         function.
16476
16477 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16478
16479         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16480         fixes a problem with byte ordering when getting the address family for
16481         a socket.
16482
16483 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16484
16485         * .cvsignore: Added monosn.
16486
16487         * reflection.h reflection.c loader.c: Added support for parameter
16488         marshalling to dynamically created types. Fixes #47295.
16489
16490 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16491
16492         * rand.c: remove useless warnings.
16493
16494 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16495
16496         * class.c: implemented ldtoken for methods and fieldrefs.
16497
16498 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16499
16500         * threadpool.c: when mono_async_invoke was called, no one took care of
16501         monitoring the queue. So if the method invoked took some time and we
16502         got new async invoke requests after 500 ms (the thread created waited
16503         that long in WaitForSingleObject), the new async invoke was not called
16504         until the previous one finished.
16505
16506         This is fixed now. Thanks to Totte for helping with it.
16507
16508 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16509
16510         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16511
16512 2003-08-11  Martin Baulig  <martin@ximian.com>
16513
16514         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16515
16516 2003-08-06  Martin Baulig  <martin@ximian.com>
16517
16518         * mono-debug-debugger.c: Added support for static fields,
16519         properties and methods.
16520
16521 2003-08-06  Martin Baulig  <martin@ximian.com>
16522
16523         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16524         make this work for applications with multiple application domains.
16525
16526 2003-08-04  Martin Baulig  <martin@ximian.com>
16527
16528         * mono-debug-debugger.c: Completely reworked the type support; the
16529         most important thing is that we're now just using one single
16530         `MonoType' instance per type.
16531
16532 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16533
16534         * mono-endian.h, mono-endian.c, icall.c: Added icall
16535         ves_icall_System_Double_AssertEndianity to assert double word endianity
16536         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16537
16538 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16539
16540         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16541         support, icalls and fixes.
16542
16543 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16544
16545         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16546         classes that are a punctuation character in .NET is not the same a
16547         g_unichar_ispunct.
16548
16549 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16550
16551         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16552
16553 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16554
16555         * icall.c: Add new MemCopy internalcall.
16556         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16557         Simplified code; It is not necessary to handle all the cases here,
16558         as the C# code takes care of it.  Only handle the case of the name
16559         resource embedded into the assembly.
16560
16561         Changed signature to return the data pointer and the size of the
16562         data. 
16563
16564 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16565
16566         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16567         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16568
16569 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16570
16571         * socket-io.c: ignore EINTR error in select.
16572
16573 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16574
16575         * class.h, class.c: removed unused subclasses field in MonoClass.
16576
16577 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16578
16579         * icall.c: improve fix of get_base_definition(). If the parent class
16580           doesn't have the mehod, look at the parent of the parent.
16581         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16582           to check if a parameter is an in or out parameter
16583           (PARAM_ATTRIBUTE_IN is not set by default).
16584           mono_method_return_message_restore(): Use mono_class_value_size to
16585           get the size of a value type. mono_type_stack_size (parameterType)
16586           does not return the correct value if parameterType is byRef.
16587           mono_load_remote_field(), mono_load_remote_field_new(),
16588           mono_store_remote_field(), mono_store_remote_field_new():
16589           raise exception if the remote call returns an exception.
16590
16591 2003-07-28  Martin Baulig  <martin@ximian.com>
16592
16593         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16594         method.  This is a wrapper around mono_runtime_invoke() which
16595         boxes the instance object if neccessary.
16596
16597 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16598
16599         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16600         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16601
16602 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16603
16604         * icall.c: disable mcs bug workaround.
16605
16606 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16607
16608         * object.c (mono_runtime_class_init): Take the metadata_section
16609         mutex before obtaining the domain mutex.
16610
16611         * appdomain.h: Added definition of metadata_section mutex here. 
16612
16613         * object.c: define metadata_mutex here.
16614
16615 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16616
16617         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16618         fixed.
16619
16620 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16621
16622         * reflection.c: Fix bug #46669
16623
16624 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16625
16626         * exception.c:
16627         * exception.h:
16628         * icall.c:
16629         * object.h: fill in the type name for TypeLoadException.
16630
16631 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16632
16633         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16634         relationship between TypeBuilders while compiling corlib) and bug
16635         45993 (Array types returned from the runtime while compiling
16636         corlib were from the loaded corlib).
16637
16638 2003-07-22  Martin Baulig  <martin@ximian.com>
16639
16640         * mono-debug-debugger.c: Reworked the type support a bit more;
16641         distinguish between types and classes.
16642
16643 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16644
16645         * icall.c: add IsArrayImpl icall.
16646
16647 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16648
16649         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16650         initializing real_size only once. Also fix bug #46602.
16651
16652 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16653
16654         * object.c: Renamed mono_metadata_section to metadata_section.
16655
16656 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16657
16658         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16659           empty array if the type is an array. Fixed.
16660           ves_icall_MonoMethod_get_base_definition: if the base method
16661           is abstract, get the MethodInfo from the list of methods of
16662           the class.
16663         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16664           and it was 1-based. Fixed in mono_param_get_objects.
16665
16666 2003-07-20  Martin Baulig  <martin@ximian.com>
16667
16668         * mono-debug.h: Set version number to 31.
16669         (mono_debug_init): Added `MonoDomain *' argument.
16670
16671         * mono-debug-debugger.c: Reworked the type support; explicitly
16672         tell the debugger about builtin types; pass the `klass' address to
16673         the debugger.
16674
16675 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16676
16677         * image.c: Allow new metadata tables to be loaded without a
16678         warning. Also update the warning message to give the new constant value.
16679                 
16680 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16681
16682         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16683         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16684         array type representation changes.
16685
16686 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16687
16688         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16689         on Environment.Exit () call.
16690
16691 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16692
16693         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16694         requires a matching corlib.
16695
16696 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16697
16698         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16699           Committed again without the CRs.
16700         
16701 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16702
16703         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16704           getting it from the "this" socket instance. Did not work
16705           if the socket is a subclass of Socket.
16706           Also fixed bug #35371.
16707
16708 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16709
16710         * metadata.c: fixed size for TypedByRef.
16711         * loader.c: when searching for a method, consider the vararg amrker.
16712         * unicode.c, decimal.c: constify some arrays.
16713
16714 2003-07-15  Dick Porter  <dick@ximian.com>
16715
16716         * socket-io.c: Fixed compilation for gcc < 3.2.
16717
16718         Fixed compilation for machines that don't have AF_INET6 (thanks to
16719         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16720
16721         Fixed compile warnings.
16722         
16723         Fixed formatting and line endings.
16724
16725 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16726
16727         * socket-io.h:
16728         * socket-io.c: Added IPv6 support.
16729
16730 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16731
16732         * class.c (mono_class_is_assignable_from): New function to implement
16733         the is_assignable_from logic. Used by mono_object_isinst, 
16734         Type::IsAssignableFrom () and the interpreter.
16735
16736         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16737         Object, even interfaces.
16738         
16739         * object.c (mono_object_isinst): Implement in terms of 
16740         is_assignable_from.
16741
16742         * icall.c (ves_icall_type_is_assignable_from): New icall.
16743
16744 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16745
16746         * domain.c (foreach_domain): fix compiler warning.
16747
16748 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16749
16750         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16751         not available on all plattforms
16752
16753 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16754
16755         * image.h image.c: Store the metadata version string in MonoImage.
16756         * icall.c: New icall to retrieve the image version.
16757         * reflection.c (create_dynamic_image): Fill in the image version field
16758         * reflection.c (build_compressed_metadata): Use the image version
16759         from the image structure.
16760
16761 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16762
16763         * appdomain.c: modified comment.
16764         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16765         That will be its last iteration when mono_gc_cleanup is called from
16766         mono_runtime_cleanup and before the domain is unloaded.
16767
16768         Fixes bug #45962.
16769
16770 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16771
16772         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16773         attributes.
16774
16775 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16776
16777         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16778         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16779         Bernie Solomon <bernard@ugsolutions.com>.
16780
16781 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16782
16783         * object.c, object.h: provide mono_object_new_fast() for faster
16784         allocation in some special cases.
16785
16786 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16787
16788         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16789         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16790
16791 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16792
16793         * threadpool.c: fix leaks.
16794
16795 2003-07-01  Dick Porter  <dick@ximian.com>
16796
16797         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16798         using MonoGHashTables.  Fixes threadpool bug posted to list.
16799
16800 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16801
16802         * image.h, image.c: added support to load an assembly from a byte array.
16803         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16804         assembly bundle support.
16805
16806 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16807
16808         * threadpool.c (mono_thread_pool_add): keep a reference to the
16809         AsyncResult to prevent GC
16810
16811 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16812
16813         * class.c: leak fix.
16814
16815 2003-06-25  Dick Porter  <dick@ximian.com>
16816
16817         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16818         for the async object, the WaitHandle object will close the handle.
16819         Fixes bug 45321.
16820
16821 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16822
16823         * class.c: in mono_array_class_get (), lookup from the hash with the
16824         same type we insert: this works around a bug in
16825         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16826         lluis. The real fix will have to wait for after the release.
16827
16828 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16829
16830         * icall.c: fix memory leak when getting type members.
16831
16832 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16833
16834         * reflection.c: added more pubtoken special cases.
16835
16836 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16837
16838         * class.c: handle field offset correctly when class size
16839         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16840
16841 2003-06-20  Martin Baulig  <martin@ximian.com>
16842
16843         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16844         *image' field.
16845
16846 2003-06-20  Martin Baulig  <martin@ximian.com>
16847
16848         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16849
16850 2003-06-20  Martin Baulig  <martin@ximian.com>
16851
16852         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16853         just distinguish between variables in registers and variables at
16854         an offset relative to a register.
16855
16856 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16857
16858         * icall.c: #ifdef out latest changes until mcs is fixed.
16859
16860 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16861
16862         * icall.c: return members in metadata order.
16863
16864 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16865
16866         * icall.c: avoid infinite loop in GetTimeZoneData.
16867
16868 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16869
16870         * icall.c: added Marshal.Prelink/All icalls.
16871
16872 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16873
16874         * object.c, object.h: fix warnings and do some overflow checking
16875         when creating arrays.
16876
16877 2003-06-17  Dick Porter  <dick@ximian.com>
16878
16879         * file-io.h:
16880         * file-io.c: File attributes need to be tweaked slightly when
16881         passed from the managed to the w32 world.
16882
16883 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16884         * profiler.h profiler-private.h profiler.c: Rework last patch
16885         based on suggestion by Paolo.
16886         
16887 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16888
16889         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16890         instruction level coverage data collection.
16891         * profiler.h profiler.c (: Added new callback function which can be
16892         used by the profiler to limit which functions should have coverage
16893         instrumentation.
16894         * profiler.c (mono_profiler_load): Call g_module_build_path to
16895         generate the file name of the profiler library.
16896
16897 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16898
16899         * profiler.c, profiler.h, profiler-private.h: added basic block 
16900         coverage profiling API.
16901
16902 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16903
16904         * reflection.c (mono_reflection_create_runtime_class): Add support
16905         for events in dynamically generated code.
16906
16907         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16908         not allocated.
16909
16910 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16911
16912         * icall.c: when getting timezone info, return reasonable values if we
16913         can't get the actual data.
16914
16915 2003-06-14  Dick Porter  <dick@ximian.com>
16916
16917         * threads.c (start_wrapper): Remove the reference to the thread
16918         object in the TLS data, so the thread object can be finalized.
16919         This won't be reached if the thread threw an uncaught exception,
16920         so those thread handles will stay referenced :-( (This is due to
16921         missing support for scanning thread-specific data in the Boehm GC
16922         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16923
16924 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16925
16926         * reflection.c: ensure streams and tables are first allocated with
16927         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16928
16929 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16930
16931         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16932
16933 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16934
16935         * reflection.c (mono_reflection_create_runtime_class): Add support for
16936         properties to dynamically created classes.
16937         * reflection.c: Fix a few places where non-MonoObjects were inserted
16938         into the tokens hashtable.
16939
16940 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16941
16942         * object.c: some support to handle out of memory exceptions.
16943
16944 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16945
16946         * marshal.c (mono_marshal_get_native_wrapper): support reference
16947         return types
16948
16949 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16950
16951         * object.h, object.c: more portability stuff from Bernie Solomon.
16952         Unexport mono_object_allocate(). Added mono_object_unbox ().
16953         Set exitcode when an unhandled exception is thrown.
16954
16955 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16956
16957         * marshal.c (mono_marshal_get_native_wrapper): use custom
16958         marshaler for return types.
16959
16960 2003-06-10  Dick Porter  <dick@ximian.com>
16961
16962         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16963         ip_mreq is available
16964
16965 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16966
16967         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16968         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16969         by Bernie Solomon <bernard@ugsolutions.com>.
16970
16971 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16972
16973         * gc.c (mono_gc_init): Avoid error message on shutdown when
16974         GC_DONT_GC=1 is used.
16975
16976         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16977         New icall to return the GUID of a module.
16978
16979 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16980
16981         * class.c: ensure instance size always includes the parent's size
16982         even whem class size is set explicitly (fixes bug#44294).
16983
16984 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16985
16986         * profiler.h, profiler.c: made the simple profiler thread-safe,
16987         get more accurate timing info. Allow the loading of an
16988         externally-developed profiler module.
16989
16990 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16991
16992         * marshal.c (mono_marshal_get_native_wrapper): improved
16993         class/byref arguments.
16994         (mono_marshal_get_native_wrapper): better string marshaling support.
16995
16996 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16997
16998         * class.c: ensure .pack and .size are handled correctly and
16999         simplified layout of static fields.
17000
17001 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17002
17003         * appdomain.c
17004         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17005
17006         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17007         current directory (fix bug 44008)
17008
17009 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17010
17011         * marshal.c (mono_marshal_get_native_wrapper): started support for
17012         custom marshalers.
17013         (mono_delegate_to_ftnptr): consider marshalling specifications
17014
17015 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17016
17017         * reflection.c, reflection.h: emit custom marshal info.
17018
17019 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17020
17021         * object.c: free the GError.
17022         * icall.c: added CloseEvent_internal.
17023         * threads.[ch]:
17024         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17025         call.
17026
17027 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17028
17029         * loader.c (mono_method_get_signature): Add support for dynamic
17030         assemblies.
17031
17032 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17033
17034         * reflection.c: fixed bug #43905.
17035
17036 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17037
17038         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17039         handling TypedReference and ArgIterator.
17040         * loader.c, loader.h: added function to get signature at call site.
17041
17042 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17043
17044         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17045         data readonly. Buglets and warning fixes. Some MethodSpec support.
17046
17047 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17048
17049         * class.h, class.c, object.c: remove relative numbering support.
17050
17051 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17052
17053         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17054         free the string, until we get a chance to fix Gtk#
17055
17056 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17057
17058         * marshal.c: revert last patch.
17059
17060 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17061
17062         * icall.c: updates for new mono_class_vtable() not calling
17063         the type constructor anymore.
17064
17065 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17066
17067         * object.h, object.c: separate vtable creation from type
17068         initialization. Make running the .cctor thread safe.
17069
17070 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17071
17072         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17073
17074 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17075
17076         * loader.c (mono_get_method): consider calling convention
17077
17078 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17079
17080         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17081         to return the invisible global type for a module.
17082
17083         * reflection.c (mono_image_build_metadata): Emit global fields too.
17084
17085 2003-05-20  Peter Williams  <peterw@ximian.com>
17086
17087         * loader.c (mono_lookup_internal_call): Add a few newlines.
17088
17089 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17090
17091         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17092         literal strings.
17093
17094         * appdomain.c (set_domain_search_path): Recalculate search path when
17095         AppDomainSetup.PrivateBinPath changes.
17096
17097         * object.c (mono_class_compute_gc_descriptor): It turns out some
17098         parts of the class libs (like System.Thread) holds pointers to
17099         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17100         to treat native int a pointer type here.
17101         
17102 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17103
17104         * appdomain.h, domain.c: add hashtable for jump target resolution.
17105
17106 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17107
17108         * reflection.h reflection.c icall.c: Added new icalls 
17109         GetManifestResourceInfoInternal, GetModulesInternal and support
17110         infrastructure.
17111
17112 2003-05-16  Dick Porter  <dick@ximian.com>
17113
17114         * icall.c:
17115         * file-io.h:
17116         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17117
17118 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17119
17120         * object.c: mono_store_remote_field: little fix to previous patch.
17121
17122 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17123
17124         * class.c: add constructors to array classes.
17125         * icall.c: special case array construction for InternalInvoke (),
17126
17127 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17128
17129         * class.h class.c reflection.c object.c: Added support for field
17130         defaults in dynamically generated classes.
17131
17132 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17133
17134         * reflection.c: properly encode charset for ddlimport.
17135
17136 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17137
17138         * threads.c: allow compiling without GC.
17139
17140 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17141
17142         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17143         handling of thread static data.
17144
17145 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17146
17147         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17148
17149 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17150
17151         * class.c (mono_array_class_get): always set the serializable flags
17152         (mono_array_class_get): always set the SEALED attribute for array types
17153
17154 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17155
17156         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17157         attributes (fix for bug 42021).
17158
17159 2003-05-12  Dick Porter  <dick@ximian.com>
17160
17161         * gc.c: Don't run finalizers when the finalizer thread is
17162         finishing up, because the default domain has already been
17163         destroyed.
17164
17165 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17166
17167         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17168         value is null, we should throw an exception.   This is slightly
17169         different than the other conventions used for the constructor.
17170
17171 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17172
17173         * socket-io.c: fixed windows build.
17174
17175 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17176
17177         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17178
17179 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17180
17181         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17182         compilers.
17183
17184 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17185
17186         * class.c (mono_class_layout_fields): Add experimental GC aware
17187         auto layout facility. Requires class library changes to work correctly.
17188
17189         (mono_class_setup_vtable): Avoid overriding explicit interface
17190         method implementations. Fixes iface3.exe test.
17191
17192         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17193         object reference.
17194         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17195         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17196
17197         * metadata.h: Add new type classification macro which determines
17198         whenever the type holds an object reference.
17199
17200 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17201
17202         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17203
17204 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17205
17206         * gc.c (finalizer_thread): Work around a GC bug.
17207
17208 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17209
17210         * marshal.c (emit_struct_conv): allow unions
17211
17212         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17213
17214 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17215
17216         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17217
17218 2003-05-06  Martin Baulig  <martin@ximian.com>
17219
17220         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17221
17222 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17223
17224         * socket-io.c:
17225         (Select_internal): allow NULLs, don't create arrays if not needed.
17226         Coupled with Socket.cs changes.
17227
17228         * threadpool.c:
17229         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17230         register a finalizer for it that will close the semaphore handle. This
17231         fixes the leak and make Lupus' test run with > 4080 loops.
17232
17233 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17234
17235         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17236         Jerome Laban (bug #42287)
17237
17238 2003-05-02  Martin Baulig  <martin@ximian.com>
17239
17240         * debug-mono-symfile.h
17241         (MonoSymbolFile): Moved declaration into mono-debug.h.
17242         (MonoDebugMethodJitInfo): Likewise.
17243         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17244         argument.
17245         (_mono_debug_address_from_il_offset): Take a
17246         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17247
17248         * mono-debug.h
17249         (MonoDebugDomainData): New struct.
17250         (mono_debug_get_domain_data): New function.
17251         (mono_debug_add_method): Take an additional `MonoDomain *'
17252         argument.
17253         (mono_debug_source_location_from_address): Likewise.
17254         (mono_debug_il_offset_from_address): Likewise.
17255         (mono_debug_address_from_il_offset): Likewise.
17256
17257 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17258
17259         * reflection.c: one more check for null type in custom attrs.
17260
17261 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17262
17263         * reflection.c: avoid warning (comparison is always false due to limited
17264         range of data type).
17265
17266 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17267
17268         * icall.c: throw an exception in Type.GetField if the argument 'name'
17269         is NULL.
17270
17271 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17272
17273         * reflection.c: fixed handling of enums in named arguments to custom
17274         attributes (bug #42123).
17275
17276 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17277
17278         * reflection.c: use the right array element type and handle
17279         a null for a Type argument, too.
17280
17281 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17282
17283         * reflection.c: handle arrays as arguments to custom attributes.
17284
17285 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17286
17287         * reflection.c: handle a string value in a custom attr
17288         ctor that takes an object.
17289
17290 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17291
17292         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17293         (fix bug #42063)
17294
17295 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17296
17297         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17298
17299 2003-04-27  Martin Baulig  <martin@ximian.com>
17300
17301         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17302         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17303         MONO_DEBUGGER_EVENT_BREAKPOINT.
17304         (mono_breakpoint_trampoline_code): Removed.
17305         (mono_debugger_event_handler): The last argument is now a
17306         `guint32'.
17307         (mono_debugger_insert_breakpoint_full): Removed the
17308         `use_trampoline' argument.
17309         (mono_debugger_method_has_breakpoint): Likewise.
17310         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17311         mono_debugger_breakpoint_callback(); take the method and
17312         breakpoint number as arguments.
17313
17314 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17315
17316         * metadata.c: fix off by one when loading parameters attributes.
17317
17318 2003-04-24  Martin Baulig  <martin@ximian.com>
17319
17320         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17321
17322 2003-04-24  Martin Baulig  <martin@ximian.com>
17323
17324         * mono-debug-debugger.c: Moved all code which interacts with the
17325         Mono Debugger here.
17326
17327         * debug-mono-symfile.c: This code now just deals with the symbol
17328         file itself, the debugger code is now in mono-debug-debugger.c.
17329
17330 2003-04-23  Martin Baulig  <martin@ximian.com>
17331
17332         * mono-debug.c (mono_debug_source_location_from_il_offset):
17333         New method; like mono_debug_source_location_from_address(), but
17334         takes an IL offset instead of a machine address.
17335
17336 2003-04-23  Martin Baulig  <martin@ximian.com>
17337
17338         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17339         `line' field; this is now computed by the debugger.
17340
17341 2003-04-23  Martin Baulig  <martin@ximian.com>
17342
17343         * mono-debug.[ch]: New files.  This is the new debugging interface.
17344
17345         * mono-debug-debugger.[ch]: New files.  Moved all code which
17346         interacts with the Mono Debugger here.
17347
17348 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17349
17350         * domain.c (mono_init): initialize mono_defaults.monitor_class
17351
17352 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17353
17354         * reflection.c (method_encode_code): Add a spicy exception to help
17355         future compiler authors.
17356
17357 2003-04-21  Martin Baulig  <martin@ximian.com>
17358
17359         * icall.c
17360         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17361         Make this work with relative pathnames; g_filename_to_uri() needs
17362         an absolute filename.
17363
17364 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17365
17366         * icall.c: Track name changes in Object and ValueType.
17367
17368 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17369
17370         * metadata.c (mono_type_stack_size): size should be a multiple of
17371         sizeof (gpointer)
17372
17373 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17374
17375         * gc.c:
17376         (internal_domain_finalize): moved into mono_domain_finalize. No need
17377         to create another thread because the finalizers will be run in the
17378         finalizer thread.
17379         
17380         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17381         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17382         to be run (MS does this too).
17383
17384 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17385
17386         * object.c (mono_class_compute_gc_descriptor): Update comment.
17387
17388         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17389
17390         * image.h: Add synchronized wrapper cache.
17391
17392         * image.c (do_mono_image_open): Initialize cache.
17393
17394         * reflection.c (create_dynamic_mono_image): Initialize cache.
17395
17396 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17397
17398         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17399         ves_icall_System_Buffer_ByteLengthInternal.
17400
17401 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17402
17403         * reflection.c: setup klass->nested_in earlier. Allow
17404         a dash in the assembly name.
17405
17406 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17407
17408         * metadata.c (mono_type_to_unmanaged): dont access
17409         type->data.klass for MONO_TYPE_OBJECT
17410         (mono_type_to_unmanaged): consider System.Delegate class
17411
17412 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17413
17414         * class.c: just setup supertypes in the proper place instead of
17415         initializing the full element class for arrays.
17416
17417 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17418
17419         * class.c: ensure the element class of arrays is initialized.
17420         Setup the supertype info for array classes, too.
17421
17422 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17423
17424         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17425
17426 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17427
17428         * Makefile.am: re-added -m option when running cygpath. This way,
17429         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17430         separator.
17431         * mono-config.c: same codepath for locating mono config file for WIN32
17432         and the rest.
17433         * assembly.c: if mono_assembly_setrootdir is called, don't override
17434         the value set.
17435
17436 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17437
17438         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17439         MONO_ASSEMBLIES variable.
17440
17441 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17442
17443         * icall.c: added Assembly::GetNamespaces() icall.
17444
17445 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17446
17447         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17448
17449 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17450
17451         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17452         * object.c: fixed bug in the construction of vtable for proxies
17453
17454 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17455
17456         * object.c (mono_array_new): Mark mono_array_new as an icall.
17457
17458 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17459
17460         * class.c: fixed test for public method when overriding interfaces.
17461         Closes bug #40970.
17462
17463 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17464
17465         * appdomain.h, domain.c: added mono_domain_foreach() to
17466         be able to access the currently loaded appdomains.
17467         * object.c: make string interning work across sppdomains.
17468         Mark some functions for use as icalls.
17469
17470 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17471
17472         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17473
17474         * reflection.h reflection.c: Allocate long living data using 
17475         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17476
17477         * reflection.c: Double the allocation size in streams instead of
17478         increasing it, to prevent unneccesary copying on large assemblies.
17479         
17480         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17481         creation if the assembly does not have the Run flag set.
17482
17483 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17484
17485         * class.h: avoid the C++ keywords in header files (Jerome Laban
17486         spotted and fixed this).
17487
17488 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17489
17490         * object.c:
17491         (mono_unhandled_exception): fill in the arguments for the
17492         UnhandledException event. Only trigger that event for the default
17493         domain (as MS does).
17494
17495 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17496
17497         * object.c: Improve typed allocation stuff based on suggestions from
17498         Paolo. Also turn it on if the GC library supports it.
17499
17500 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17501
17502         * object.c object.h class.h: Added experimental typed allocation
17503         facility using the interfaces in gc_gcj.h.
17504
17505         * os/gc_wrapper.h: Added new include files.
17506         
17507 2003-04-03  Martin Baulig  <martin@ximian.com>
17508
17509         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17510         which is not yet enabled by default.
17511
17512         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17513         functions.
17514         (mono_gc_lock, mono_gc_unlock): New static functions.
17515
17516         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17517         functions; stop/start the world for the garbage collector.  This
17518         is using the windows API; we need to complete the SuspendThread()/
17519         ResumeThread() implementation in the io-layer to make this work on Unix.
17520         (mono_gc_push_all_stacks): New public function; tells the garbage
17521         collector about the stack pointers from all managed threads.
17522
17523 2003-04-03  Martin Baulig  <martin@ximian.com>
17524
17525         * object.h (MonoThread): Added `gpointer stack_ptr'.
17526
17527         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17528
17529 2003-04-03  Martin Baulig  <martin@ximian.com>
17530
17531         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17532
17533 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17534
17535         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17536         field.last.
17537
17538 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17539
17540         * loader.c (mono_lookup_internal_call): Report the corlib that is
17541         out of sync.
17542
17543 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17544
17545         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17546         System.DBNull (it's class not valuetype).
17547
17548 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17549
17550         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17551         if the array method was already assigned a token (fixes bug#40646).
17552
17553 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17554
17555         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17556         if no assembly is given.
17557
17558 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17559
17560         * metadata.h: Added the new tables.
17561
17562         * row-indexes.h: Added definitions for new tables.
17563
17564         * metadata.c: Add schemas for new tables, and add support for
17565         computing the sizes of them.
17566
17567         * class.c: Update for handling the new type cases.
17568
17569 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17570
17571         * metadata.h (MONO_TYPE_IS_VOID): new macro
17572
17573 2003-03-31  Martin Baulig  <martin@ximian.com>
17574
17575         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17576
17577         * threads.c (mono_thread_new_init): Call `thread_created' in the
17578         mono_thread_callbacks.
17579
17580 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17581
17582         * loader.h: added marshalbyrefobject_class to mono_defaults
17583         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17584         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17585           generation of output parameters.
17586           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17587         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17588           contextbound and the target object belongs to the context of the caller.
17589         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17590         * object.c: Implemented support for interfaces and abstract classes
17591           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17592           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17593
17594 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17595
17596         * class.h class.c (mono_class_is_subclass_of): New function.
17597         
17598         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17599         routines for most common case (calls from ArrayList::ToArray).
17600
17601         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17602         routine so programs which call Environment::Exit() can be profiled.
17603
17604         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17605         Added MONO_ARCH_SAVE_REGS.
17606
17607         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17608
17609 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17610
17611         * blob.h: Add a couple of new MonoType types definitions.
17612
17613         * tabledefs.h: Add a couple of new call convs.
17614
17615 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17616
17617         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17618         the layout of the class.
17619
17620         * reflection.c (alloc_table): double the size on overflow to avoid
17621         unnecessary copying.
17622
17623         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17624         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17625         null so it can be garbage collected.
17626         
17627 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17628
17629         * reflection.c (mono_reflection_get_type): Return the resolved type
17630         only if it is in the assembly we searched.
17631
17632         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17633
17634         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17635         method.
17636
17637 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17638
17639         * appdomain.c:
17640         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17641         the right one is 'file:///blah', but MS allows it.
17642         * assembly.c:
17643         (mono_assembly_open): allow 'file://blah'
17644
17645         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17646
17647 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17648
17649         * socket-io.c: fixes bug #40310.
17650
17651 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17652
17653         * reflection.c (mono_reflection_parse_type): handle deeply nested
17654         types correctly.
17655
17656         * reflection.c (mono_image_create_token): Use unique token values
17657         since they will be put into a hash table.
17658
17659         * class.c (mono_class_setup_vtable): If a method occurs in more than
17660         one place in the vtable, and it gets overriden, then change the
17661         other occurances too.
17662
17663         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17664         object as return type.
17665
17666 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17667
17668         * icall.c: Deleted "ToString" implementation for double and float
17669         because they are full implemented in managed code.
17670
17671 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17672
17673         * reflection.c, reflection.h: implemented and exported functions
17674         to retrieve info about custom attributes.
17675
17676 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17677
17678         * appdomain.c: moved Uri handling to assembly.c
17679         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17680         work when using a file Uri in *nix and windows.
17681
17682         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17683         GetReferencedAssemblies.
17684
17685 2003-03-18  Dick Porter  <dick@ximian.com>
17686
17687         * icall.c: Rename a couple of internal calls
17688
17689         * threads.c: Set the thread state to Stopped when a thread exits.
17690         Fixes bug 39377.
17691
17692 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17693
17694         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17695         New icall.
17696
17697         * object.c (mono_class_vtable): fix warning.
17698
17699 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17700
17701         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17702
17703         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17704         memory.
17705         (method_encode_clauses): Create exception info structures in the right
17706         order.
17707         (mono_reflection_setup_internal_class): Initialize supertypes field.
17708
17709         * class.c object.c: Handle interfaces which implement other interfaces 
17710         correctly.
17711
17712         * class.h class.c: Move the supertypes array initialization code into 
17713         a separate function so it can be used for dynamic types too. Also call
17714         it earlier, in mono_class_init(), since it can be used before the
17715         type is initialized.
17716
17717 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17718
17719         * Makefile.am:
17720         * assembly.c:
17721         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17722
17723         * appdomain.c:
17724         * appdomain.h:
17725         * marshal.c:
17726         * object.c: remove warnings.
17727
17728 2003-03-13  Martin Baulig  <martin@ximian.com>
17729
17730         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17731         (MonoDebugLexicalBlockEntry): New types.
17732
17733         * debug-mono-symfile.c
17734         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17735
17736 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17737
17738         * process.c: ret can be any non-zero value accroding to MS doc.
17739
17740 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17741
17742         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17743         fixing a warning for a miss-used prototype, would have cause
17744         random memory corruption.
17745
17746 2003-03-07  Martin Baulig  <martin@ximian.com>
17747
17748         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17749         getting really annoying ....
17750
17751 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17752
17753         * reflection.c (fixup_method): added support for array methods.
17754
17755 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17756
17757         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17758         (pointed out by Michael Adams).
17759
17760 2003-03-04  Dick Porter  <dick@ximian.com>
17761
17762         * icall.c: Temporarily reverted the Double and Single ToString()
17763         change, because it broke nunit.
17764
17765 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17766
17767         * object.h, threads.h: make include files compatible with C++
17768         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17769
17770 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17771
17772         * icall.c: Erased ToString helper functions for Double and Single.
17773         Now, that implementations ar all in managed code (Double and Single
17774         Formatters).
17775
17776 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17777
17778         * appdomain.c: Added method for initializing the default context of
17779         a domain. Added internal call for getting the default context.
17780         * appdomain.h: Added context variable in MonoDomain struct.
17781         * domain.c: mono_domain_set also sets the default context of the domain
17782         * icall.c: Mapped internal method InternalGetDefaultContext.
17783         * object.c: mono_object_get_virtual_method returns always a remoting
17784         wrapper if the object is a transparent proxy.
17785         mono_runtime_invoke_array: when creating an object by calling the
17786         constructor, if the created object is a proxy, then the constructor should
17787         be called using the a remoting wrapper.
17788
17789 2003-03-03  Dick Porter  <dick@ximian.com>
17790
17791         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17792         variable so it compiles on solaris.  Problem spotted by
17793         Christopher Taylor <ct@cs.clemson.edu>
17794
17795 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17796
17797         * appdomain.c:
17798         (get_info_from_assembly_name): don't leak value.
17799
17800         * icall.c:
17801         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17802         result.
17803
17804 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17805
17806         * assembly.c: export mono_image_load_references ().
17807         * class.c: handle function pointers. mono_class_from_name() now
17808         supports nested type names directly.
17809
17810 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17811
17812         * reflection.h reflection.c: Encode already created dynamic methods 
17813         and fields correctly as a DEF instead of a REF.
17814
17815         * reflection.c: Get rid of the force_ref argument to 
17816         mono_image_typedef_or_ref since it was wrong in the first place.
17817
17818         * string-icalls.c: add error checking to string constructors according
17819         to the MSDN docs.
17820
17821         * reflection.c: Emit types in the order their TypeBuilders were 
17822         created. Previously, a new table index was assigned to each type before
17823         the tables were emitted. This was wrong because the signature blob
17824         might already refer to a type by its original table index.
17825
17826 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17827
17828         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17829         change.
17830         
17831 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17832
17833         * Makefile.am: make assemblies dir have \ instead of / on windows.
17834
17835 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17836
17837         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17838         iterate over the NESTEDCLASS table using a linear search since the
17839         table is not guaranteed to be sorted by the secondary key.
17840
17841         * class.c (mono_class_create_from_typedef): fixed up call to
17842         mono_metadata_nesting_typedef.
17843         
17844 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17845
17846         * marshal.c (mono_string_to_byvalstr): clear the memory as
17847         suggested by Jerome Laban <jlaban@wanadoo.fr>
17848
17849 2003-02-26  Dick Porter  <dick@ximian.com>
17850
17851         * process.c: Cope with padding in .rsrc blocks
17852
17853 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17854
17855         * metadata.h: reverted the filter_len change, it breaks reflection
17856         
17857 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17858
17859         * metadata.h: added a new field to store the filter_len
17860         
17861
17862 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17863
17864         * reflection.c: handle custom attributes for types and members
17865         created with Reflection.Emit (bug#38422).
17866
17867 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17868
17869         * reflection.c: define RTSpecialName automatically for constructors for
17870         compatibility with MS.NET.
17871
17872         * reflection.c (mono_reflection_create_runtime_class): initialize
17873         nested_in field of dynamically created classes.
17874
17875 2003-02-22  Martin Baulig  <martin@ximian.com>
17876
17877         * debug-mono-symfile.h: Incremented version number.
17878
17879 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17880
17881         * object.h icall.c process.c: fix warnings.
17882
17883 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17884
17885         * appdomain.h appdomain.c:
17886         (mono_domain_try_type_resolve): split the 
17887         name_or_tb argument into a name and a tb argument.
17888         (mono_domain_has_type_resolve): new function to check whenever the
17889         application has registered a TypeResolve event handler.
17890         
17891         * icall.c reflection.h reflection.c: move the type resolve logic into
17892         mono_reflection_get_type () so it will be invoked when 
17893         Assembly::GetType () is called.
17894
17895         * reflection.c:
17896         (mono_reflection_get_type): renamed to get_type_internal.
17897         (mono_reflection_get_type): fixed type name generation so it works 
17898         for nested types too.
17899         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17900         costly type name generation if there is no resolve event handler.
17901
17902 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17903
17904         * class.c, image.c: load exported types from file references.
17905
17906 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17907
17908         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17909           used to cache the managed methods used to create proxies and make 
17910           remote invocation of methods.
17911         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17912           to be remotely created.
17913         * object.c: Modified the method mono_class_vtable(). It now initializes 
17914           the remote flag of the vtable. Modified mono_object_new_specific(), 
17915           so now it checks the remote flag.
17916         * icall.c: Added a couple of internal methods, one for enabling instance 
17917           creation interception for a type, and one for creating objects bypassing
17918           the remote check.
17919
17920 2003-02-18  Martin Baulig  <martin@ximian.com>
17921
17922         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17923         New interncall to get a method's metadata token.
17924
17925         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17926         New interncall for the debugger.
17927
17928 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17929
17930         * class.c (mono_class_setup_vtable): allocate supertype array
17931
17932 2003-02-18  Martin Baulig  <martin@ximian.com>
17933
17934         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17935
17936 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17937
17938         * reflection.c:
17939         (assembly_name_to_aname): jump over unknown properties (i've found
17940         something like: 'type, assembly, version=xxx, custom=null, public...',
17941         so now will ignore custom=null and still get the rest of the values).
17942
17943 2003-02-17  Dick Porter  <dick@ximian.com>
17944
17945         * threads.c: Have Thread.Start() wait for a semaphore to signal
17946         that the thread has set up all its local data.  This fixes bug
17947         34323, where Abort() raced the new thread's TLS data.
17948
17949         Also removes the handle_store() call from start_wrapper, because
17950         threads are now always created suspended and there is no longer a
17951         race between the parent and child threads to store the info.
17952
17953 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17954
17955         * image.c: explain the #- heap issue in a message, hopefully
17956         avoiding FAQs on mono-list.
17957
17958 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17959
17960         * icall.c:
17961         (GetEntryAssembly): if the domain has not invoked
17962         AppDomain.ExecuteAssembly yet, return the assembly of the default
17963         AppDomain.
17964
17965 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17966
17967         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17968
17969 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17970
17971         * metadata.c, reflection.c: simple speedup to type hash
17972         and equals code.
17973
17974 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17975
17976         * image.c, image.h, class.c, assembly.c: move module loading
17977         to MonoImage. When loading metadata, consider alignemnet from
17978         the start of metadata, not from the metadata address in memory.
17979
17980 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17981
17982         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17983         AssemblyBuilder objects. Factored out custom attribute creation into
17984         a separate function.
17985         (create_custom_attr): new function to create custom attributes.
17986
17987 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17988
17989         * Makefile.am: Got tired of typing the full pathname to pedump.
17990         Until there is another option, am installing this.
17991
17992 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17993
17994         * class.c (class_compute_field_layout): always set field->parent 
17995         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17996
17997 2003-02-11  Dick Porter  <dick@ximian.com>
17998
17999         * threads-types.h:
18000         * monitor.c: Rewrote Monitor, making lock much faster and
18001         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18002         creates them as needed.
18003
18004         * exception.c: Added SynchronizationLockException
18005
18006         * threads.c: Deleted old Monitor implementation.  The new one is
18007         in a new file.
18008
18009 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18010
18011         * class.c: handled TypedReference type code. Set the correct size for
18012         class data. Setup interface_offsets for interface classes, too.
18013
18014 2003-02-09  Martin Baulig  <martin@ximian.com>
18015
18016         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18017
18018 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18019
18020         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18021         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18022         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18023         * verify.c: check for code that runs after the end of the method.
18024
18025 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18026
18027         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18028         "System.Math::Round2".
18029         * sysmath.h: Added Floor, Round and Round2 definitions.
18030         * sysmath.c: Modified certain functions that were not 100% compliant
18031         with MS.NET (math precision) and added the implementation of Floor,
18032         Round and Round2.
18033
18034 2003-02-07  Martin Baulig  <martin@ximian.com>
18035
18036         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18037
18038 2003-02-07  Martin Baulig  <martin@ximian.com>
18039
18040         * debug-mono-symfile.c: Reflected latest symwriter changes.
18041         (mono_debug_create_mono_symbol_file): Removed.
18042         (mono_debug_open_mono_symbol_file): Take an argument which
18043         specifies whether to create a dynamic symbol file.
18044
18045 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18046
18047         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18048
18049 2003-02-05  Martin Baulig  <martin@ximian.com>
18050
18051         * reflection.c (mono_image_build_metadata): Make this public,
18052         protect it against being called multiple times, don't create
18053         resources and don't build the compressed metadata here.
18054         (mono_image_create_pefile): Do this here.
18055
18056         * icall.c
18057         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18058
18059 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18060
18061         * socket-io.c: fixed bug #36322.
18062
18063 2003-02-06  Piers Haken <piersh@friskit.com>
18064
18065         * appdomain.[ch]:
18066         * class.h:
18067         * debug-mono-symfile.c:
18068         * icall.c:
18069         * loader.c:
18070         * mono-config.c:
18071         * monosn.c:
18072         * reflection.c:
18073         * socket-io.c: warning cleanups
18074
18075 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18076
18077         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18078         function. works like remoting invoke, but does a check for the Proxy first.
18079
18080 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18081
18082         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18083
18084 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18085
18086         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18087         array of pointers.
18088         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18089         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18090
18091         * object.c (mono_store_remote_field_new): used by the new jit
18092         instead of mono_store_remote_field
18093         (mono_load_remote_field_new): used by the new jit
18094         instead of mono_load_remote_field
18095
18096 2003-02-05  Patrik Torstensson
18097
18098         * appdomain.c: changed unload to take the domain id instead
18099         of domain
18100         
18101         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18102
18103
18104 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18105
18106         * appdomain.c: don't look for assemblies in ApplicationBase if
18107         PrivateBinPathProbe is set.
18108
18109 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18110
18111         * object.c: make the first argument in main_args contain the absolute
18112         path to the assembly. Fixes bug #37511.
18113
18114 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18115
18116         * icall.c: get correct UTC offset for countries not using daylight
18117         time saving. Fixes bug #30030.
18118
18119 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18120
18121         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18122         and 1 are the family).
18123
18124 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18125
18126         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18127
18128         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18129
18130 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18131
18132         * reflection.c: added support for SignatureHelper tokens, which is
18133         needed by the Calli opcode.
18134
18135         * reflection.h: track changes to SignatureHelper class.
18136
18137         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18138
18139 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18140
18141         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18142
18143 2003-02-03  Patrik Torstensson
18144         * appdomain.[c|h], domain.c : 
18145          - Added support for getting a domain via domain id
18146          - Support for setting and getting domain from System.AppDomain 
18147            (used in cross appdomain channel)
18148          - Added support for get/set for a MonoAppContext on a thread 
18149            (Context class in System.Runtime.Remoting.Contexts),
18150          - Removed hack in Get/SetData and ExecuteAssembly.
18151         
18152         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18153         the managed world to get control when a proxy is created.
18154
18155         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18156         
18157 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18158
18159         * icall.c
18160         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18161         Populate the codebase field as well.
18162
18163 2003-02-02  Martin Baulig  <martin@ximian.com>
18164
18165         * debug-mono-symfile.c
18166         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18167         (mono_debug_symfile_add_method): Allow interncalls.
18168
18169 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18170
18171         * icall.c: throw parse exception if strtod fails or the string is empty.
18172
18173 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18174
18175         * marshal.c: handle object type separately from defined
18176         class types.
18177
18178 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18179
18180         * marshal.c: handle NATIVE_LPSTR for strings when it's
18181         explicitly specified.
18182
18183 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18184
18185         * reflection.c, reflection.h, icall.c: setup the reflection
18186         handle cache for ModuleBuilders and AssemblyBuilders.
18187
18188 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18189
18190         * reflection.c (reflection_methodbuilder_to_mono_method): set
18191         pinvoke flag
18192
18193 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18194
18195         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18196
18197 2003-01-29  Dick Porter  <dick@ximian.com>
18198
18199         * threads.c: No need for the fake_thread kludge now that Thread
18200         doesn't run a class constructor
18201         
18202 2003-01-29  Dick Porter  <dick@ximian.com>
18203
18204         * threads.c: Use g_direct_hash instead of the rather bogus
18205         g_int_hash
18206
18207 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18208
18209         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18210         (fix pinvoke12.exe)
18211         (mono_marshal_get_struct_to_ptr): generate valid IL code
18212         (mono_marshal_get_ptr_to_struct): generate valid IL code
18213         (*): correctly set sig->pinvoke, we need to memdup the signature
18214         to do that
18215
18216 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18217
18218         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18219         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18220
18221 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18222
18223         * profiler.c: provide more callers information.
18224
18225 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18226
18227         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18228
18229         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18230
18231         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18232
18233 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18234
18235         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18236         exception instead of going into an infinite loop on dates which it 
18237         can't yet handle.
18238
18239         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18240         out-of-range exception if needed.
18241
18242         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18243         an implementation for an interface method and to override an inherited
18244         method at the same time. 
18245         Imagine a scenario when a virtual method is used to override a
18246         virtual abstract method in a parent class, and this same method 
18247         provides an implementation for an method inherited from an interface. 
18248         In this case, the interface resolution code will set im->slot, which 
18249         means that the virtual method override pass will skip this method 
18250         which means a pointer to the abstract method inherited from the parent
18251         will remain in the vtable of this non-abstract class.
18252
18253         * class.c: (mono_class_setup_vtable): continue search for a real 
18254         method if only an abstract method is found.     
18255
18256 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18257
18258         * reflection.c: add size to encoding for ByValStr and ByValArray
18259         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18260
18261 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18262
18263         * class.c (mono_class_setup_vtable): pass the override info as an
18264         argument.
18265
18266         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18267         correctly.
18268         
18269         * reflection.c (ensure_runtime_vtable); add support for method 
18270         overrides.
18271         
18272 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18273
18274         * reflection.c (resolution_scope_from_image): Hack to work to work with
18275         dynamic assemblies.
18276
18277         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18278         added a 'force_ref' argument to force this function to allways return 
18279         a TypeRef. This is needed by mono_image_get_memberref_token ().
18280         
18281 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18282
18283         * reflection.c (mono_image_get_type_info): interfaces really don't have
18284         a parent.
18285
18286         * reflection.c (mono_image_basic_init): fill out missing fields of
18287         image structure.
18288
18289         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18290         dynamic assemblies. This is required so dynamic assemblies show up in
18291         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18292         Type::GetType() etc. This is consistent with MS behaviour.
18293
18294         * image.c image.h reflection.c: add newly created classes to the name 
18295         cache so mono_class_get () will find them.      
18296
18297 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18298
18299         First part of changes to get IKVM.NET running under mono.
18300         
18301         * appdomain.h, appdomain.c: added new function 
18302         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18303         This function will call AppDomain::DoTypeResolve to do the actual work.
18304
18305         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18306         moved existing code dealing with dynamic tokens to a new function 
18307         called mono_reflection_lookup_dynamic_token (). This function will 
18308         raise TypeResolve events when appropriate. Since reflection.c is not 
18309         part of libmetadata, a new hook function called 
18310         mono_lookup_dynamic_token() is added to class.c which will call this.
18311
18312         * assembly.h assembly.c: make the invoke_load_hook function public,
18313         so it can be called for dynamic assemblies.
18314
18315         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18316
18317         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18318         type isn't found.
18319
18320         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18321         MonoGHashTable, since it contains pointers to objects which the GC 
18322         needs to track.
18323
18324         * assembly.c (search_loaded): remove unused variable.
18325         
18326 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18327
18328         * object.c: fixed issue exposed by gcc-generated IL programs
18329         that use RVA data for pointers.
18330
18331 2003-01-25  Martin Baulig  <martin@ximian.com>
18332
18333         * threads.c (start_wrapper): Moved the initialization of
18334         `start_func' above the mono_new_thread_init() call to which we
18335         pass it as argument.
18336
18337 2003-01-24  Martin Baulig  <martin@ximian.com>
18338
18339         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18340         the MonoThread pointer.
18341
18342 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18343
18344         * icall.c: Rename `PowImpl' to Pow.
18345
18346 2003-01-23  Dick Porter  <dick@ximian.com>
18347
18348         * threads.c (start_wrapper): Create a Thread object if needed, so
18349         the Main() thread can do the class initialisation in a subthread
18350         that has been set up to allow managed code execution.
18351
18352         Pass the thread ID instead of the MonoThread pointer to the thread
18353         start and attach callbacks.  This change is required, because the
18354         jit thread start callback must be called _before_ the Thread
18355         object can be created.
18356         
18357         (mono_thread_init): Removed much object creation code that is no
18358         longer needed.  No managed code is called from here now.
18359
18360         * object.c (mono_runtime_exec_managed_code): Create a subthread
18361         for Main, and call back to the runtime to use it.
18362         Set the exit code when Main exits.
18363
18364         * gc.c: Make sure domain finalisation happens in a subthread.
18365         Re-enable threaded GC, fixing bug 31333 (again).
18366
18367         * environment.c: System.Environment internall calls (so far just
18368         ExitCode is here, the others are still in icall.c)
18369
18370         * appdomain.c (mono_runtime_cleanup): All threads running managed
18371         code should have finished before mono_runtime_cleanup() is
18372         reached, so no need to clean up threads.
18373
18374 2003-01-22  Martin Baulig  <martin@ximian.com>
18375
18376         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18377         `gpointer func' arguments.      
18378         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18379         but added `MonoThread *thread' argument.
18380         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18381
18382         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18383         and pass it to the mono_thread_start_cb callback.
18384         (mono_install_thread_callbacks): New public function to install a
18385         set of callbacks which are set by the debugger.
18386         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18387
18388 2003-01-22  Martin Baulig  <martin@ximian.com>
18389
18390         * Makefile.am: Install debug-mono-symfile.h.
18391
18392 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18393
18394         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18395
18396 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18397
18398         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18399         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18400         (mono_array_class_get): correctly set access levels of arrays
18401
18402 2003-01-20      Patrik Torstensson
18403         * image.h (MonoAssemblyName): changed major, minor, build, revision
18404         from signed to unsigned.
18405
18406 2003-01-20  sean kasun <skasun@azstarnet.com>
18407
18408         * reflection.c (load_cattr_value): Now this handles
18409         MONO_TYPE_SZARRAY.  Fixes bug #35629
18410
18411 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18412
18413         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18414         integer value
18415
18416 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18417
18418         * decimal.c: fixed bug #26056.
18419
18420 2003-01-17  Martin Baulig  <martin@ximian.com>
18421
18422         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18423
18424 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18425
18426         * exception.[ch]:
18427         (mono_get_exception_type_initialization): new function.
18428
18429         * object.c: throw a TypeInitializationException when an exception is
18430         thrown invoking the class constructor.
18431
18432 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18433
18434         * reflection.c: fixed attribute reading.
18435
18436 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18437
18438         * icall.c:
18439         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18440         provided, look for the type in the calling assembly and then in
18441         mscorlib; if the assembly name is provided, only try that one.
18442
18443 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18444
18445         * object.c: register the vtable before there is a chance it's
18446         queried again recursively.
18447
18448 2003-01-13  Duncan Mak  <duncan@ximian.com>
18449
18450         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18451         gc-internal.h. 
18452         
18453 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18454
18455         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18456
18457 2003-01-11  Martin Baulig  <martin@ximian.com>
18458
18459         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18460         this to 20 for the release.
18461
18462 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18463
18464         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18465
18466         * loader.c (mono_method_get_marshal_info): bug fix
18467
18468         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18469         structures with explicit layout
18470
18471 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18472
18473         * profiler.c: made the output more readable (and sorted). 
18474         Added caller information for the allocation profiler.
18475
18476 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18477
18478         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18479
18480 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18481
18482         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18483         to get value types.
18484         
18485 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18486
18487         * object.c, profiler.h, profiler.c, profiler-private.h:
18488         Added object allocation profiler.
18489
18490 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18491
18492         * reflection.h, reflection.c: handle global methods.
18493         Compress blob entries.
18494
18495 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18496
18497         * marshal.c: fix compilation.
18498
18499 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18500
18501         * loader.c (mono_method_get_marshal_info): impl.
18502
18503         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18504
18505 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18506
18507         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18508         for reference types.
18509
18510 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18511
18512         * loader.c: fixed off by one error in loaded parameter names.
18513
18514 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18515
18516         * marshal.c (mono_marshal_get_icall_wrapper): like
18517         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18518         instead of a MonoMethod.
18519
18520 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18521
18522         * decimal.c: fixed bug #36537.
18523
18524 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18525
18526         * marshal.c: throw a missing method exception if a
18527         P/Invoke method is not found.
18528
18529 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18530
18531         * icall.c: allow a null this for constructors.
18532
18533 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18534
18535         * icall.c: raise the proper exceptions if the arguments to the
18536         internal Invoke are incorrect.
18537
18538 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18539
18540         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18541
18542 2003-01-03  Martin Baulig  <martin@ximian.com>
18543
18544         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18545
18546 2002-12-31  Martin Baulig  <martin@ximian.com>
18547
18548         * debug-mono-symfile.c: Completely rewrote the type section.
18549         Instead of using individual malloc()ed fields, we use one big
18550         continuous memory area and offsets into this area.
18551         See the comments in the source code for details.
18552
18553 2002-12-30  Martin Baulig  <martin@ximian.com>
18554
18555         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18556
18557 2002-12-30  Martin Baulig  <martin@ximian.com>
18558
18559         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18560         line number table in this data blob instead of using an external
18561         pointer.
18562
18563 2002-12-28  Martin Baulig  <martin@ximian.com>
18564
18565         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18566
18567 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18568
18569         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18570         as a boxed return type.
18571
18572 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18573
18574         * appdomain.c
18575         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18576         g_build_filename to properly get separators on the filename created.
18577
18578         * object.h: Small change, introduce MonoMarshalByRefObject to
18579         track the layout of that structure in the C# universe as we make
18580         changes there.
18581
18582 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18583
18584         * object.c: removed assert to allow static fields on interfaces.
18585         * loader.c: a TypeSpec may be used for any type, not just arrays.
18586
18587 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18588
18589         * class.c, class.h: added mono_class_array_element_size ().
18590         Ignore static methods in interfaces.
18591
18592 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18593
18594         * threads.c: fixed the build under cygwin.
18595
18596 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18597
18598         * reflection.c: handle nullref constants. Allocate keys for
18599         reflection handles with the GC.
18600
18601 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18602
18603         * threads.c, threads.h: added mono_thread_get_abort_signal()
18604         to get a suitable signal for thread abort.
18605
18606 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18607
18608         * metadata.c: fix handling of ExportedType table.
18609
18610 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18611
18612         * icall.c: added WriteWindowsDebugString internal call.
18613
18614 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18615
18616         * reflection.h: added fields to match C# implementation.
18617
18618 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18619
18620         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18621
18622 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18623
18624         * gc.h, gc-internal.h: Rename header for GC internal calls to
18625         gc-internal.h from gc.h as to not clash with Boehm GC having its
18626         header installed as <gc.h> in outside include paths.
18627         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18628         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18629
18630 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18631
18632         * icall.c: assign minor, build and revision in FillName.
18633
18634 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18635
18636         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18637         Added support for running code generated by Reflection.Emit.
18638
18639 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18640
18641         * appdomain.c: check for NULL argument in LoadFrom.
18642
18643 2002-12-10  Dick Porter  <dick@ximian.com>
18644
18645         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18646
18647 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18648
18649         * appdomain.c: fix buglet when building exe file name.  Handle full
18650         assembly name (needed after latest changes to AssemblyName).
18651         * image.c:
18652         (mono_image_close): free some hashtables.
18653
18654 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18655
18656         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18657         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18658         on some systems (redhat 7.3) 
18659
18660 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18661
18662         * threads.c: delete the critical section of a sync block,
18663         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18664
18665 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18666
18667         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18668
18669 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18670
18671         * appdomain.[ch]: handle the assembly preload event to try loading the
18672         assemblies using the paths we have in the current domain.
18673
18674         * assembly.[ch]: created an assembly preload hook that is called to try
18675         loading the assembly by other means that the ones provided here.
18676
18677         * domain.c: initialize the domain search path.
18678
18679         From now on, assemblies (TODO: except corlib and System) are loaded
18680         according to these rules when using mono_assembly_load ():
18681
18682                 1. It tries to load the assembly from the ApplicationBase
18683                 of the current domain appending .dll and .exe (TODO: have to
18684                 try loading from name/name.dll and name/name.exe).
18685
18686                 2. It tries the search path specified in PrivateBinPath for the
18687                 current domain (if any).
18688
18689                 3. Previous behavior.
18690
18691 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18692
18693         * icall.c: implemented GetInterfaceMap() related icall.
18694         * domain.c, loader.h: load MethodInfo in mono_defaults.
18695
18696 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18697
18698         * gc.c: disable the finalizer thread for now, untill all the issues
18699         with it are resolved.
18700
18701 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18702
18703         * string-icalls.c: handle embedded nulls in string ctor when the
18704         length is specified.
18705
18706 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18707
18708         * class.c: look for explicit interface implementation in parent
18709         classes, too.
18710
18711 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18712
18713         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18714
18715 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18716
18717         * gc.c: protect handles with a critical section.
18718
18719 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18720
18721         * icall.c:
18722         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18723         parameters. If no assembly specified, try getting the type from all
18724         the assemblies in the current domain, else, load the assembly and get
18725         the type from it.
18726
18727 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18728
18729         * marshal.c: applied patch from Aleksey Demakov that fixes
18730         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18731
18732 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18733
18734         * icall.c: fixed get_location.
18735
18736 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18737
18738         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18739         declarations to make it work with older gcc. 
18740
18741         * loader.c (mono_get_method): set signature->pinvoke for native calls
18742
18743 2002-11-20  Dick Porter  <dick@ximian.com>
18744
18745         * threads.c (mono_thread_init): Set the main thread's handle
18746
18747 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18748
18749         * gc.c: allow compilation without GC support. Changed to match the
18750         mono coding style.
18751
18752 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18753
18754         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18755
18756 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18757
18758         * reflection.c: set a public key token on the core assemblies.
18759
18760 2002-11-18  Dick Porter  <dick@ximian.com>
18761
18762         * threads.c: Split out some thread initialisation so that other
18763         files can set the start callback function.
18764
18765         * gc.c: Run finalisers in a separate thread, to avoid stack
18766         overflow.  Fixes bug 31333.
18767
18768         * appdomain.c: Set up GC finalisation thread.
18769
18770         * reflection.c: 
18771         * object.c: 
18772         * domain.c: Use gc.h macros for GC_malloc
18773         
18774 2002-11-15  Dick Porter  <dick@ximian.com>
18775
18776         * threadpool.c: 
18777         * threads.c:
18778         * appdomain.c: Removed mono_runtime_init_with_attach(),
18779         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18780         merging the extra parameter with the existing function.  Removed
18781         unneeded code in mono_thread_attach().
18782
18783 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18784
18785         * image.c (mono_image_loaded_by_guid): a method to get loaded
18786         images by guid. 
18787         (load_metadata_ptrs): we store the guid as string.
18788
18789 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18790
18791         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18792
18793         * metadata.c (mono_guid_to_string): imported method form Zoltan
18794         Varga (slightly modified)
18795
18796         * assembly.c (mono_assembly_open): load precompiled code
18797
18798         * loader.h (MonoMethod): we store the method token for use in the
18799         aot compiler. 
18800
18801 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18802
18803         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18804         the hook function called when an assembly is loaded.
18805         
18806         * domain.c: Modified file.
18807         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18808
18809         Fixes bug #33196.
18810
18811 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18812
18813         * reflection.c: Map PEFileKind to the value expected by the WinNT
18814         image loader. 
18815
18816 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18817
18818         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18819         Read until the buffer is filled completely.
18820
18821 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18822
18823         * icall.c: implemented MonoType.InternalGetEvent ().
18824
18825 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18826
18827         * appdomain.c: implemented InitAppDomainSetup. Delayed
18828         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18829         the entry_assembly.
18830
18831         * assembly.c: base_dir is now an absolute path ending with
18832         G_DIR_SEPARATOR.
18833
18834         * icall.c: modified get_location according to the above changes.
18835
18836         * object.c: init AppDomain.SetupInformation for the default domain after
18837         we have the entry assembly.
18838
18839         * domain.c: when unloading a domain, setup = NULL.
18840
18841 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18842
18843         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18844
18845 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18846
18847         * object.h, object.c: introduced mono_object_get_virtual_method ()
18848         to lookup the method invoked on an object when a callvirt is done on
18849         a method.
18850         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18851
18852 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18853
18854         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18855         current domain when loaded an assembly and failed to load it.
18856
18857         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18858
18859 2002-10-31  Dick Porter  <dick@ximian.com>
18860
18861         * icall.c: 
18862         * file-io.h: 
18863         * file-io.c: Return the error status in a parameter, as the
18864         GetLastError() value has long since been blown away if we try and
18865         look it up in a subsequent internal call invocation.  Delete the
18866         GetLastError() internal call, because it's useless.
18867
18868 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18869
18870         * class.[ch]: added cast_class to fix bug 29517
18871
18872 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18873
18874         * marshal.c: create valid IL code in the filter clause:
18875         the new JIT is less forgiving:-)
18876
18877 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18878
18879         * icall.c: removed get_property internal call.
18880
18881 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18882
18883         * appdomain.h domain.c: Added an ID to appdomains.
18884         
18885         * threads.c threads.h icall.c: Implement icall
18886         Thread:GetDomainID(), and remove unused icall 
18887         CurrentThreadDomain_internal.
18888
18889 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18890
18891         * icall.c: Don't recurse through the base types in GetConstructor.
18892         Fixes bug #32063. 
18893
18894 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18895
18896         * mempool.h, mempool.c: added mono_mempool_empty() and
18897         mono_mempool_stats().
18898
18899 2002-10-23  Dick Porter  <dick@ximian.com>
18900
18901         * file-io.c: 
18902         * file-io.h: 
18903         * icall.c: Added MonoIO.GetFileType internal call
18904
18905 2002-10-17  Dick Porter  <dick@ximian.com>
18906
18907         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18908         delegate semaphore before waiting for all threads to finish,
18909         because new threads can also call async delegates.  Fixes bug
18910         32004.
18911
18912         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18913         of 3 seconds, in case another async job is queued.  (This part is
18914         needed because the bug fix reintroduced the 3s exit lag.)  This
18915         makes the mono_runtime_shutdown flag superfluous.
18916
18917 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18918
18919         * reflection.c: include ehader size in method section headers.
18920         Really check for suplicated modules entries.
18921
18922 2002-10-17  Martin Baulig  <martin@gnome.org>
18923
18924         * debug-mono-symfile.c: Added back support for locals.
18925
18926 2002-10-14  Martin Baulig  <martin@gnome.org>
18927
18928         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18929         MONO_TYPE_VOID.
18930
18931 2002-10-14  Martin Baulig  <martin@gnome.org>
18932
18933         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18934         mono_class_get() instead of looking in the class cache. 
18935
18936 2002-10-13  Martin Baulig  <martin@gnome.org>
18937
18938         * debug-mono-symfile.c: Set version number to 28, include the
18939         signature in method names.
18940
18941 2002-10-13  Martin Baulig  <martin@gnome.org>
18942
18943         * debug-mono-symfile.h: Set version number to 27.
18944
18945 2002-10-11  Martin Baulig  <martin@gnome.org>
18946
18947         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18948
18949 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18950
18951         * metadata.c, metadata.h: added helper function to allocate signatures.
18952
18953 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18954
18955         * icall.c: added internal call to get the location of machine.config.
18956
18957 2002-10-08  Martin Baulig  <martin@gnome.org>
18958
18959         * debug-mono-symfile.c: Ignore classes with a pending init for the
18960         moment.
18961
18962 2002-10-03  Dick Porter  <dick@ximian.com>
18963
18964         * threads.c: Freebsd pthread_t is a pointer
18965
18966 2002-10-03  Dick Porter  <dick@ximian.com>
18967
18968         * socket-io.c: Implemented GetHostName_internal
18969
18970 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18971
18972         * mono-config.c:
18973         (mono_config_parse_file): don't leak the text.
18974
18975 2002-10-02  Martin Baulig  <martin@gnome.org>
18976
18977         * debug-mono-symfile.c: Added support for methods.
18978
18979 2002-10-01  Martin Baulig  <martin@gnome.org>
18980
18981         * debug-mono-symfile.c: Don't emit methods and line numbers for
18982         the dynamic symbol file, just write the type table.  We can easily
18983         have an external helper program which creates a symbol file for an
18984         IL file.        
18985
18986 2002-10-01  Dick Porter  <dick@ximian.com>
18987
18988         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18989         Only add the handle to the cleanup array when we're about to
18990         launch the thread.  Bug 31425 deadlocked when the test was run on
18991         mono under w32.
18992
18993 2002-10-01  Martin Baulig  <martin@gnome.org>
18994
18995         * debug-mono-symfile.c: Added support for properties.
18996
18997 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18998
18999         * reflection.c: unaligned store fix from Mark Crichton
19000         <crichton@gimp.org>.
19001
19002 2002-09-27  Martin Baulig  <martin@gnome.org>
19003
19004         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19005         New interncall.
19006
19007 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19008
19009         * assembly.h, assembly.c: use a sane API to hook into the assembly
19010         loading process instead of a useless special-purpouse hack
19011         (ngen needs a hook, too, for example).
19012
19013 2002-09-27  Dick Porter  <dick@ximian.com>
19014
19015         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19016         io-layer can set up some process handle info.  Not needed on w32,
19017         but doesn't hurt either.
19018
19019         * process.c: Pass the program name in the second parameter to
19020         CreateProcess, so the path is searched.  Include the working
19021         directory. Implemented process name, process enumeration, and some
19022         process detail internal calls.
19023         
19024         * icall.c: Added internal calls for process lookup, and some
19025         process details
19026
19027 2002-09-26  Martin Baulig  <martin@gnome.org>
19028
19029         * assembly.c (mono_install_open_assembly_hook): New global
19030         function to install a function to be invoked each time a new
19031         assembly is loaded.
19032         (mono_assembly_open): Run this callback function if set.
19033
19034         * debug-mono-symfile.c: Put back line numbers for the dynamic
19035         symbol file and also record the .il file as source file.  This
19036         allows us to install the temporary symbol file as `file.dbg' just
19037         like a compiler-generated one.
19038
19039 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19040
19041         * Corrected typo in gc.c (BOHEM vs BOEHM).
19042
19043 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19044
19045         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19046         GetProperties. Also avoid calling g_slist_length in GetProperties and
19047         GetMethods.
19048
19049 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19050
19051         * reflection.c: avoid unaligned stores (bug spotted by
19052         Mark Crichton  <crichton@gimp.org>).
19053
19054 2002-09-25  Martin Baulig  <martin@gnome.org>
19055
19056         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19057         instead of guint64 for addresses and added prologue/epilogue info.
19058
19059 2002-09-25  Martin Baulig  <martin@gnome.org>
19060
19061         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19062         store line number info.  For the dynamic symbol file, we only need
19063         to provide the JIT generated dynamic line number info for the dynamic
19064         symbol file.
19065
19066 2002-09-25  Martin Baulig  <martin@gnome.org>
19067
19068         * debug-mono-symfile.h: Incremented version number.
19069
19070 2002-09-24  Martin Baulig  <martin@gnome.org>
19071
19072         * class.c (mono_debugger_class_init_func): New global function
19073         pointer variable.
19074         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19075         call it.
19076
19077         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19078         function.  This is called via the mono_debugger_class_init_func
19079         hook to add all types to the dynamic type table.
19080         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19081         from its metadata token.
19082
19083         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19084         New interncall for the debugger.
19085
19086 2002-09-24  Nick Drochak <ndrochak@gol.com>
19087
19088         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19089         before using it in case it is null.
19090         
19091 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19092
19093         * metadata.c: allow custom modifiers in local var signatures
19094         (bug spotted by Zoltan Varga).
19095
19096 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19097
19098         * class.c: deal with the <Module> class that may have a NULL vtable.
19099         Eliminate warnings.
19100
19101 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19102
19103         * image.c, image.h: more strong name helpers.
19104         * monosn.c: more work: convert pem keys to cryptoapi format.
19105
19106 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19107
19108         * string-icalls.c: speedup IndexOf.
19109
19110 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19111
19112         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19113
19114 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19115
19116         * icall.c: cleanup: use mono_object_domain ().
19117
19118 2002-09-23  Martin Baulig  <martin@gnome.org>
19119
19120         * debug-mono-symfile.c: Improved type support.
19121
19122 2002-09-22  Martin Baulig  <martin@gnome.org>
19123
19124         * debug-mono-symfile.c: Added support for reference types and strings.
19125
19126 2002-09-22  Martin Baulig  <martin@gnome.org>
19127
19128         * debug-mono-symfile.c: Started to work on the type table.
19129
19130 2002-09-21  Martin Baulig  <martin@gnome.org>
19131
19132         * debug-mono-symfile.c: Largely reworked the symbol table format.
19133         The symbol table is now incrementally updated each time a new
19134         method is added.  We're now also using our own magic and version
19135         so that you don't need to recompile all your classes if the
19136         dynamic table changes.
19137         (mono_debug_update_mono_symbol_file): Removed.
19138         (mono_debug_symfile_add_method): New function to add a method.
19139
19140 2002-09-21  Martin Baulig  <martin@gnome.org>
19141
19142         * icall.c
19143         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19144         New interncall.
19145
19146         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19147         New interncall to get a method from its metadata token.
19148
19149 2002-09-21  Martin Baulig  <martin@gnome.org>
19150
19151         * debug-mono-symfile.c: Create type table.
19152
19153 2002-09-20  Martin Baulig  <martin@gnome.org>
19154
19155         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19156
19157 2002-09-20  Martin Baulig  <martin@gnome.org>
19158
19159         * debug-mono-symfile.c: Provide information about params and locals.
19160
19161 2002-09-20  Martin Baulig  <martin@gnome.org>
19162
19163         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19164         New interncall.
19165
19166         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19167         interncall to get a method from its metadata token.
19168
19169 2002-09-20  Martin Baulig  <martin@gnome.org>
19170
19171         * debug-mono-symfile.c: Added a few checks for method->header
19172         being non-NULL.  This should never happen, but for the moment
19173         let's use a g_warning() rather than a g_assert().
19174
19175 2002-09-19  Mark Crichton  <crichton@gimp.org>
19176
19177         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19178         even if support for it isn't present.  Added an #ifdef to fix this.
19179
19180         * socket-io.c: Added checks back for Solaris support.
19181
19182 2002-09-19  Martin Baulig  <martin@gnome.org>
19183
19184         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19185         changes in the symbol file format.
19186
19187 2002-09-18  Martin Baulig  <martin@gnome.org>
19188
19189         * debug-mono-symfile.c: Set version number to 21.
19190
19191 2002-09-18  Dick Porter  <dick@ximian.com>
19192
19193         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19194         on netbsd.  Fixes bug 30051.
19195
19196 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19197
19198         * reflection.c:
19199         (set_version_from_string): little fix.
19200
19201 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19202
19203         * monosn.c, Makefile.am: added strong name utility.
19204         * reflection.h, reflection.c: implemented delayed signing,
19205         locale, version and hash id assembly attributes.
19206
19207 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19208
19209         * loader.c, metadata.c: load param attributes in signatures.
19210
19211 2002-09-16  Martin Baulig  <martin@gnome.org>
19212
19213         * debug-mono-symfile.c: Added string table with all method names.
19214
19215 2002-09-14  Martin Baulig  <martin@gnome.org>
19216
19217         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19218         fast method lookup.
19219
19220 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19221
19222         * reflection.c: record the public key token of referenced assemblies.
19223
19224 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19225
19226         * image.c, image.h: added functions to get the strong name and the
19227         public key of an assembly.
19228         * pedump.c: use them.
19229
19230 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19231
19232         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19233
19234 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19235
19236         * marshal.c (mono_marshal_get_managed_wrapper): Added
19237         MONO_TYPE_BOOLEAN 
19238
19239 2002-09-11  Martin Baulig  <martin@gnome.org>
19240
19241         * gc.c: Call GC_unregister_disappearing_link() on all links when
19242         finalizing them, this is necessary to aviod a crash in boehm's
19243         finalize handler.
19244
19245 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19246
19247         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19248         nick@chemlab.org.
19249
19250 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19251
19252         * icall.c: implemented MonoType::Module.
19253         * reflection.c, reflection.h: mono_module_get_object () from
19254         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19255
19256 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19257
19258         * icall.c: ignore overridden methods in GetMethods ().
19259         Fix for FieldInfo::SetValue().
19260         * object.c: handle float/double in runtime invoke.
19261
19262 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19263
19264         * object.c: allow a constructor to be called again on an object.
19265
19266 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19267
19268         * class.h, class.c: move field layout code to it's own function and
19269         export it. Get an interface id earlier. Move fields in MonoClass
19270         so they are more cache friendly and align the bitfields.
19271         * loader.c: temporary handle get_param_names() for a runtime method.
19272         * reflection.c, reflection.h: more code to handle runtime creation of
19273         types.
19274
19275 2002-09-09  Martin Baulig  <martin@gnome.org>
19276
19277         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19278         signature with the pinvoke field being set for the actual call.
19279
19280 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19281
19282         * icall.c: removed some unused icalls. Start of map of glib charsets
19283         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19284
19285 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19286
19287         * debug-helpers.c: break infinite loop (found and fixed by
19288         Holger Arnold <harnold@gmx.de>).
19289
19290 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19291
19292         * icall.c: target may be null in create_delegate.
19293
19294 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19295
19296         * marshal.c: handle a boolean return type.
19297
19298 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19299
19300         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19301
19302 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19303
19304         * gc.c: fix weakreferences.
19305
19306 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19307
19308         * icall.c: added icall to get default codepage.
19309
19310 2002-09-03  Dick Porter  <dick@ximian.com>
19311
19312         * threads.h: 
19313         * threads.c: Use MonoThread instead of MonoObject where
19314         apropriate.
19315
19316         Store running thread objects in a hash table, so that we have all
19317         the info to hand when waiting for them to finish
19318         (means we don't need OpenThread() any more, so mingw builds should
19319         be fully functional again.)
19320
19321         * verify.c:
19322         * object.h: Added thread ID to MonoThread
19323
19324 2002-09-03  Martin Baulig  <martin@gnome.org>
19325
19326         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19327
19328 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19329
19330         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19331
19332 2002-09-03  Martin Baulig  <martin@gnome.org>
19333
19334         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19335         argument to store the end address of the disassembled instruction.
19336
19337         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19338         here from debug-symfile.h.
19339         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19340         JIT into this struct.
19341         (MonoSymbolFile): Added `char *image_file' field.
19342         (MonoDebugGetMethodFunc): Removed.
19343         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19344         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19345         (mono_debug_find_method): New method.
19346
19347         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19348         create a full symbol file.
19349         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19350         and static symbol files.
19351         (mono_debug_find_method): The symbol file keeps an internal method hash,
19352         call this to get a MonoDebugMethodInfo from a MonoMethod.
19353
19354         * debug-symfile.[ch]: Removed.
19355
19356 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19357
19358         * image.c (do_mono_image_open): Remove linker version check.
19359
19360 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19361
19362         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19363         wrappers for instance methods.
19364         
19365 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19366
19367         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19368
19369 2002-08-28  Dick Porter  <dick@ximian.com>
19370
19371         * Makefile.am: Export HOST_CC for w32 builds
19372
19373 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19374
19375         * file-io.c process.c: MonoString are null terminated, no
19376         need for mono_string_to_utf16() anymore.
19377
19378 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19379
19380         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19381
19382 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19383
19384         * icall.c, reflection.h: speedup System.MonoType.
19385
19386 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19387
19388         * reflection.c: allow null as the value of a string argument in
19389         custom attributes constructors.
19390
19391 2002-08-27  Martin Baulig  <martin@gnome.org>
19392
19393         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19394         `trampoline_address' field.
19395
19396 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19397
19398         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19399         check (fixes bug #29486) 
19400
19401 2002-08-27  Martin Baulig  <martin@gnome.org>
19402
19403         * debug-mono-symfile.c: Changed the file format in a way that allows us
19404         open it read-only and to use a specially malloced area for all the
19405         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19406         debugging IL code and there is no MCS generated symbol file for it.
19407
19408 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19409
19410         * object.c: added a define for a good string and array
19411         creation speedup (not enabled by default because we need to deal with
19412         the synch stuff).
19413
19414 2002-08-26  Martin Baulig  <martin@gnome.org>
19415
19416         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19417         function to create a dynamic symbol file.  This is used by the
19418         debugger to create a symbol file for IL code on-the-fly.
19419
19420 2002-08-26  Martin Baulig  <martin@gnome.org>
19421
19422         * loader.c (mono_lookup_pinvoke_call): Include the error message
19423         from g_module_error() in the error message.
19424
19425 2002-08-24  Martin Baulig  <martin@gnome.org>
19426
19427         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19428         function to update the symbol file.  The symbol file is mmap()ed
19429         writable, but private.  This allows us to install the symbol file
19430         together with the assembly.
19431
19432 2002-08-24  Martin Baulig  <martin@gnome.org>
19433
19434         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19435         but they can read the new symbol file format which mcs is now creating.
19436
19437         * debug-symfile.c (mono_debug_find_source_location): Moved to
19438         debug-mono-symfile.c; this is now operating on the new symbol file.
19439
19440 2002-08-23  Martin Baulig  <martin@gnome.org>
19441
19442         * debug-helpers.c (mono_method_desc_from_method): New function to get
19443         a MonoMethodDesc from a MonoMethod.
19444
19445 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19446
19447         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19448         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19449
19450 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19451
19452         * string-icalls.[ch]: make helper methods static.
19453
19454 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19455
19456         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19457         types to it and to SetValueInternal.
19458
19459         * object.c: Moved handle_enum label to its proper place. This was the
19460         f... bug! ;-)
19461
19462         This time i compiled mcs and gtk-sharp and they both work.
19463
19464 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19465
19466         * icall.c: reverted partially my previous patch until 
19467         object.c:set_value handles enums correcly.
19468
19469 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19470
19471         * icall.c:
19472         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19473         (ves_icall_System_Environment_get_MachineName): removed warning when
19474         compiling under cygwin.
19475
19476 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19477
19478         * object.c: fixed field_get_value() for reference types.
19479
19480 2002-08-22  Dick Porter  <dick@ximian.com>
19481
19482         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19483         Don't free a buffer while it's still needed.  Patch from Jonathan
19484         Liger <Jonathan.liger@wanadoo.fr>
19485
19486 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19487
19488         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19489         internal call.
19490
19491 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19492
19493         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19494         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19495
19496         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19497         we call unmanaged code which throws exceptions.
19498
19499 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19500
19501         * appdomain.h: added per-domain entry_assembly.
19502         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19503         arguments.
19504         * icall.c: Assembly::GetEntryAssembly icall.
19505         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19506         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19507
19508 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19509
19510         * appdomain.h, gc.c: added mono_domain_finalize ().
19511
19512 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19513
19514         * object.c:
19515         (mono_print_unhandled_exception): changed g_warning by g_printerr
19516         because g_log has a 1024 characters limit (yeah, i got a big stack
19517         trace). Don't print exception name, that should be in ToString 
19518         returned string.
19519
19520 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19521
19522         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19523         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19524
19525 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19526
19527         * object.c:
19528         (mono_print_unhandled_exception): after previous commit, i realized
19529         that MS calls ToString on the exception. I changed this function to
19530         do that. This way we get stack_trace for free.
19531
19532 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19533
19534         * object.c:
19535         (mono_print_unhandled_exception): invoke Message property instead of
19536         getting 'message' field from Exception. Don't allocate memory for
19537         'trace' and 'message' if not needed.
19538
19539 2002-08-18  Dick Porter  <dick@ximian.com>
19540
19541         * unicode.c: Fix asserts to match Encoder.cs checks
19542
19543 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19544
19545         * marshal.c: fix unaligned store issue and a few wrong
19546         opcode argument types.
19547
19548 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19549
19550         * icall.c: added GetUninitializedObjectInternal internal call.
19551
19552 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19553
19554         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19555         to the right domain.
19556
19557 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19558
19559         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19560
19561         * class.c (class_compute_field_layout): set blittable to false for Strings
19562
19563         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19564
19565 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19566
19567         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19568         first chunk of code to create types at runtime. Code to
19569         handle ReflectedType/DeclaringType. Make reflection handles
19570         domain specific.
19571
19572 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19573
19574         * class.c: set correct name in arrays.
19575
19576 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19577
19578         * appdomain.c (mono_domain_transfer_object): make it work with
19579         valuetypes. bug fixes.
19580
19581 2002-08-12  Dick Porter  <dick@ximian.com>
19582
19583         * object.h: Rename some parameters to avoid c++ keywords (Patch
19584         from Joseph Wenninger <kde@jowenn.at>)
19585
19586 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19587
19588         * icall.c: added icall to implement Assembly.GetFile*.
19589
19590 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19591
19592         * reflection.h, reflection.c: code to embed managed resources.
19593
19594 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19595
19596         * class.c: move all the type size stuff into
19597         class_compute_field_layout().
19598
19599 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19600
19601         * class.c: ensure enums have always the correct instance size.
19602         * unicode.c: remove wrong assert.
19603
19604 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19605
19606         * assembly.c: fix mem corruption issue.
19607         * image.h, image.c: added mono_image_get_resource () to access
19608         managed resources.
19609         * icall.c: implemented Assembly.EntryPoint property and some
19610         Managed Resources related internalcalls.
19611
19612
19613 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19614
19615         * image.c, image.h: impemented mono_image_get_entry_point ().
19616         * appdomain.c: use mono_image_get_entry_point.
19617
19618 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19619
19620         * reflection.c: support the object type argument when loading
19621         custom attributes.
19622
19623 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19624
19625         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19626         String as return type.
19627
19628 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19629
19630         * reflection.c: fix encoding of named args for custom attrs to match
19631         the ms implementation. Read them back when instantiating custom
19632         attributes.
19633
19634 2002-08-02  Radek Doulik  <rodo@ximian.com>
19635
19636         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19637         by Dietmar as quick fix
19638         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19639         16 as stack size, used on more places as quick fix before Dietmar
19640         will fix it properly
19641
19642 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19643
19644         * object.h, object.c: added accessors for fields and properties.
19645
19646 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19647
19648         * class.c, class.h: made mono_class_get_field_from_name ()
19649         loop on parent types.
19650         Added mono_class_get_property_from_name ().
19651
19652 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19653
19654         * class.c, class.h: move the code to setup the type vtable in its own
19655         function so that it can be reused also for types created at runtime.
19656         Eliminate the "class" identifier from the header file.
19657         * reflection.c: setup the vtable for enums so that we can create
19658         objects for use in SetConstant ().
19659
19660 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19661
19662         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19663         instead of the delegate itself as this pointer (bug #28383)
19664
19665 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19666
19667         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19668         conversions.
19669
19670 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19671
19672         * loader.c: don't set the pinvoke bit on icalls.
19673
19674 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19675
19676         * debug-helpers.c (mono_method_full_name): only print a number to
19677         indicate wrapper type (so that the output is more readable in traces).
19678
19679 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19680
19681         * class.c (mono_class_init): include method override patch from Paolo
19682
19683 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19684
19685         * icall.c: fixed GetTypeCode().
19686
19687 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19688
19689         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19690         use real delegate invoke function to make it work with multicast
19691         delegates (fix bug# 28291).
19692
19693 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19694
19695         * object.c: load constant strings.
19696
19697 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19698
19699         * reflection.c: no magic numbers.
19700         * tabledefs.h: security action enum.
19701
19702 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19703
19704         * assembly.c: fix possible memory corruption.
19705
19706 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19707
19708         * reflection.h, reflection.c: added support for linking resources.
19709         * verify.c: check we have an updated corlib.
19710
19711 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19712
19713         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19714         string arrays.
19715         (mono_marshal_string_array): null terminate unmanaged string arrays.
19716         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19717
19718 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19719
19720         * icall.c: Type.GetType () can now return also types from the
19721         calling assembly.
19722
19723 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19724
19725         * loader.h, loader.c: stack walking support.
19726         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19727         GetCallingAssembly.
19728
19729 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19730
19731         * marshal.c: added optimisations for blittable types 
19732
19733         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19734         (mono_class_setup_mono_type): set blittable attribute for single
19735         and double.
19736
19737         * marshal.c (mono_string_utf8_to_builder): impl.
19738         (mono_string_builder_to_utf8): impl.
19739         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19740
19741 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19742
19743         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19744         (mono_marshal_get_managed_wrapper): impl. byref types
19745
19746 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19747
19748         * icall.c:
19749         (search_method): don't display debug message. 
19750
19751 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19752
19753         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19754
19755 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19756
19757         * appdomain.c: set the missing filename when throwing exception.
19758
19759 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19760
19761         * metadata.c (mono_type_size): code cleanup
19762         (mono_type_stack_size): removed some test code
19763
19764 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19765
19766         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19767         mono_get_exception_file_not_found now.
19768
19769         * exception.c (mono_exception_from_name_two_strings): New version
19770         that will call a constructor with two string arguments. 
19771         (mono_get_exception_file_not_found): New helper routine, used to
19772         report file-not-found errors.
19773
19774 2002-07-20  Dick Porter  <dick@ximian.com>
19775
19776         * process.h:
19777         * process.c: Pass file handles to CreateProcess
19778         
19779         * icall.c:
19780         * file-io.h:
19781         * file-io.c: Implemented CreatePipe
19782
19783 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19784
19785         * metadata.c (mono_get_param_info): set alignment for value types
19786
19787 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19788
19789         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19790         Constify mono_domain_assembly_open().
19791         * loader.c: handle null namespace in icalls.
19792
19793 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19794
19795         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19796         (emit_str_to_ptr_conv): marshal object as structs
19797
19798         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19799
19800         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19801
19802 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19803
19804         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19805         (mono_marshal_get_native_wrapper): we an now return value types
19806
19807 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19808
19809         * verify.c: more checks implemented.
19810
19811 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19812
19813         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19814         (fix bug #27695)
19815         (mono_marshal_get_native_wrapper): allow byref arguments
19816         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19817         impl. PtrToStringXXX methods
19818         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19819         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19820         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19821         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19822         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19823
19824 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19825
19826         * reflection.c: fix buglet in parsing an assembly name.
19827
19828 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19829
19830         * marshal.c (emit_ptr_to_str_conv): first impl.
19831
19832 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19833
19834         * object.c, class.h: cache the vtable in the class as suggested by
19835         vargaz@freemail.hu (Zoltan Varga).
19836
19837 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19838
19839         * class.h, loader.c: added mono_field_from_token().
19840         * verify.c: first cut of type checking code.
19841
19842 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19843
19844         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19845
19846 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19847
19848         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19849         (fix bug #27782)
19850         (mono_marshal_get_remoting_invoke): impl.
19851         (mono_delegate_begin_invoke): impl.
19852         (mono_mb_emit_save_args): impl.
19853         (mono_delegate_end_invoke): impl.
19854         (mono_marshal_get_delegate_begin_invoke):
19855         (mono_marshal_get_delegate_end_invoke):
19856         (mono_marshal_get_delegate_invoke): generate a special name for
19857         those methods (including the signature) and associate them whith
19858         the delegate class. 
19859
19860 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19861
19862         * reflection.[ch]: 
19863         (mono_reflection_type_from_name): now it has a MonoImage parameter
19864         which is used as the default image to search the type in. If the image
19865         is NULL or getting the type from it fails, it defaults to corlib.
19866
19867         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19868         new parameter.
19869
19870 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19871
19872         * reflection.c: update the parameter table index.
19873
19874 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19875
19876         * domain.c: don't include the mark byte in the string hash.
19877
19878 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19879
19880         * icall.cs: icall for Type.GetTypeCode ().
19881         * verify: a couple of fixes and disabled local initialization checks.
19882
19883 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19884
19885         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19886
19887         * debug-helpers.c (mono_method_full_name): print the type of the
19888         runtime wrapper
19889
19890         * metadata.c (mono_signature_hash): a hash function for signatures
19891         (mono_signature_hash): better hash algorithm
19892
19893         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19894
19895         * debug-helpers.c (mono_method_full_name): this can now generate
19896         method names with signatures
19897
19898         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19899         method dont have this pointers.
19900
19901 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19902
19903         * reflection.c: fixup typebuilder tokens.
19904         * image.c: fix buglet.
19905         * marshal.h: remove whitespace.
19906         * metadata.h, metadata.c: reinstate code that was removed.
19907         * verify.c: handle catch directives and fix another couple of bugs.
19908
19909 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19910
19911         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19912         (mono_marshal_get_native_wrapper): make it comp. with the old code
19913         (mono_marshal_get_native_wrapper): support boolean
19914         (mono_marshal_get_managed_wrapper): support more types
19915
19916 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19917
19918         * class.c (class_compute_field_layout): compute class->blittable attribute.
19919
19920 2002-07-09  Dick Porter  <dick@ximian.com>
19921
19922         * threads.c: Make the thread cleaning up cope with threads that
19923         call ExitThread()
19924
19925 2002-07-08  Radek Doulik  <rodo@ximian.com>
19926
19927         * reflection.c (method_encode_code): use non-translated values to
19928         compute finally_start, this fixes exception handling on ppc, yay!
19929
19930         * decimal.h (struct signscale): fix endianess
19931
19932 2002-07-07  Radek Doulik  <rodo@ximian.com>
19933
19934         * reflection.c: swap box_val and not val
19935
19936 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19937
19938         * reflection.c, reflection.h: handle full assembly info in type name.
19939         Handle Type arguments when loading custom attributes.
19940         * icall.c: updated to use new mono_reflection_type_from_name () method.
19941
19942 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19943
19944         * loader.c:
19945         (method_from_memberref): also print assembly name when method not found.
19946
19947 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19948
19949         * icall.c:
19950         (ves_icall_TypeGetProperties): fixed bug #27473. 
19951
19952 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19953
19954         * reflection.c: display image name and token when cannot find the
19955         .ctor for an attribute.
19956
19957 2002-07-05  Martin Baulig  <martin@gnome.org>
19958
19959         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19960
19961 2002-07-04  Dick Porter  <dick@ximian.com>
19962
19963         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19964         compile on mingw.  This will cause mingw builds to not wait for
19965         subthreads to terminate after the main thread does.  I've lodged a
19966         bug with the mingw developers for them to wrap OpenThread().
19967
19968 2002-07-03  Dick Porter  <dick@ximian.com>
19969
19970         * threads.c: Store thread IDs instead of handles, because
19971         GetCurrentThread() returns a pseudohandle and therefore stores
19972         useless values.  mono_thread_cleanup() continues checking the
19973         array of threads until it is empty, to cope with subthreads
19974         spawning new threads after the main thread has finished.
19975
19976         * profiler.h:
19977         * profiler.c:
19978         * profiler-private.h: Pass the thread ID to thread profiler
19979         functions, instead of a handle
19980
19981 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19982
19983         * verify.c: fixes to make it more usable.
19984         * pedump.c: added --verify code to verify IL code in an assembly.
19985
19986 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19987
19988         * reflection.c: turn errors into warnings to allow compiling corlib.
19989
19990 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19991
19992         * reflection.c: add special cases to compile corlib.
19993
19994 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19995
19996         * reflection.c: handle properties with only a set method.
19997
19998 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19999
20000         * opcodes.h: add enum with opcodes in opval order.
20001
20002 2002-07-01  Dick Porter  <dick@ximian.com>
20003         
20004         * object.h:
20005         * object.c (mono_runtime_run_main): Removed unneeded argument
20006
20007 2002-06-28  Martin Baulig  <martin@gnome.org>
20008
20009         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20010
20011 2002-06-27  Dick Porter  <dick@ximian.com>
20012
20013         * threads.c: Store the handle in both the parent thread and in the
20014         subthread, to minimise the time between starting a new thread and
20015         storing its ID.
20016
20017 2002-06-26  Dick Porter  <dick@ximian.com>
20018
20019         * appdomain.c (mono_runtime_cleanup): Close the socket library
20020         after all the threads have finished, not before
20021
20022 2002-06-26  Martin Baulig  <martin@gnome.org>
20023
20024         * debug-symfile.c (mono_debug_find_source_location): Added
20025         `guint32 *line_number' argument.  If it's not NULL, store the line number
20026         there and return the file name without the line number.
20027
20028 2002-06-25  Dick Porter  <dick@ximian.com>
20029
20030         * icall.c:
20031         * process.h:
20032         * process.c: Process forking and other support functions
20033
20034 2002-06-25  Dick Porter  <dick@ximian.com>
20035
20036         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20037         things dont happen when the image is closed.
20038         (mono_image_lookup_resource): Walk the resource section looking
20039         for a particular entry
20040
20041         * cil-coff.h: PE resource section decoding
20042
20043 2002-06-25  Dick Porter  <dick@ximian.com>
20044         
20045         * assembly.h:
20046         * assembly.c: 
20047         (mono_assembly_foreach): Accessor functions to walk the list of
20048         loaded assemblies
20049         (mono_assembly_set_main):
20050         (mono_assembly_get_main): Process methods need to know which
20051         assembly is the "main" one
20052
20053         * object.c (mono_runtime_run_main): Record the main assembly
20054
20055         * debug-helpers.c: Fix typo
20056
20057 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20058
20059         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20060         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20061
20062 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20063
20064         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20065
20066 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20067
20068         * image.c (do_mono_image_open): Initialize reference count,
20069         otherwise we leak the MonoImage.
20070
20071 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20072
20073         * reflection.c: small tweak to handle self-hosting.
20074
20075 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20076
20077         * reflection.c: fix type name parse code.
20078
20079 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20080
20081         * reflection.c: break out of the loop.
20082         * image.c: special case corlib.
20083
20084 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20085
20086         * reflection.c: add all the custom attrs at the end to ensure the
20087         ctors have been properly initialized when the attributes are defined
20088         in the current assembly.
20089
20090 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20091
20092         * reflection.c: handle correctly multiple-nested types.
20093
20094 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20095
20096         * row-indexes.h: fix typos.
20097         * reflection.c: adjust for typos and fix method_def_or_ref
20098         encoding in MethodImpl table.
20099
20100 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20101
20102         * reflection.c: fix entry point patching (thanks Serge!).
20103
20104 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20105
20106         * verify.c: add check for System.Exception
20107
20108 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20109
20110         * image.c, class.c: minifix for code just c&p'ed.
20111         * reflection.c: warning fix.
20112         * object.h, loader.h, domain.c: load also StringBuilder.
20113
20114 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20115
20116         * marshal.h, marshal.c: some support code to handle complex marshaling.
20117
20118 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20119
20120         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20121         Better signatures with vtable error dump.
20122
20123 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20124
20125         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20126
20127 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20128
20129         * icall.c (ves_icall_Type_GetField): impl.
20130
20131 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20132
20133         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20134         to retrieve a marshal description blob for a field or param.
20135
20136 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20137
20138         * reflection.h, reflection.c: change order of nested type emission
20139         to avoid table corruption. The NestedTypes table is sorted.
20140         * icall.c: change order of GetConstructor results to workaround mcs bug.
20141
20142 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20143
20144         * reflection.h, reflection.c: handle field and param marshal
20145         information.
20146
20147 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20148
20149         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20150
20151 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20152
20153         * reflection.c: fix call convention.
20154
20155 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20156
20157         * reflection.h, reflection.c: mono_image_get_memberref_token()
20158         takes a type instead of a class, now. Added
20159         mono_image_get_array_token() to create tokens for the special
20160         multi-dim array methods.
20161
20162 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20163
20164         * assembly.c: handle modules (no assembly table). Split
20165         loading references in its own function.
20166         * class.c: handle moduleref resolution scope.
20167         * image.c, image.h: cache module name in image.
20168
20169 2002-06-07  Martin Baulig  <martin@gnome.org>
20170
20171         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20172         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20173
20174 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20175
20176         * icall.c: more signature fixes that used uint instead of int.
20177
20178 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20179
20180         * reflection.c: fixed signature of field refs.
20181
20182 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20183
20184         * class.c, reflection.c: handle typerefs of nested types
20185         (both on read and when writing files).
20186
20187 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20188
20189         * icall.c: fix method signatures that tried to workaround the previous
20190         typo, d'oh!
20191
20192 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20193
20194         * debug-helpers.c: fix typo.
20195
20196 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20197
20198         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20199         rewrote the PE/COFF writing code (our programs are understood by the
20200         ms runtime, now).
20201
20202 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20203
20204         * gc.c, gc.h, icall.c: weakreference support.
20205
20206 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20207
20208         * Makefile.am, mono-config.c: use $(sysconfdir).
20209
20210 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20211
20212         * icall.c: changed default precision of Double.ToString() to 15.
20213         Fixed memory leak. Unified with Single.ToString.
20214
20215 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20216
20217         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20218
20219 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20220
20221         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20222         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20223         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20224         and myself.
20225
20226 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20227
20228         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20229
20230 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20231
20232         * reflection.c, socket-io.c: more compilation fixes.
20233
20234 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20235
20236         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20237         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20238         unicode.c: warning and compiler compatibility fixes.
20239
20240 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20241
20242         * class.h, metadata.c: fixed warnings/compilation errors.
20243
20244 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20245
20246         * Makefile.am, mono-config.c, mono-config.h: configuration file
20247         support routines.
20248         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20249         config file. Export methods to insert and lookup mappings.
20250
20251 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20252
20253         * reflection.c: handle types and boxed objects in custom attr
20254         constructors.
20255
20256 2002-05-30  Martin Baulig  <martin@gnome.org>
20257
20258         * debug-symfile.c
20259         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20260
20261 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20262
20263         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20264         to lookup the implmap row for a P/Invoke method.
20265         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20266         P/Invoke method from the runtime on an as needed basis.
20267
20268 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20269
20270         * metadata.c (mono_metadata_parse_signature): impl.
20271
20272 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20273
20274         * class.c: handle .pack directive.
20275
20276 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20277
20278         * object.c: initialize static fields with RVA data.
20279
20280 2002-05-25  Martin Baulig  <martin@gnome.org>
20281
20282         * debug-symfile.c
20283         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20284
20285 2002-05-24  Martin Baulig  <martin@gnome.org>
20286
20287         * debug-symfile.c
20288         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20289         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20290         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20291
20292 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20293
20294         * object.c: special case string ctros in invoke.
20295         * gc.c: silly whitespace changes.
20296
20297 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20298
20299         * threadpool.[ch]: impl. a threadpool that can
20300         be used by mint and mono.
20301
20302 2002-05-22  Martin Baulig  <martin@gnome.org>
20303
20304         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20305         The first argument is now a `MonoReflectionModuleBuilder *', the return
20306         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20307         `methods' field to get the method builder.  The `token' argument is the
20308         unfixed token.
20309
20310         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20311         invalid characters instead of g_assert_not_reached()ing.  This seems
20312         to be the behaviour of mscorlib.
20313
20314 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20315
20316         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20317         Hestilow to fix bug #25104
20318
20319 2002-05-21  Martin Baulig  <martin@gnome.org>
20320
20321         * debug-symfile.c (mono_debug_find_source_location): New function.
20322         Looks up an IL offset in the line number table and returns the source
20323         location as a string.
20324
20325 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20326
20327         * icall.c:
20328         (mono_double_ToStringImpl): changed %f by %g until we have something
20329         better.
20330
20331 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20332
20333         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20334         parameters first in C#.
20335
20336 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20337
20338         * icall.c, reflection.h: added icall to get info about an event.
20339
20340 2002-05-20  Radek Doulik  <rodo@ximian.com>
20341
20342         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20343         endian
20344         (mono_value_box): don't use memcpy for small sizes on
20345         architectures with unaligned access
20346
20347 2002-05-20  Martin Baulig  <martin@gnome.org>
20348
20349         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20350         if `tb->parent == NULL'.
20351         (mono_reflection_create_internal_class): New function.  This is
20352         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20353         for enum types.
20354
20355         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20356         New interncall.
20357
20358 2002-05-19  Martin Baulig  <martin@gnome.org>
20359
20360         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20361         argument to get the length, don't default to the array length.
20362
20363 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20364
20365         * assembly.c (mono_assembly_setrootdir): New function used to
20366         override the MONO_ASSEMBLIES directory.
20367
20368 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20369
20370         * icall.c: ValueType_GetHashCode() initialize local var.
20371
20372 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20373
20374         * reflection.c: sort custom attributes table.
20375
20376 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20377
20378         * reflection.c: support named args in custom attributes (write support).
20379
20380 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20381
20382         * reflection.c: fix finally position calculation.
20383
20384 2002-05-15  Radek Doulik  <rodo@ximian.com>
20385
20386         * reflection.c: fixed endianess at many places
20387
20388         * icall.c (ves_icall_InitializeArray): comment out debug msg
20389
20390 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20391
20392         * object.c (mono_unhandled_exception): new function to handle
20393         unhandled exceptions.
20394         (mono_unhandled_exception): call the UnhandledException event.
20395         (mono_runtime_delegate_invoke): impl.
20396
20397 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20398
20399         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20400         returns the RVA, not the direct pointer to the data. Handle the case
20401         when the class size is fixed.
20402
20403 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20404
20405         * reflection.c: fix some endianess issues.
20406
20407 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20408
20409         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20410
20411         * threads.c (mono_thread_init): added a callback which is invoked
20412         at thread start.
20413
20414 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20415         
20416         * icall.c: make GetHashCode return non-negative values.
20417
20418 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20419
20420         * object.c, icall.c, gc.c: revert to address-based hashcode.
20421
20422 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20423
20424         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20425
20426 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20427
20428         * icall.c, class.c: special case <Module>.
20429
20430 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20431
20432         * icall.c: fix bug in GetNow().
20433
20434 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20435
20436         * object.c (mono_runtime_class_init): make sure that we call all
20437         static class constructors.
20438
20439 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20440
20441         * reflection.c: sort methodsemantics table.
20442
20443 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20444
20445         * reflection.h, reflection.c: honour init locals setting.
20446
20447 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20448
20449         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20450
20451 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20452
20453         * reflection.c: support ContructorBuilders in attribute blob creation.
20454
20455 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20456
20457         * reflection.c: some changes to build a binary that can be run
20458         directly in windows.
20459
20460 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20461
20462         * loader.c: print a big message when an icall can't be found.
20463
20464 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20465
20466         * string-icalls.c: fix bug 24248.
20467
20468 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20469
20470         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20471         icall.c, reflection.h: separate assembly loading by pathname and by
20472         assembly name. Use the MONO_PATH env var to search for assemblies.
20473
20474 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20475
20476         * assembly.c, image.h: add some support for assemblies
20477         with multiple modules.
20478         * class.c, class.h: export mono_class_from_typeref().
20479         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20480         instead.
20481
20482 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20483
20484         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20485         documentation says (the ECMA one is correct).
20486
20487 2002-05-02  Dick Porter  <dick@ximian.com>
20488
20489         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20490         Don't name the synchronisation mutex.
20491
20492 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20493
20494         * rand.c
20495         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20496         Make the prototypes match.
20497         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20498         Same.
20499
20500         * icall.c
20501         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20502         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20503         all systems have tm.tm_zone, so use strftime() with %Z to print
20504         the timezone abreviation into a temp string.
20505
20506         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20507         rather than mono_array_addr() on a MonoString on Big Endian
20508         machines.
20509
20510 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20511
20512         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20513         fix bug 24041
20514
20515 2002-04-30  Dick Porter  <dick@ximian.com>
20516
20517         * socket-io.c: Cope with SOCKET being an integer rather than a
20518         pointer now.
20519
20520         * threads.c: Added Thread_free_internal, to deal with thread
20521         handle cleanup.  Moved calls to handle_store() and handle_remove()
20522         to start_wrapper(), so each can only be called once.  Allocate
20523         synchronisation blocks with GC_malloc(), and use GC finalisation
20524         to close the handles.
20525
20526         * icall.c: added System.Threading.Thread::Thread_free_internal
20527
20528 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20529
20530         * icall.c: support Environment.Exit, CommandLineArgs().
20531
20532 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20533
20534         * object.c, object.h: added mono_runtime_run_main () and
20535         mono_runtime_get_main_args () for use in System.Environment.
20536
20537 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20538
20539         * gc.c: fix thinko, enable actual finalization since the jit is now
20540         fixed.
20541
20542 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20543
20544         * gc.c, object.c: take into account that an object may be offset wrt the address
20545         returned by GC_malloc().
20546
20547 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20548
20549         * image.c: handle files without entries in the assembly table (modules).
20550
20551 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20552
20553         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20554         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20555         allowed to be null when it's System.Object class setup.
20556
20557 2002-04-27  Martin Baulig  <martin@gnome.org>
20558
20559         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20560         if `tb->parent == NULL' rather than crashing.
20561
20562 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20563
20564         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20565         calling acos() where asin() should have been called.
20566
20567 2002-04-26  Martin Baulig  <martin@gnome.org>
20568
20569         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20570         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20571         there's a subdirectory called `System', but we don't want to read that
20572         subdirectory as an assembly.
20573
20574 2002-04-25  Martin Baulig  <martin@gnome.org>
20575
20576         * debug-symfile.c: Reflect latest MonoString changes.
20577
20578 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20579
20580         * rand.c, rand.h: instance method icalls need to have an explicit
20581         this pointer as first argument in the C implementation.
20582
20583 2002-04-25  Nick Drochak <ndrochak@gol.com>
20584
20585         * icall.c: Fix typo in map for GetNonZeroBytes
20586
20587 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20588
20589         * string-icalls.c : String does now passes unit tests without any 
20590         errors, the following changes has been made:
20591         
20592         Implemented replace methods.
20593         Renaming of methods to (try) follow the standard.
20594         Fixed compare ordinal
20595         Made all memory allocated directly to function instead of via icall function.
20596         Small performance fix in is_in_array function
20597                         
20598  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20599
20600         c (mono_string_Internal_ctor_charp_int_int):
20601         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20602         sindex < 0, throw ArgumentOutOfRangeException instead of
20603         ArgumentNullException.
20604
20605         Added new check for length == 0, however
20606         I need to make it return String.Empty from the C code.
20607         
20608         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20609         that calculate the length for us here.
20610         
20611         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20612         mono_string_new_utf16 with mono_string_new, since value is utf8.
20613
20614 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20615
20616         * object.c: register the object for finalization if needed.
20617         Allocate one more char in the string for the terminating 0 char.
20618
20619 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20620
20621         * class.c, class.h, image.c: check if a type implemenst a destructor.
20622         Use the proper key for array class lookups.
20623         * icall.c: register the icalls in the System.GC class.
20624         * gc.c, gc.h: GC-related functions and icalls.
20625
20626 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20627
20628         * icall.c:
20629         * socket-io.c:
20630         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20631         changed a couple of free () by g_free ().
20632
20633         * decimal.c: one-liner in the comments for decimal2string ().
20634
20635 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20636
20637         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20638
20639 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20640
20641         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20642         * object.c (mono_runtime_invoke_array) : handle null in params
20643
20644 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20645
20646         * string-icalls.c: fixed bug in split (one off bug)
20647
20648 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20649
20650         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20651         * icalls.c: added String::Equals as internal method
20652
20653 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20654
20655         * threads.c: fixed bug in the double interlocked functions
20656
20657 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20658
20659         * threads.c: implemented all of the new interlocked icalls.
20660         * string-icalls.c: fix a bug in insert.
20661         * icalls.c: added the icalls for interlocked, removed old string functions.
20662         
20663 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20664
20665         * loader.c: fix off-by-one error when reading argument names.
20666
20667 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20668
20669         * profiler.c: win32 counter implementation (untested).
20670         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20671         (the latter needs testing and more complete impl. from win32 folks).
20672
20673 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20674
20675         * object.c: mono_array_new_full workaround mono_array_class_get
20676         problem.
20677
20678 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20679
20680         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20681         * object.h (mono_string_chars): Changed casting type.
20682
20683 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20684
20685         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20686                            method signatures to use gunichar2 instead of gint16.
20687
20688 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20689
20690         * object.h, object.c: domain-specific versions of mono_object_new and
20691         mono_array_new.
20692
20693 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20694
20695         * object.c: changed String layout
20696
20697         * string-icalls.c (mono_string_Internal_ctor_chara): added
20698         internal string constructors.
20699
20700 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20701
20702         * threads.c: pass 'this' to the thread start routine.
20703
20704 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20705
20706         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20707         InternalCompareStr don't call twice mono_string_cmp_char for the last
20708         character. Improved performance in mono_string_cmp_char.
20709
20710 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20711
20712         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20713         code into its own library: libmonoruntime.
20714
20715 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20716
20717         * object.h, object.c: changed array format so that szarrays do not
20718         require a bounds structure.
20719         * icall.c, appdomain.c: support for new szarray format.
20720
20721 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20722
20723         * metadata.c: compare also the retuns type when comparing signatures:
20724         we didn't do this as an optimization since really overloaded methods
20725         must differ also in the arguments, but this doesn't work with
20726         low-level IL code (or when using explicit conversion operators: see
20727         bug#23498 for an example).
20728
20729 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20730
20731         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20732
20733 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20734
20735         * icall.c: make MonoType::GetElementType its own icall.
20736
20737 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20738
20739         * icall.c: remove MonoMethod_get_Name().
20740         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20741         object.
20742
20743 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20744
20745         * string-icalls.c: optimized a few methods.
20746
20747 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20748
20749         * icall.c: added all new string internal calls
20750         * string-icalls.c: added, new string internal call implementation.
20751         * object.c: added mono_string_new_size for allocating a string a size
20752
20753 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20754
20755         * object.c (mono_object_isinst): use the same code as in the
20756         optimized x86 version.
20757
20758 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20759
20760         * profiler.c: TSC-based timer code (faster and more accurate).
20761         Not hooked up in configure, yet (set USE_X86TSC to 1).
20762
20763 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20764
20765         * profiler.c, profiler.h: track time spent compiling methods.
20766         * threads.c: track thread creation/destruction.
20767
20768 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20769
20770         * profiler.c, profiler.h, profiler-private.h: profiling interface
20771         and sample implementation. Moved here so that it can be used also by
20772         the jit.
20773
20774 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20775
20776         * reflection.c, reflection.h: keep types and other handles separate in
20777         the hash tables for referred tokens. Add guid for modules.
20778
20779 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20780
20781         * assembly.c: fix bugs found with valgrind.
20782         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20783
20784 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20785
20786         * threads: added icall support for getting current domain for
20787                    the thread.
20788  
20789 2002-04-13  Martin Baulig  <martin@gnome.org>
20790
20791         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20792         (MonoDebugVarInfo): Added `index' field for register based addresses.
20793         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20794         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20795         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20796         `MonoDebugVarInfo *this_var'.
20797
20798         * debug-symfile.c (relocate_variable): New static function to write
20799         a location description for a local variable or method parameter.
20800
20801 2002-04-12  Martin Baulig  <martin@gnome.org>
20802
20803         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20804         stack offset and begin/end scope address of a local variable.
20805         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20806         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20807         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20808
20809         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20810         Added new relocation types for start/end scope of a local variable.
20811
20812 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20813
20814         * object.h: add mono_object_domain() macro.
20815         * reflection.c: handle typespecs.
20816         * icall.c: MonoMethod::get_Name() implementation.
20817
20818 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20819
20820         * icall.c: String::GetHashCode() icall implementation.
20821
20822 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20823
20824         * icall.c: String::IndexOfAny icall.
20825         * object.c, object.h: make array->max_length more useful.
20826         Intrduced mono_object_class() and mono_string_length() macros.
20827
20828 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20829
20830         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20831         instead of g_unichar_isdigit.
20832
20833 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20834
20835         * icall.c: Implement a simple Double.ToString().
20836
20837 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20838
20839         * appdomain.h: only io-layer.h is supposed to be included.
20840         * icall.c: explicitly import environ. Fix warning.
20841
20842 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20843
20844         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20845                 return true even if it's not Daylight Savings time.
20846                 Only return false for the case where the function isn't
20847                 implemented for a plaform (read Windows).
20848
20849 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20850
20851         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20852         data with a mutex.
20853
20854 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20855
20856         * mempool.c (mono_mempool_alloc): only use g_malloc when
20857         absolutely necessary.
20858
20859 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20860
20861         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20862
20863         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20864         (mono_class_proxy_vtable): use domain mempool
20865
20866 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20867
20868         * appdomain.h, appdomain.c: split initialization that requires the
20869         execution engine support into mono_runtime_init().
20870
20871 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20872
20873         * class.c (mono_class_init): don't include vtable inside MonoClass
20874         to save some memory, gather some statistics.
20875         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20876
20877 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20878
20879         * icall.c: internalcall implementation for ValueType.Equals().
20880
20881 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20882
20883         * object.c (mono_message_init): moved 
20884         (mono_runtime_exec_main): new arch. independent impl.
20885         (mono_runtime_invoke_array): new method - like
20886         mono_runtime_invoke, but you can pass an array of objects.
20887         (mono_remoting_invoke): new arch. independent impl.
20888         (mono_message_invoke): new arch. independent impl.
20889         (mono_runtime_class_init): new arch. independent impl.
20890         (mono_runtime_object_init): new arch. independent impl.
20891
20892 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20893
20894         * metadata.c, object.c, reflection.c: documented the exported
20895         functions.
20896
20897 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20898
20899         * icall.c: simpler code to pass the assembly builder data to corlib.
20900         Implement GetNestedTypes() internalcall.
20901
20902 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20903
20904         * class.c: warn if a type can't be loaded.
20905
20906 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20907
20908         * image.h: typedef MonoImageOpenStatus
20909         * types.h: removed unused file
20910         
20911 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20912
20913         * icall.c: Enum_ToObject accepts enum value arguments.
20914
20915 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20916
20917         * class.c: move initialization of properties, events and nested
20918         classes, so that they happen for interfaces, too.
20919
20920 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20921
20922         * icall.c: cleanup some ugly casts in Array_SetValue*.
20923
20924 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20925
20926         * icall.c: the values array fro enums is of the correct type, now.
20927         Implement (correctly) getFullName instead of assQualifiedName for
20928         MonoType.
20929         * reflection.h, reflection.c: added mono_type_get_name ().
20930
20931 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20932
20933         * assembly.c, image.h: for each MonoImage, record from wich assembly
20934         it was loaded.
20935         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20936         Make Type.Assembly work.
20937
20938 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20939
20940         * debug-symfile.h: use char* instead of gpointer to avoid
20941         unnecessary casts.
20942
20943         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20944
20945         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20946         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20947
20948 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20949
20950         * icall.c (mono_message_init): impl. (code cleanup)
20951         (ves_icall_InternalExecute): impl. FieldGetter
20952
20953         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20954         defined we call all (non-static)methods through the vtable. 
20955
20956 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20957
20958         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20959         finalizer even though the memory is still referenced (and the chunk of
20960         memory is not freed).
20961
20962 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20963
20964         * assembly.c: fix brokeness.
20965
20966 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20967
20968         * class.c: kill some warnings. Check explicit interface method
20969         implementation also without considering the namespace.
20970         Load also literal strings in static class data.
20971
20972 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20973
20974         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20975         (default_assembly_name_resolver): Make the resolver take the
20976         "base" directory where the assembly was originally defined, so we
20977         can load DLLs that are in the same directory as the assembly that
20978         is being referenced.
20979
20980 2002-03-28  Dick Porter  <dick@ximian.com>
20981
20982         * file-io.h: 
20983         * file-io.c:
20984         * socket-io.c: 
20985         * unicode.h: 
20986         * unicode.c: Warning cleanups
20987
20988 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20989
20990         * object.h, reflection.h: use the correct type instead of MonoObject.
20991
20992 2002-03-28  Martin Baulig  <martin@gnome.org>
20993
20994         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20995         (mono_debug_update_symbol_file): Initialize classes if necessary.
20996
20997 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20998
20999         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21000         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21001
21002 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21003
21004         * assembly.h: fix function prototype.
21005         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21006         * mono-endian.h: use const cast.
21007
21008 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21009
21010         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21011
21012 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21013
21014         * loader.c: don't assert when a typeref can't be loaded, give
21015         a chance to the runtime to trow an exception instead.
21016         * loader.h: fix warning.
21017
21018 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21019
21020         * class.c (mono_class_proxy_vtable): added proxy support
21021
21022 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21023
21024         * icall.c: removed last of PAL calls, added System.Environment
21025         * file-io.h, file-io.c: MonoIO implementation
21026         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21027
21028 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21029
21030         * appdomain.c: do not use the byte marker in ldstr table lookup.
21031         * debug-helpers.c: allow two ':' to separate class and method name.
21032         * object.c: allocate arrays bounds with the GC, too.
21033         * verify: add a few more checks.
21034
21035 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21036
21037         * reflection.c: output also literal strings. Allocate parameter data
21038         with GC_malloc() (thanks, Martin, for catching this!).
21039
21040 2002-03-26  Martin Baulig  <martin@gnome.org>
21041
21042         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21043         include the `this' offset in the `param_offsets'.
21044
21045 2002-03-25  Martin Baulig  <martin@gnome.org>
21046
21047         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21048         mono_debug_get_class() function to get the classes. Added new
21049         relocation types for arrays and strings.
21050         (mono_debug_get_class): New static function to search in all
21051         referenced assemblies for a metadata token.
21052
21053         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21054
21055 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21056
21057         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21058         hold gc-allocated objects. Make the string heap a stream like the
21059         others. Removed duplicated code when writing stream info.
21060         Added asserts to catch possible buffer overflows. Set the sorted map
21061         for tables that need sorting. Added some documentation.
21062
21063 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21064
21065         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21066         for interned strings and vtables.
21067
21068 2002-03-24  Martin Baulig  <martin@gnome.org>
21069
21070         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21071         it in the array since it was created with g_slist_prepend().
21072
21073 2002-03-24  Martin Baulig  <martin@gnome.org>
21074
21075         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21076         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21077         (mono_debug_method_from_token): Renamed to
21078         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21079         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21080
21081         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21082         relocation types.
21083
21084         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21085
21086 2002-03-24  Martin Baulig  <martin@gnome.org>
21087
21088         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21089         (mono_debug_method_from_token): New func.
21090
21091         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21092         New interncall, calls mono_debug_local_type_from_signature().
21093         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21094         calls mono_debug_method_from_token().
21095
21096 2002-03-23  Martin Baulig  <martin@gnome.org>
21097
21098         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21099         specifies the number of bytes to be converted, not the array size.
21100         Return the number of chars, not the number of bytes.
21101         (ves_icall_iconv_get_chars): The `byteCount' argument
21102         specifies the number of bytes to be converted, not the array size.
21103
21104 2002-03-23  Martin Baulig  <martin@gnome.org>
21105
21106         * reflection.h (MonoReflectionSigHelper): New type.
21107
21108         * reflection.c (mono_reflection_sighelper_get_signature_local),
21109         (mono_reflection_sighelper_get_signature_local): New functions.
21110
21111         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21112         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21113         interncalls.
21114
21115 2002-03-23  Martin Baulig  <martin@gnome.org>
21116
21117         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21118         is_writeable is set.
21119         (mono_raw_buffer_update): New function to write the modified map
21120         back to disk.
21121
21122         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21123
21124         * debug-symfile.c (mono_debug_update_symbol_file): Call
21125         mono_raw_buffer_update() when done writing.
21126
21127 2002-03-23  Martin Baulig  <martin@gnome.org>
21128
21129         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21130
21131         * debug-symfile.c: Added support for arguments and local variables.
21132
21133 2002-03-23  Dick Porter  <dick@ximian.com>
21134
21135         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21136         protected by ifdefs, hence breaking the w32 build.
21137
21138 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21139
21140         * object.c: implement is_interned() the right way.
21141
21142 2002-03-21  Martin Baulig  <martin@gnome.org>
21143
21144         * debug-symfile.[ch]: New files to handle debugging information
21145         files. There's also support to dynamically update these symbol
21146         files to include machine dependent information.
21147
21148 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21149
21150         * threads.c (mono_thread_create): new function to create thread
21151         from C
21152
21153 2002-03-20  Martin Baulig  <martin@gnome.org>
21154
21155         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21156         method is a constructor.
21157         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21158         points to ves_icall_InternalInvoke().
21159
21160 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21161
21162         * file-io.c: Flush shouldn't throw exceptions.
21163
21164 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21165
21166         * file-io.c: FileStream flush support; FileSetLength now
21167         restores file pointer.
21168
21169 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21170
21171         * class.c: set image for pointer classes.
21172
21173 2002/03/19  Nick Drochak <ndrochak@gol.com>
21174
21175         * sysmath.c: Forgot one.
21176
21177 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21178
21179         * sysmath.c: Avoid redefining existing names.
21180
21181 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21182
21183         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21184         handled by runtime as icall rather than dllimport from libm.so
21185         * file-io.c, file-io.h: fixed handle argument type.
21186
21187 2002-03-18  Dick Porter  <dick@ximian.com>
21188
21189         * reflection.c (mono_image_get_type_info): rename interface to
21190         iface, because of "#define interface struct" on windows.
21191
21192 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21193
21194         * class.c, class.h: rename and export mono_ptr_class_get().
21195         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21196         * reflection.c, reflection.h, icall.c: better/saner type name
21197         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21198         method signatures.
21199
21200 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21201
21202         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21203
21204         * icall.c (ves_icall_InternalInvoke): impl.
21205
21206 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21207
21208         * reflection.c: output the interface map table, too.
21209
21210 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21211
21212         * class.c (class_compute_field_layout): separate computation of 
21213         static field layout
21214
21215 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21216
21217         * icall.c: added System.Buffer support.
21218         * file-io.c: moved file icalls from PAL to FileStream.
21219
21220 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21221
21222         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21223
21224 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21225
21226         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21227
21228 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21229
21230         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21231
21232 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21233
21234         * debug-helpers.{c,h}: moved here from monograph some useful functions
21235         to locate a method by name/signature in a class or image. Included
21236         also a small and flexible IL disassembler.
21237
21238 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21239
21240         * reflection.c: fixup tokens in methods with small header size, too.
21241
21242 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21243
21244         * object.c (mono_string_to_utf8): remove assert(!error), instead
21245         print a warning. 
21246
21247 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21248
21249         * icall.c: update to the new mono_Array_class_get interface.
21250
21251 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21252
21253         * appdomain.c, object.c: Boehm-GC enable.
21254         * icall.c: make get_data_chunk() support split data requests.
21255         Ensure a class is initialized in more cases. Return only the first
21256         property found in GetProperties() or the compiler gets confused. 
21257         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21258         * reflection.h, reflection.c: add fixup mechanism for field and method
21259         tokens. Initialize assembly->typeref in a single place. Output
21260         properties after events. Support custom attributes for events, too.
21261         Typo fix for paramter custom attrs.
21262
21263 2002-03-07  Martin Baulig  <martin@gnome.org>
21264
21265         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21266
21267 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21268
21269         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21270
21271 2002-03-06  Martin Baulig  <martin@gnome.org>
21272
21273         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21274         non-zero lower bounds. See testcases #F10-#F13.
21275
21276 2002-03-05  Martin Baulig  <martin@gnome.org>
21277
21278         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21279
21280         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21281         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21282         here.
21283         (ves_icall_System_Array_SetValue): Likewise.
21284         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21285         as argument and does the actual work. This function is used when copying a
21286         multi-dimensional array.
21287         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21288         now do all the widening conversions of value types.
21289         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21290
21291 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21292
21293         * class.c: remove some magic numbers and use the smbolic names,
21294         instead. Added init_events() to load event info at class init time.
21295         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21296         and mono_metadata_methods_from_event().
21297         * reflection.h, reflection.c: added support for writing out the evnets
21298         related information.
21299
21300 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21301
21302         * reflection.h, icall.c: use a different method (GetInterfaces)
21303         to gather interface info and add isbyref, isprimitive and
21304         ispointer to the ves_icall_get_type_info() return value.
21305
21306 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21307
21308         * class.h: stared adding support for events.
21309         * icall.c: split find_members implementation. Added debug icall to get
21310         the address of an object.
21311         * reflection.c: handle TypeBuilders in mono_type_get_object().
21312
21313 2002-03-01  Martin Baulig  <martin@gnome.org>
21314
21315         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21316         ArgumentOutOfRangeException(), not an ArgumentException().
21317         (ves_icall_System_Array_GetLowerBound): Likewise.
21318         (ves_icall_System_Array_GetValue): Improved argument checking.
21319         (ves_icall_System_Array_SetValue): Improved argument checking.
21320
21321 2002-03-01  Martin Baulig  <martin@gnome.org>
21322
21323         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21324         called with invalid arguments rather than just dying with g_assert().
21325         (ves_icall_System_Array_SetValue): Likewise.
21326         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21327         raise a NotImplementedException instead.
21328         (ves_icall_System_Array_GetLength): Added argument checking.
21329         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21330
21331 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21332
21333         * object.h (mono_assert): new macros mono_assert and
21334         mono_assert_not_reached
21335
21336 2002-02-28  Martin Baulig  <martin@gnome.org>
21337
21338         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21339         and "System::String::IsInterned" to "System::String::_IsInterned".
21340
21341 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21342
21343         * icall.c: remove hacks for typebuilder. Added icall to create a
21344         modified type from a tybebuilder.
21345         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21346         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21347         to create a backing MonoClass for a TypeBuilder.
21348
21349 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21350
21351         * class.c, class.h: more refactoring of class init.
21352         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21353
21354 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21355
21356         * marshal.c, marshal.h: start of marshaling interface.
21357
21358 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21359
21360         * icall.c: fix order in assembly qualified name icall.
21361
21362 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21363
21364         * class.c: do not free str, since we store it in the hash table.
21365         * reflection.h: add label field to MonoILExceptionInfo.
21366         * reflection.c: handle references to more than one assembly. Handle
21367         case when there isn't a module created in the assembly.
21368
21369 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21370
21371         * class.c: Fix typo. Start refactoring of class init code.
21372
21373 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21374
21375         * appdomain.c: exit with 1 on error.
21376         * class.c: we already have the name in MonoClassField.
21377         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21378         MonoStreamHeader instead of an offset of image->raw_metadata.
21379
21380 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21381
21382         * appdomain.c (mono_init): Be even more descriptive about the error.
21383
21384 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21385
21386         * appdomain.c: give the user an informative message when corlib can't
21387         be loaded.
21388
21389 2002-02-26  Martin Baulig  <martin@gnome.org>
21390
21391         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21392         New icall to get the time zone data.
21393
21394 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21395
21396         * reflection.c: set virtual and raw size of section correctly.
21397         * threads.c: transfer domain information to newly created threads.
21398
21399 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21400
21401         * class.c: when instancing a class in a domain, load the default
21402         vaules for static fields from the constant table. Fix System.Enum to
21403         not be an enum.
21404         * icall.c: implement Object::GetType() internalcall. Implemented
21405         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21406         Fixed checking of binding flags in find_members().
21407         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21408         * reflection.c: handle enumerations when writing to the constant
21409         table. Use a different object cache for types.
21410
21411
21412 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21413
21414         * object.c (mono_object_isinst): fix for arrays
21415
21416         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21417
21418 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21419
21420         * object.c: don't use mprotect ()  and fix intern pool hash table
21421         lookup for big endian systems.
21422
21423 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21424
21425         * icall.c: change type_is_subtype_of () signature.
21426
21427 2002-02-21  Mark Crichton  <crichton@gimp.org>
21428
21429         * rand.c, rand.h: Added random number generator for
21430         System.Security.Cryptography classes.
21431
21432         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21433
21434         * icall.c: Added System.Security.Cryptography calls.
21435
21436 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21437
21438         * class.c, icall.c, metadata.c: better support for pointer types.
21439         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21440         * reflection.c: Add support for getting custom attrs for properties
21441         and simplify some code.
21442
21443 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21444
21445         * icall.c: change getToken () and add custom attribute GetBlob()helper
21446         method.
21447         * reflection.h: add custom attrs array to the reflection builder structures.
21448         * reflection.c: encode and emit custom attributes for all the relevant
21449         reflection objects. Cache fieldref and methodref tokens. Change
21450         mono_image_create_token() interface to take a MonoDynamicAssembly.
21451         More complete custom attributes decoder. Load custom attributes for
21452         Assembly, Field, Method and Constructor objects, too. Make the
21453         returned array an Attribute[] one, not object[]. Added
21454         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21455         custom attribute constructor.
21456
21457 2002-02-20  Dick Porter  <dick@ximian.com>
21458
21459         * icall.c:
21460         * rawbuffer.c:
21461         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21462         problem code out for now).
21463
21464 2002-02-19  Radek Doulik  <rodo@ximian.com>
21465
21466         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21467
21468 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21469
21470         * icall.c: register the GetCustomAttributes method.
21471         * object.c, object.h: add mono_string_new_len ().
21472         * reflection.h, reflection.c: added mono_runtime_invoke(),
21473         mono_install_runtime_invoke(). Added
21474         mono_reflection_get_custom_attrs () to load custom attributes and
21475         create the attribute objects.
21476
21477 2002-02-19  Dick Porter  <dick@ximian.com>
21478         * threads-dummy-types.c:
21479         * threads-dummy-types.h:
21480         * threads-dummy.c:
21481         * threads-dummy.h:
21482         * threads-pthread-types.c:
21483         * threads-pthread-types.h:
21484         * threads-pthread.c:
21485         * threads-pthread.h:  Deleted obsolete files
21486
21487 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21488
21489         * class.c (mono_class_vtable): runtime init the class when we
21490         allocate static class data.
21491
21492         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21493
21494         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21495         and String - but we will need generic marshalling support in the
21496         future. 
21497         (mono_init): set the domain name in a ms compatible way
21498
21499         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21500         String[].
21501
21502 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21503
21504         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21505         for sizes
21506
21507         * appdomain.c (mono_domain_unload): impl.
21508
21509 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21510
21511         * appdomain.c, object.c: fix intern pool implementation.
21512         * class.c: fix alignment code.
21513
21514 2002-02-16  Radek Doulik  <rodo@ximian.com>
21515
21516         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21517         and s2 > s1, just copy lower bytes to be compatible with little
21518         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21519         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21520
21521         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21522         force big_endian to be 1 for big endian machines 
21523         (ves_icall_iconv_new_decoder): ditto
21524
21525 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21526
21527         * socket-io.c (convert_sockopt_level_and_name): If the system
21528         doesn't define SOL_IP or SOL_TCP, get them by hand using
21529         getprotobyname() and caching the values (because this could be a
21530         slow operation).
21531         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21532         Use the appropriate struct when the system does support it. Ie,
21533         not all systems have struct ip_mreqn so use struct ip_mreq when
21534         appropriate.
21535
21536 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21537
21538         * reflection.c: handle finally clauses.
21539
21540 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21541
21542         * socket-io.c: use g_snprintf() instead of snprintf.
21543
21544 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21545
21546         * reflection.c (mono_param_get_objects): Cast second argument to
21547         mono_method_get_param_names to a const char** to silence the
21548         compiler warning.
21549
21550         * appdomain.c (mono_domain_assembly_open): Put parens around the
21551         truth statement in the for-loop.
21552
21553         * unicode.c (iconv_convert): Got rid of a compiler warning about
21554         int i being unused when the system has a new iconv.
21555         (iconv_get_length): Same.
21556
21557         * image.c (load_class_names): Cast the second argument to
21558         g_hash_table_insert() to char* to hush compiler warnings about the
21559         arg being a const.
21560         (mono_image_open): Same here.
21561
21562         * socket-io.c: Don't conditionally include sys/filio.h or
21563         sys/sockio.h here anymore since we now get them from
21564         io-layer/io-layer.h
21565         (inet_pton): If the system doesn't support inet_aton, implement
21566         using inet_addr and also #define INADDR_NONE if it isn't defined
21567         by the system.
21568
21569 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21570
21571         * metadata.c, metadata.h: added function to get packing and size info
21572         of a typedef.
21573         * reflection.h, reflection.c: handle field RVA data. Save info about
21574         the table layout if needed. Assign typedef indexes to all the types
21575         before dumping the info about them to avoid forward reference problems.
21576
21577 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21578
21579         * socket-io.c (convert_sockopt_level_and_name): ifdef
21580         SO_ACCEPTCONN because it is not defined on my system (old debian)
21581
21582 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21583
21584         * opcode.c: use stddef.h to get NULL.
21585
21586 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21587
21588         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21589         for FIONBIO, FIONREAD and SIOCATMARK.
21590         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21591         define INADDR_NONE and besides, inet_addr() is deprecated and
21592         should not be used. Use inet_pton() instead - it also has the
21593         added bonus that it can easily handle IPv6 addresses as well.
21594         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21595
21596 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21597
21598         * decimal.c: remove _MSC_VER conditional.
21599
21600 2002-02-13  Dick Porter  <dick@ximian.com>
21601
21602         * socket-io.c: 
21603         * icall.c: Internal calls for Blocking, Select, Shutdown,
21604         GetSocketOption and SetSocketOption
21605
21606 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21607
21608         * assembly.cs: better resolver: use it instead of some kludgy
21609         code.
21610
21611 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21612
21613         * reflection.c: the best way to speed-up the compiler is to avoid
21614         infinite loops.
21615
21616 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21617
21618         * class.c (mono_class_vtable): changed the object layout
21619         (obj->vtable->class). 
21620         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21621
21622 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21623
21624         * assembly.c: look for assemblies in the assembly dir, too.
21625
21626 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21627
21628         * class.c: fix thinko in mono_class_from_type().
21629
21630 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21631
21632         * exception.h, exception.c: added TypeLoadException.
21633         * object.h, object.c: added mono_array_clone ().
21634         * icall.c: handle throwOnError in AssemblyGetType().
21635         Added Array.Clone().
21636         * opcode.h, opcode.c: use a single value for the opcode val.
21637         Compile fix for non-gcc compilers.
21638
21639 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21640
21641         * opcodes.c, opcodes.h: export interesting info about opcodes.
21642
21643 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21644
21645         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21646         icalls. 
21647
21648         * class.c (class_compute_field_layout): set element_class for enums
21649         (mono_class_create_from_typedef): set element_class for normal classes
21650
21651         * icall.c (ves_icall_System_Enum_get_value): impl.
21652
21653         * class.c (mono_class_create_from_typedef): do not set valuetype
21654         flag for System.ValueType and System.Enum
21655
21656 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21657
21658         * unicode.c (iconv_convert): fix big endian problem.
21659
21660 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21661
21662         * class.c: add asserts if we are ever going to scribble over memory.
21663         * socket-io.c: not all systems have AF_IRDA defined.
21664
21665 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21666
21667         * class.c (class_compute_field_layout): do not consider static
21668         fields to compute alignment
21669
21670 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21671
21672         * appdomain.c (mono_appdomain_get): impl.
21673         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21674
21675 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21676
21677         * icall.c: ignore "file://" prefix when loading an assembly.
21678
21679 2002-01-23  Dick Porter  <dick@ximian.com>
21680
21681         * socket-io.c:
21682         * icall.c:
21683         * Makefile.am: Added socket support
21684
21685 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21686
21687         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21688         code back.  This should return the assemblies that are loaded by
21689         the runtime on behalf of an application domain. 
21690
21691         The current implementation is still broken, it just returns every
21692         assembly loaded, but until we get real applications domain this
21693         will do.
21694
21695 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21696
21697         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21698         AppDomain object.
21699
21700 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21701
21702         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21703         the mono_class_from_name lookup.
21704         (ves_icall_get_parameter_info): ditto.
21705         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21706         method.
21707         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21708
21709 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21710
21711         * class.c: load also nested classes on class init.
21712         System.ValueType instance methods gets passed boxed
21713         values, unless methods in derived classed that get a pointer to the
21714         data.
21715         * icall.c: use better name parsing code in GetType().
21716         * image.c, image.h: add mono_image_loaded ().
21717         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21718         * reflection.c, reflection.h: added mono_reflection_parse_type().
21719
21720 2002-01-22  Veronica De Santis <veron78@interfree.it>
21721
21722         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21723         * threads.c : Added the implementation of internal calls for events
21724         * threads.h : Added prototypes of internal calls for events
21725         
21726 2002-01-21  Radek Doulik  <rodo@ximian.com>
21727
21728         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21729
21730 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21731
21732         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21733         (mono_class_value_size): use min_align
21734
21735 2002-01-20  Dick Porter  <dick@ximian.com>
21736
21737         * threads.h:
21738         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21739         so it compiles on w32.
21740
21741 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21742
21743         * metadata.c (mono_type_stack_size): impl.
21744
21745         * class.c (mono_class_get_field): impl. memberref token
21746
21747 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21748
21749         * icall.h : Added the internal calls mapping for CreateMutex_internal
21750                     and ReleaseMutex_internal.
21751         * threads.h : Added the prototype of mutexes internal calls.
21752         * threads.c : Added the implementations of mutexes internal calls.
21753
21754 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21755
21756         * metaparse.h: removed unused file.
21757         * reflection.c, reflection.h: added stream_data_align () function 
21758         to align data in streams and keep stream aligned. Add support for
21759         exception support in method headers.
21760
21761 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21762
21763         * unicode.c: make iconv_convert () return the number of bytess written
21764         in the output buffer.
21765
21766 2002-01-15  Dick Porter  <dick@ximian.com>
21767         * threads.c: Make the runtime's idea of infinite timeouts coincide
21768         with the class library's
21769
21770         Fix a particularly egregious bug in mono_thread_cleanup(). That
21771         code was so utterly bogus it must have been written on a Monday.
21772
21773 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21774
21775         * reflection.h: add subtypes field to TypeBuilder.
21776         * reflection.c: encode constants for literal fields.
21777         Handle subtypes. Fix user string token (and add a zero byte)
21778         at the end.
21779         
21780 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21781
21782         * class.c (mono_class_init): bug fix: assign slot numbers for
21783         abstract methods.
21784
21785 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21786
21787         * reflection.c: don't try to output a code RVA for abstract methods.
21788         Small fixes for method header format. Output parameter info to the
21789         ParamDef table. Save method overriding info to MethodImpl table.
21790         Fix property support. Allow typedef.extends to be a type in the
21791         building assembly.
21792         * verify.c: fix off-by-one error.
21793
21794 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21795
21796         * class.c: fix mono_class_from_mono_type () for szarray types.
21797         Remove unused cache check in mono_class_from_type_spec().
21798         * icall.c: *type_from_name () functions handle simple arrays and byref.
21799         * reflection.c: handle byref and szarray types. Handle methods without
21800         body (gets P/Invoke compilation working). Handle types and fields in
21801         get_token ().
21802         * reflection.h: add rank to MonoTypeInfo.
21803
21804 2002-01-10  Dick Porter  <dick@ximian.com>
21805
21806         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21807         internal calls
21808
21809 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21810
21811         * icall.c: initialize class in type_from_handle ().
21812         Loop also in parent classes for get_method ().
21813         * reflection.c: properly encode class and valuetype types.
21814         Start on encoding TypeBuilder types. Handle fieldrefs.
21815         Use correct length when registering a user string.
21816         Handle ConstructorBuilder and MonoMethod in get_token ().
21817         Make mono_type_get_object () aware of cached types.
21818         * object.c: back out change to mono_string_new ().
21819
21820 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21821         * object.c: mono_string_new should return a NULL when the string 
21822         passed in is NULL -- not try to deference it.
21823         
21824 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21825
21826         * icall.c: hack to make IsSubType work for TypeBuilders.
21827         * reflection.c: emit constructors before methods.
21828         Retrieve param names in mono_param_get_objects().
21829
21830 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21831
21832         * Makefile.am: fix list of headers and sources so automake 1.5
21833         doesn't complain. Removed \# at end of list.
21834
21835 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21836
21837         * reflection.c: get token for a method ref. Set return type of
21838         constructor to void.
21839         * loader.c: debug message.
21840         * class.c: typo fix.
21841
21842 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21843
21844         * icall.c: fix array init with rank > 1. FindMembers
21845         loops in parent class as well.
21846         * image.c: do not insert nested types in name cache.
21847         * reflection.c: warning fix.
21848         * reflection.h: add override method (for interface impl).
21849
21850 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21851
21852         * metadata.c: fix customattr decoding.
21853
21854 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21855
21856         * rawbuffer.cs: Added native Win32 implementation, avoids using
21857         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21858
21859 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21860
21861         * class.c: make the low-level routines handle the cache.
21862
21863 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21864
21865         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21866
21867 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21868
21869         * class.c: fix mono_array_element_size() for objects.
21870         * class.h, class.c: add properties to MonoClass and load them
21871         at init time.
21872         * icall.c: check with isinst() when assigning a value to an array
21873         instead of requiring the classes to match exactly.
21874         Implemented icall for System.Type::GetType().
21875         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21876         enums. Handle bindingflags when looking for methods and fields.
21877         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21878         and mono_metadata_methods_from_property().
21879         * reflection.h, reflection.c: added structures for propreties,
21880         parameters and enums. Implemented mono_property_get_object() and
21881         mono_param_get_objects().
21882
21883 2001-12-18  Dick Porter  <dick@ximian.com>
21884
21885         * file-io.c: Use mono_string_to_utf16() instead of
21886         mono_string_chars()
21887
21888         * object.c: Added mono_string_to_utf16(), which copies the non
21889         NULL-terminated MonoString into a new double-null-terminated
21890         buffer.
21891
21892 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21893
21894         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21895
21896 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21897
21898         * file-io.c: raise exceptions if handle is invalid.
21899
21900 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21901
21902         * assembly.c: yet another check for mscorlib.
21903         * class.c, class.h: load nesting info for classes.
21904         * icall.c: many new functions to support the Reflection classes.
21905         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21906         * reflection.h, reflection.c: mono_image_create_token(),
21907         mono_assembly_get_object(), mono_type_get_object(),
21908         mono_method_get_object(), mono_field_get_object(): methods to return
21909         objects that parallel the C representation of assemblies, types,
21910         methods, fields.
21911
21912 2001-12-11  Dick Porter  <dick@ximian.com>
21913
21914         * icall.c:
21915         * file-io.c: Internal calls for file IO.
21916
21917 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21918
21919         * tabledefs.h: missing FileAttributes.
21920         * verify.h, verify.c: use is_valid_string () to simplify and check for
21921         valid strings more correctly. Fix warnings and speeling.
21922         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21923         Check code: branches, maxstack, method calls.
21924
21925 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21926
21927         * object.c (mono_object_allocate): removed static, so that the jit
21928         can allocate value types.
21929
21930         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21931
21932 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21933
21934         * class.c: init enum types right away and register the
21935         token->MonoClass map in mono_class_create_from_typedef ().
21936         * verify.h, verify.c: first cut of the verifier.
21937         * pedump.c: add --verify switch to verify metadata tables.
21938         * tabledefs.h: add some missing enums.
21939
21940 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21941
21942         * class.c (mono_install_runtime_class_init): impl.
21943         (mono_class_init): renamed mono_class_metadata_init to
21944         mono_class_init, also removed the metadata_inited flag
21945
21946         * object.c (mono_object_isinst): use faster algorithm
21947
21948 2001-11-30  Radek Doulik  <rodo@ximian.com>
21949
21950         * mono-endian.h: reverted last change
21951         added function prototypes
21952
21953         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21954         add mono-endian.c back
21955
21956         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21957         for unaligned access, I've mistaked it with endianess. I am
21958         sorry.
21959         (mono_read16): fix reverted endianess
21960         (mono_read64): ditto
21961         (mono_read32): ditto
21962
21963 2001-11-30  Dick Porter  <dick@ximian.com>
21964
21965         * exception.c: Implement mono_exception_from_name()
21966
21967 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21968
21969         * metadata.h, metadata.c: remove params_size and locals_size and their
21970         calculation from the metadata code: they are only usefult to the
21971         interp.
21972
21973 2001-11-29  Radek Doulik  <rodo@ximian.com>
21974
21975         * object.c (mono_ldstr): swap bytes here, it's probably not the
21976         best place, but works for me now, I'll redo it once I know mono
21977         better, also note that I add PROT_WRITE and don't reset back, also
21978         note that it's only affects big endians, so x86 should be OK
21979
21980         * mono-endian.h (read16): use just glib macros for both endians
21981
21982         * mono-endian.c: removed as glib macros are used in in
21983         mono-endian.h so we don't need to care about endianess for read
21984         macros as glib does that for us already
21985
21986 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21987
21988         * class.h, class.h: take minimum alignment into consideration so
21989         that the fields of a class remain aligned also when in an array.
21990
21991 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21992
21993         * loader.h, loader.c: add mono_method_get_param_names().
21994         * class.c: 0-init class fields.
21995
21996 2001-11-26  Dick Porter  <dick@ximian.com>
21997
21998         * icall.c:
21999         * threads-types.h:
22000         * threads.c: New file that handles System.Threading on all platforms
22001
22002         * object.c: 
22003         * object.h: Remove the synchronisation struct from MonoObject,
22004         replace it with a pointer that gets initialised on demand
22005
22006         * Makefile.am: Replace all the system-specific threading code with
22007         a single file that uses the new wrapper library
22008
22009 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22010
22011         * class.c, class.h: add mono_install_trampoline() so that the runtime
22012         can register a function to create a trampoline: removes the ugly
22013         requirement that a runtime needed to export arch_create_jit_trampoline.
22014         * object.h, object.c: added mono_install_handler() so that the runtime
22015         can install an handler for exceptions generated in C code (with
22016         mono_raise_exception()). Added C struct for System.Delegate.
22017         * pedump.c: removed arch_create_jit_trampoline.
22018         * reflection.c: some cleanups to allow registering user strings and
22019         later getting a token for methodrefs and fieldrefs before the assembly
22020         is built.
22021         * row-indexes.h: updates and fixes from the new ECMA specs.
22022
22023 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22024
22025         * class.h, class.c: add enum_basetype field to MonoClass.
22026         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22027         to get index in the constant table reated to a field, param or
22028         property.
22029         * reflection.h, reflection.c: handle constructors. Set public-key and
22030         version number of the built assembly to 0.
22031         * row-indexes.h: update from new ECMA spec.
22032
22033 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22034
22035         * class.h, class.c: add a max_interface_id to MonoClass.
22036         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22037         since it's used to do that. Added mono_type_type_from_obj().
22038         Make GetType() return NULL instead of segfaulting if the type was not
22039         found. Handle simple arrays in assQualifiedName.
22040         * object.h: add a struct to represent an Exception.
22041         * reflection.c: output call convention in method signature.
22042         Add code to support P/Invoke methods and fixed offsets for fields.
22043
22044 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22045
22046         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22047         the value.
22048         * icall.c: use mono_array_addr instead of array->vector: fixes the
22049         reflection image writing.
22050         * reflection.c: init call convention byte to 0 in method signature.
22051         Encode the property signature. Don't output property-related methods
22052         twice. Really process the properties for a type (don't cast a field to
22053         a property, my mom always told me that).
22054         Fix 64 bit issues in pointer alignment in a different and more
22055         readable way.
22056
22057 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22058
22059         * loader.h: Removed type class from MonoDefaults, added monotype
22060
22061         * loader.c: Loaded MonoType, removed loading of Type
22062
22063         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22064         and fills in System.Type._impl with a RuntimeTypeHandle rather
22065         than the actual MonoClass *
22066
22067         (ves_icall_type_from_handle): change from type_class to
22068         monotype_class
22069
22070         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22071         implemented
22072
22073         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22074         implemented
22075
22076         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22077
22078         (ves_icall_System_Reflection_Assembly_GetType): implemented
22079
22080         (ves_icall_System_MonoType_assQualifiedName): implemented
22081
22082         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22083
22084 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22085
22086         * assembly.c (mono_assembly_open): Implement a cache for the
22087         assemblies. 
22088
22089         (mono_assembly_close): only destroy the assembly when the last
22090         reference is gone.
22091         
22092 2001-11-09  Dick Porter  <dick@ximian.com>
22093
22094         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22095
22096 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22097
22098         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22099
22100 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22101
22102         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22103         from Martin Weindel.
22104         * object.h: add mono_string_chars ().
22105
22106 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22107
22108         * reflection.c (build_compressed_metadata): Eliminates warnings
22109         and uses 64-bit clean code.
22110
22111         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22112         (mono_type_equal): Change signature to eliminate warnings.
22113
22114 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22115
22116         * icall.c, loader.c: remove the internalcall array constructors.
22117         Changes to match the new MonoArray structure.
22118         * object.h, object.c: an array object doesn't allocate an extra
22119         vector. Add mono_array_new_full () to create jagged arrays easily.
22120
22121 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22122
22123         * metadata.h, metadata.c: add mono_metadata_field_info () to
22124         retreive all the info about a field from vairous tables.
22125         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22126         * class.h, class.c: augment MonoClassField with more info.
22127         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22128         policy and load a field's RVA if needed.
22129
22130 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22131
22132         * class.c (mono_class_metadata_init): create a trampoline for all
22133         virtual functions instead of actually compiling them.
22134
22135 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22136
22137         * class.h, class.c: include name in MonoClassField.
22138         * class.c: fix fundamental type of System.Object and System.String.
22139         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22140         tokens in ldtoken.
22141         * icall.c: remove internalcalls for the Reflection stuff that is now
22142         done in C# code.
22143         * loader.c: mono_field_from_memberref () implementation.
22144         * mono-endian.c: thinko (s/struct/union/g).
22145         * object.c, object.h: make the mono_string_* prototypes actually use
22146         MonoString instead of MonoObject.
22147         * reflection.c, reflection.h: updates for changes in the reflection
22148         code in corlib: we use C structures that map to the actual C# classes.
22149         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22150         fat method header if needed and use the info from the ILGenerator for
22151         methods. Handle fields in types. Misc fixes.
22152
22153 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22154
22155         * class.c (mono_class_metadata_init): bug fix: always allocate
22156         space for static class data
22157
22158 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22159
22160         * class.c (mono_compute_relative_numbering): use relative
22161         numbering to support fast runtime type checks.
22162
22163 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22164
22165         * class.c (mono_class_create_from_typeref): added debugging output
22166         to print class name when MonoDummy is returned instead of real class
22167
22168 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22169
22170         * class.c (mono_class_metadata_init): interface offset table now
22171         contains pointers into the vtable - this is more efficient for the jit
22172
22173 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22174
22175         * class.c (mono_class_metadata_init): use a temporary vtable (the
22176         old algorithm only worked for the interpreter, but not for the jit)
22177
22178 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22179
22180         * loader.c (method_from_memberref): use mono_class_get to get the
22181         class of an array instead of using System.Array directly.
22182         (mono_get_method): also add MEMBERREF methods to the method cache
22183         which usefull for arrays.
22184
22185 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22186
22187         * pedump.c (arch_compile_method): added to compute vtable entry
22188
22189         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22190         number of interfaces.
22191         
22192         * class.h: merged MonoArrayClass into MonoClass
22193
22194         * class.c (mono_class_create_from_typedef): compute the vtable size and
22195         allocate space to include the vtable inside MonoClass
22196         (mono_class_metadata_init): initialize the vtable
22197
22198 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22199
22200         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22201         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22202         * image.c: endian fixes by Laurent Rioux.
22203         * object.h, object.c: rename MonoStringObject to MonoString and
22204         MonoArrayObject to MonoArray. Change some function names to conform to
22205         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22206         guint16* as first argument, so don't use char*.
22207         Provide macros to do the interesting things on arrays in a portable way.
22208         * threads-pthread.c: updates for the API changes and #include <sched.h>
22209         (required for sched_yield()).
22210         * icall.c: updates for the API changes above.
22211         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22212         platforms that need them.
22213
22214 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22215
22216         * class.c: set the correct type for all the fundamental
22217         type when loading the class.
22218
22219 2001-10-05  Dick Porter  <dick@ximian.com>
22220
22221         * threads-pthread.c (pthread_mutex_timedlock): Simple
22222         compatibility version for C libraries that lack this call.
22223
22224 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22225
22226         * class.c: MonoTypes stored in MonoClass are stored as
22227         fundamental MonoTypes when the class represents a
22228         fundamental type (System.Int32, ...).
22229         The TypeHandle return by ldtoken is a MonoType*.
22230         * icall.c: ves_icall_get_data_chunk () write out all the
22231         PE/COFF stuff. Implement ves_icall_define_method (),
22232         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22233         * image.c: properly skip unknown streams.
22234         * loader.h, loader.c: add type_class to mono_defaults.
22235         * metadata.c, metadata.h: export compute_size () as
22236         mono_metadata_compute_size () with a better interface.
22237         Typo and C&P fixes.
22238         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22239         * reflection.c, reflection.h: many cleanups, fixes, output method
22240         signatures and headers, typedef and typeref info, compress the metadata
22241         tables, output all the heap streams, cli header etc.
22242         * row-indexes.h: typo fixes.
22243
22244 2001-10-04  Dick Porter  <dick@ximian.com>
22245
22246         * object.h: Add a synchronisation mutex struct to MonoObject
22247
22248         * object.c (mono_new_object): Initialise the object
22249         synchronisation mutexes
22250
22251         * icall.c: System.Threading.Monitor internal calls
22252         
22253         * threads-pthread.h:
22254         * threads-pthread.c: System.Threading.Monitor internal calls
22255
22256         * threads-types.h: New file, includes the system-specific thread
22257         structures
22258         
22259         * threads-pthread-types.h:
22260         * threads-pthread-types.c: New files, handle pthread-specific
22261         synchronisation types
22262
22263         * threads-dummy-types.h: 
22264         * threads-dummy-types.c: New files of dummy support for
22265         thread-specific types
22266
22267         * metadata.c:
22268         * image.c:
22269         * pedump.c: include mono-endian.h not endian.h
22270         
22271         * Makefile.am: More threads files.
22272         Name mono-endian.h not endian.h
22273
22274 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22275
22276         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22277         stuff and implement a few more bits.
22278         * icall.c: a field needs to be dereferenced twice. Do not use the same
22279         name for two variables in the same scope.
22280         * image.c, image.h: cleanups.
22281
22282 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22283
22284         * class.c (mono_class_metadata_init): bug fix: compute the right size
22285
22286 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22287
22288         * icall.c: implemented some of the Reflection internalcalls.
22289         * image.c, image.h: start writing out the PE/COFF image.
22290         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22291         that does the reverse than decode_blob_size ().
22292         * object.c: use mono_metadata_encode_value (). Move here
22293         temporary implementation of mono_string_to_utf8 ().
22294         * rawbuffer.c: make malloc_map static.
22295
22296 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22297
22298         * metadata.c: fix type comparison for arrays.
22299         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22300         Added a couple of new classes to monodefaults.
22301         * icall.c: added a couple of Reflection-related internalcalls.
22302         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22303         Added a byval_arg MonoType to MonoClass.
22304
22305 2001-09-28  Dick Porter  <dick@ximian.com>
22306
22307         * icall.c:
22308         * threads-pthread.h: 
22309         * threads-pthread.c: Implemented internal calls for
22310         LocalDataStoreSlot operations.  Applied mutexes around all shared
22311         data.  Reworked the thread creation and Start() operations to
22312         avoid a race condition.
22313         
22314         * threads-dummy.h:
22315         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22316
22317 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22318
22319         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22320
22321 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22322
22323         * class.c, loader.c: warn and return NULL instead of erroring out.
22324         * icall.c: added System.AppDomain::getCurDomain().
22325         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22326
22327 2001-09-25  Dick Porter  <dick@ximian.com>
22328
22329         * threads-pthread.h:
22330         * threads-pthread.c: Implemented timed thread joining and added
22331         System.Threading.Thread::Join_internal internal call
22332
22333         * icall.c: Added System.Threading.Thread::Join_internal internal call
22334
22335         * threads-dummy.h:
22336         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22337
22338 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22339
22340         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22341         mono_string_intern () to implement the semantics of the ldstr opcode
22342         and the interning of System.Strings.
22343         * icall.c: provide hooks to make String::IsIntern and String::Intern
22344         internalcalls.
22345
22346 2001-09-23  Dick Porter  <dick@ximian.com>
22347
22348         * threads-dummy.c: 
22349         * threads-dummy.h: New files of dummy threading routines
22350
22351         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22352         support code based on system specifics
22353
22354         Rename PTHREAD_LIBS to THREAD_LIBS
22355         
22356 2001-09-23  Dick Porter  <dick@ximian.com>
22357
22358         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22359         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22360         internal calls.
22361         (mono_thread_init): Set up a Thread object instance to return when
22362         the main thread calls Thread.CurrentThread
22363         (mono_thread_cleanup): Wait for all subthreads to exit
22364
22365         * icall.c: New internal calls for System.Threading.Thread::Sleep
22366         (including Schedule) and CurrentThread
22367
22368         * threads.h: New file, to insulate thread-specific stuff from the
22369         rest of the code
22370
22371 2001-09-21  Dick Porter  <dick@ximian.com>
22372
22373         * threads-pthread.h: 
22374         * threads-pthread.c: New file, for handling pthreads-style
22375         threading support.  Start() now starts a new thread and executes
22376         the ThreadStart delegate instance.
22377
22378         * icall.c: Added the internalcall for
22379         System.Threading.Thread::Start_internal
22380
22381         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22382
22383 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22384
22385         * loader.c: work around the different signatures for delegates
22386         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22387
22388 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22389
22390         * class.h, class.c: add mono_class_get_field_from_name ().
22391         * *: Fix C comments and other ANSI C issues.
22392
22393 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22394
22395         * endian.h, assembly.c: fix some endianness issues.
22396
22397 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22398
22399         * loader.h, load.c: add delegate_class to mono_defaults.
22400         Handle runtime provided methods in mono_get_method ().
22401
22402 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22403
22404         * loader.c (mono_get_method): use pinvoke for internal call
22405
22406         * icall.c: use pinvoke for internal call
22407
22408         * loader.c (method_from_memberref): set the method name
22409
22410 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22411
22412         * metadata.c: help the compiler generate better code for
22413         mono_class_from_mono_type ().
22414
22415 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22416
22417         * class.c (mono_class_metadata_init): delayed computing of the
22418         class size to mono_class_metadata_init ()
22419
22420 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22421
22422         * class.c, class.h: add an interfaces member to MonoClass.
22423         * image.c, image.h: add assembly_name field to MonoImage
22424         from the assembly table.
22425         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22426
22427 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22428
22429         * class.c: Handle Array in mono_class_from_mono_type ().
22430         * metadata.c, pedump.c: some endian fixes.
22431
22432 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22433
22434         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22435         * metadata.c: fix small problem introduced with the latest commit.
22436
22437 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22438
22439         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22440         We don't need a MonoMetadata pointer anymore to compare signatures in
22441         mono_metadata_signature_equal (), update callers.
22442         Reduced memory usage an number of allocations for MonoMethodHeader and
22443         MonoMethodSignature.
22444
22445 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22446
22447         * metadata.c: added compare for szarray.
22448
22449 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22450
22451         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22452         and add a couple more types to it and mono_defaults. Give an hint on
22453         classes that need implementing in our corlib and are referenced
22454         in mscorlib.
22455
22456 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22457
22458         * class.h, class.c: keep track if a class is also an Enum.
22459         * loader.c: Implement a couple more types for use in libffi
22460         marshalling. Gives better diagnostics when failing to dlopen
22461         a library. Set method->klass for P/Invoke methods, too.
22462
22463 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22464
22465         * class.c, class.h: add a MonoType this_arg to MonoClass that
22466         represents a pointer to an object of the class' type that
22467         can be used by the interpreter and later the type cache.
22468         Add best guess alignment info for valuetype objects.
22469
22470 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22471
22472         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22473         into MonoType: one less level of indirection and allocation and
22474         simplifies quite a bit of code. Added cache for MonoTypes that are
22475         used frequently, so that we don't need to allocate them all the time.
22476
22477 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22478
22479         * class.c (mono_class_create_from_typedef): System.Enum is also a
22480         value type, although it does not derive from System.ValueType
22481         (maybe a bug in the ms compiler?)
22482
22483         * metadata.c (mono_type_size): return the right size for value types
22484
22485         * loader.c (mono_get_method): only initialize method header if not abstract
22486
22487         * class.c (mono_class_from_mono_type): use mono_default values. 
22488
22489 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22490
22491         * *: use MonoClass pointers instead of <type_tokens>
22492         
22493         * class.h: new flag: metadata_inited.
22494
22495         * class.c (mono_class_metadata_init): impl.
22496         (mono_class_instance_size): impl.
22497         (mono_class_data_size): impl.
22498
22499 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22500
22501         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22502         MonoClass now has the name and name_space fields. 
22503         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22504         mono_get_method () takes and optional MonoClass as argument.
22505         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22506         instead that takes advantage of a map from class names to typedef
22507         tokens in MonoImage.
22508
22509 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22510
22511         * metadata.c: zero is not a valid alignment boundary.
22512         Merge MONO_TYPE_VOID in default decoding code.
22513
22514 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22515
22516         * image.h: merged MonoMetadata into MonoImage
22517
22518         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22519         identify the type of elements.
22520
22521 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22522
22523         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22524         * cil-coff.h: split MonoMSDOSHeader and add size info.
22525         * image.c: add some consistency checks.
22526         * metadata.c: fix row size computation: one programmer
22527         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22528         add explanation for the locator routine.
22529         Fix decoding of size in method header.
22530         
22531 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22532
22533         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22534         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22535         function from gnome-libs.  This uses the right path separator
22536         based on the OS, and also works around a bug in some systems where
22537         a double slash is not allowed. 
22538         (default_assembly_name_resolver): Use g_concat_dir_and_file
22539         (mono_assembly_open): ditto.
22540
22541 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22542
22543         * metadata.c (mono_metadata_signature_equal): impl.
22544
22545         * *: void is now a realy MonoType (instead of using NULL)
22546         
22547         * metadata.c (do_mono_metadata_parse_type): use
22548         mono_metadata_parse_type to parse void value.
22549
22550 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22551
22552         * metadata.c, metadata.h: in the signature and method header store
22553         only the space required for holding the loca vars and incoming arguments.
22554
22555 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22556
22557         * metadata.c (do_mono_metadata_parse_type): treat void like any
22558         other type (instead of assigning NULL);
22559
22560 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22561
22562         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22563
22564 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22565
22566         * image.c (do_mono_image_open): added a cache for arrays.
22567
22568 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22569
22570         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22571         decode a single column from a row in a metadata table and changes
22572         to take advantage of it in the typedef locator (gives a nice speed up).
22573         Store offset info for function params.
22574
22575 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22576
22577         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22578
22579 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22580
22581         * assembly.c: how could mono_assembly_close () had ever worked?
22582         * metadata.c, metadata.h: provide offset info for local vars.
22583         Implement mono_type_size () to take care of alignment as well
22584         as size (it was mono_field_type_size in cli/class.c before).
22585
22586 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22587
22588         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22589
22590         * assembly.h (CORLIB_NAME): set to corlib.dll
22591
22592         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22593
22594 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22595
22596         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22597         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22598         tokentype.h: massive namespace cleanup.
22599
22600 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22601
22602         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22603
22604 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22605
22606         * metadata.c (mono_metadata_free_type): added check for type !=
22607         NULL (void) before calling mono_metadata_free_type()
22608
22609 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22610
22611         * metadata.h, row_indexes.h: added header with enumerations to use
22612         to index in the columns from tables in metadata and to decode coded
22613         tokens: we should start using this instead of embedding magic numbers
22614         all over the code.
22615
22616 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22617
22618         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22619         Move metadata_t info from cli_image_info_t to MonoImage, where
22620         it's easily accessible. Changed all the uses accordingly.
22621         Added the method and class caches to MonoImage.
22622         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22623         and mono_metadata_decode_value () signature to be more consistent
22624         with the other parse functions (and simplify code). Taken advantage
22625         of zero-length array allocation with GCC. Removed reduntant (and
22626         wrong) MonoFieldType struct and use MonoParam instead. Changed
22627         mono_metadata_parse_field_type () to use common code for parsing.
22628         Added mono_metadata_typedef_from_field () and
22629         mono_metadata_typedef_from_method () to lookup a typedef index from a
22630         field or method token.
22631         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22632
22633 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22634
22635         * metadata.c (mono_metadata_parse_field_type): Implement. 
22636         (do_mono_metadata_parse_type): Split engine from
22637         mono_metadata_parse_type, so that we can create smaller structures
22638         for things that just have one pointer to the MonoType (look at
22639         the MonoFieldType)
22640
22641 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22642
22643         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22644         as Jan Gray found out, it is incorrect. 
22645
22646 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22647
22648         * assembly.c: Implement asssembly loading.  This loads an image
22649         and loads all the referenced assemblies.  Come to think of it, we
22650         could always do lazy loading of the assemblies. 
22651
22652         * image.c (mono_image_open): Keep loaded images in a hashtable.
22653
22654         * image.h (MonoImage): Add reference count.
22655
22656 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22657
22658         * assembly.c (mono_assembly_open): Keep track of the file name in
22659         case the assembly has no ASSEMBLY table.
22660
22661         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22662         from get.c here.
22663
22664 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22665
22666         * metadata.c, metadata.h: decode local vars in method header
22667         parse function. Change callers accordingly.
22668
22669 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22670
22671         * metadata.h, cil-coff.h: protect against multiple inclusion.
22672         Added some new structures to hold information decoded from metadata:
22673         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22674         and relevant decoding/free functions.
22675         * metadata.c: implement decoding functions. Add warning for out of bounds
22676         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22677         all the info about a method signature and invocation. Remove check on
22678         uninitialized local var in parse_mh() and fix memory leak.
22679
22680 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22681
22682         * metadata.h: More macros.
22683
22684         * tokentype.h: New file.
22685
22686 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22687
22688         * assembly.c: added a consistency check and initialize
22689         some structures with g_new0().
22690         * metadata.c: fixed a couple more bugs in table size computation
22691         and add other checks for out-of bound access to metadata.
22692
22693 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22694
22695         * metatada.c: fix bugs computing table sizes. Spew a
22696         warning when index in string heap is out of bounds.
22697
22698 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22699
22700         * metadata.h: Add a couple of macros to manipulate tokens. 
22701
22702 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22703
22704         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22705         cli_section_tables).
22706
22707 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22708
22709         * metadata.c (mono_metadata_user_string): New function, provides
22710         access to the UserString heap. 
22711
22712 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22713
22714         * metadata.c: Add inline documentation.
22715
22716 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22717
22718         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22719         files. 
22720
22721 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22722
22723         * typeattr.h: New file, TypeAttribute flags. 
22724
22725 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22726
22727         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22728         mono_assembly_ensure_section): Section loading code.
22729         (load_section_tables): Load the sections.
22730
22731         * mono/metadata/metadata.c (mono_metadata_locate_token,
22732         mono_metadata_locate): Functions to locate the information
22733         definition given a token or a table and an index.
22734         (mono_metadata_compute_table_bases): New.
22735         (compute_size): New function to compute the sizes of the various
22736         tables.
22737
22738         * mono/metadata/metadata.h: Finish listing the different index
22739         types. 
22740
22741         * mono/metadata/pedump.c: Improve to dump new information.
22742
22743 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22744
22745         * mono/metadata/metadata.c: Entered all the tables matching
22746         Beta2. 
22747
22748         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22749
22750
22751