2007-09-25 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-09-25  Martin Baulig  <martin@ximian.com>
2
3         * mono-debug.h
4         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
5
6 2007-09-24  Martin Baulig  <martin@ximian.com>
7
8         * mono-debug.h
9         (MonoDebugClassEntry): Moved the definition of this struct into
10         mono-debug.c to make it private.
11
12         * mono-debug.c
13         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
14         type table per symbol file, we don't need to store the symfile id
15         any longer.
16
17 2007-09-24  Martin Baulig  <martin@ximian.com>
18
19         Create one type table per symbol file, since a `MonoClass *' gets
20         invalid when its image is unloaded.
21
22         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
23         (MonoDebugHandle): Added `type_table'.
24
25 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
26
27         * mempool.c, mempool.h: added mono_mempool_new_size () API
28         to be able to specify a smaller initial size for the pool.
29         Adjusted the code to slowly increase pool size before using
30         the previous default size.
31         * image.c: use a small initial size for image mempools.
32
33 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
34
35         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
36         Fixes ##320990.
37
38         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
39         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
40
41 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
42
43         * metadata.c (mono_type_create_from_typespec): Remove an invalid
44         free. Fixes #327438.
45
46 2007-09-21  Raja R Harinath  <harinath@gmail.com>
47
48         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
49         generic instantiations, etc.
50         <MONO_TYPE_ARRAY>: Likewise.
51
52 2007-09-21  Martin Baulig  <martin@ximian.com>
53
54         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
55         these structs were never defined.
56         (MonoDebugHandle): Removed the `_priv' field, it was never used.
57
58 2007-09-21  Martin Baulig  <martin@ximian.com>
59
60         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
61
62 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
63
64         * image.c: removed the guid hash tables: we can get the same info
65         without the additional memory usage hit (partially fixes also bug #327052).
66
67 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
68
69         * profiler.h, profiler-private.h, profiler.c: add a new profiler
70         event to handle unloading methods. After the event is called, the
71         corresponding MonoMethod* must be considered invalid.
72         * loader.c (mono_free_method): call the new mono_profiler_method_free
73         event.
74
75 2007-09-20  Mark Probst  <mark.probst@gmail.com>
76
77         * domain-internals.h: New flag in MonoJitInfo which marks shared
78         generic methods.  New hash table (shared_generics_hash) in
79         MonoDomain to keep track of shared generic methods.  Prototypes
80         for functions to register and lookup shared generic methods.
81
82         * domain.c: Support for registering and looking up shared generic
83         methods via a hash table (shared_generics_hash) in MonoDomain.
84
85         * class-internals.h: New exception to signal failure of shared
86         compilation of a generic method.  New counters for generics
87         sharing in MonoStats.
88
89 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
90
91         * image.c, metadata-internals.h: don't keep a file descriptor open
92         for loaded assemblies (bug#325988).
93
94 2007-09-19  Raja R Harinath  <rharinath@novell.com>
95
96         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
97         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
98         use the corresponding datatypes.
99         (type_in_image): Update to changes.
100         (CleanForImageUserData): Simplify.
101         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
102         Avoid quadratic behaviour in handling the "stolen" list by
103         separating the filter predicate out, and by prepending the stolen
104         items rather than appending them.
105         (steal_ginst_in_image): Likewise.
106         (mono_metadata_clean_for_image): Update to changes.
107
108 2007-09-19  Martin Baulig  <martin@ximian.com>
109
110         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
111
112 2007-09-19  Martin Baulig  <martin@ximian.com>
113
114         * mono-debug.c (mono_debug_cleanup): Don't call
115         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
116
117 2007-09-19  Raja R Harinath  <harinath@gmail.com>
118
119         Fix crash on 'make run-test' in mcs/errors
120         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
121         Avoid more potential allocations in mono_class_from_mono_type.
122         (ginst_in_image): Update to changes.
123         (gclass_in_image): Rearrange slightly.
124
125 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
126
127         * class.c (mono_class_init): Move the code that sets up class->methods to 
128         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
129
130         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
131         canonical instance of an inflated generic signature.
132         (mono_type_create_from_typespec): Remove an invalid free.
133
134         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
135
136 2007-09-18  Marek Habersack  <mhabersack@novell.com>
137
138         * domain-internals.h: added a declaration of the
139         mono_assembly_load_full_nosearch internal function.
140
141         * assembly.c (mono_assembly_load_with_partial_name): use
142         mono_try_assembly_resolve return value properly.
143         (mono_assembly_load_full_nosearch): copied the function body from
144         mono_assembly_load_full, without the code to invoke assembly
145         search hooks.
146         (mono_assembly_load_full): calls the above new function and if the
147         assembly is not resolved, invokes the search hooks.
148
149         * appdomain.c (mono_runtime_init): restore the global postload
150         assembly search handlers.
151
152 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
153
154         * class.c (mono_class_init): Make sure class->methods and class->properties
155         are never NULL in the generics case.
156
157         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
158
159 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
160
161         * metadata.c (free_generic_class): Disable some code to fix the build.
162
163         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
164
165         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
166         from the image mempool.
167
168         * metadata.c (free_generic_class): Free more data from the inflated class.
169
170         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
171
172         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
173         mempool.
174         (mono_type_create_from_typespec): Ditto.
175
176         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
177         MonoImage to the caller.
178         (mono_init_internal): Save the opened image in a global variable.
179         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
180
181         * reflection.c (resolve_object): Fix a leak.
182
183         * metadata.c: Fix the freeing of data in the generics caches.
184         
185         * metadata.c (free_generic_inst): Comment this out to fix the build.
186         (free_generic_class): Ditto.
187
188         * metadata.c: Free cached generic methods, instantinations and classes when
189         they are removed from the caches.
190         (mono_metadata_free_type): Free the type itself.
191
192         * class.c: Free the result of mono_class_inflate_generic_type () in a few
193         places.
194
195 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
196
197         * boehm-gc.c: restrict managed allocs to __thread supporting
198         architectures.
199
200 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
201
202         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
203         (mono_generic_class_get_class): Fix a leak.
204
205         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
206         mono_metadata_free_type ().
207         (mono_metadata_inflate_generic_inst): Fix a leak.
208
209 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
210
211         * mono-debug.c (free_header_data): Fix a leak missed earlier.
212
213         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
214         mempool.
215
216         * mono-debug.c (mono_debug_close_image): Fix call to 
217         g_hash_table_remove ().
218
219 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
220
221         * icall-def.h: redirect all the string ctor to the managed
222         CreateString () methods.
223         * string-icalls.c, string-icalls.h: removed dead code for string
224         ctors and icalls.
225
226 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
227
228         * mono-debug.c: Fix memory leaks.
229
230 2007-09-14  Jonathan Chambers <joncham@gmail.com>
231
232         * threads-types.h: Implement mono_hazard_pointer_set and 
233         mono_hazard_pointer_clear macros using do/while(0) to fix
234         compilation with MSVC.
235         
236         Code is contributed under MIT/X11 license.
237
238 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
239
240         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
241         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
242
243 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
244
245         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
246         icalls.
247
248 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
249
250         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
251         managed-code allocated as well.
252
253 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
254
255         * class.c (mono_class_is_assignable_from): Add support for generic variance.
256
257 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
258
259         * boehm-gc.c: fixed the build after the AOT changes.
260
261 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
262
263         * wrapper-types.h: Add an ALLOC wrapper type.
264
265         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
266         reference managed allocator methods.
267
268 2007-09-12  Marek Safar  <marek.safar@gmail.com>
269
270         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
271         of Type array and not MonoType, a fix suggested by Hari.
272         
273 2007-09-12  Jonathan Chambers <joncham@gmail.com>
274
275         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
276         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
277         
278         Code is contributed under MIT/X11 license.
279
280 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
281
282         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
283
284 2007-09-12  Marek Habersack  <mhabersack@novell.com>
285
286         * image.c (do_mono_image_open): if assembly file fails to open and
287         MONO_IOMAP is in effect, try to find the path in a
288         case-insensitive way.
289
290         * appdomain.c (mono_runtime_init): do not install postload hooks -
291         tests show that MS.NET doesn't use anything of that sort to
292         trigger the AppDomain.AssemblyResolve event.
293         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
294         made non-static.
295         (mono_runtime_init): init portability helpers here.
296
297         * assembly.c (mono_assembly_load_with_partial_name): if other   
298         attempts fail, trigger the AppDomain.AssemblyResolve event handler
299         to resolve the assembly.
300
301         * domain-internals.h: added mono_try_assembly_resolve and marked
302         it as internal.
303
304 2007-09-11  Jb Evain  <jbevain@novell.com>
305
306         * object-internals.h (MonoReflectionDynamicMethod): add
307         a `MonoReflectionType *owner` field. The owner is used
308         * reflection.c:
309         (mono_reflection_create_dynamic_method): use the owner of the dynamic
310         method as the class declaring the dynamic method.
311         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
312         dynamic method to the declaring type of the methodbuilder.
313
314 2007-09-11  Mark Probst  <mark.probst@gmail.com>
315
316         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
317         rules for calling methods via reflection.
318
319 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
320
321         * reflection.c (resolve_object): Add support for MonoGenericClass. 
322         Inflate MonoType's.
323
324 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
325
326         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
327         provide a managed method that does fast allocations without needing
328         a managed->unmanaged transition. Boehm GC implementation currently
329         enabled for ptrfree objects on sane architectures.
330
331 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
332
333         * marshal.c, marshal.h: exported a couple of useful functions and
334         added mono_mb_get_label () to easily handle backward branches.
335
336 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
337
338         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
339
340 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
341
342         * loader.c (find_method): Fixed the regression introduced while
343         fixing bug #81466.
344
345 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
346
347         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
348         well.
349         
350         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
351         icall.c reflection.c: Pass a MonoGenericContext argument to 
352         mono_lookup_dynamic_token ().
353
354         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
355         #82744.
356         
357 2007-09-09  Robert Jordan  <robertj@gmx.net>
358
359         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
360         for generic methods.
361
362         * object.c (mono_object_get_virtual_method): Handle generic methods.
363         Fixes bug #78882.
364
365         Code is contributed under MIT/X11 license.
366
367 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
368
369         * image.c: fix locking in mono_image_load_file_for_image ().
370
371 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
372
373         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
374         used only as a cache: added an icall to fill it.
375
376 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
377
378         * reflection.h: exposed mono_reflection_free_type_info
379         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
380         since mono_reflection_bind_generic_parameters makes a copy of it.
381         * reflection.c (free_type_info): subinfos should be freed.
382         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
383         made non static.
384         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
385         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
386         this fixes #82695 and #81726.
387    
388
389 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
390
391         * process.h, process.c:  added support for user profile/info in
392           ProcessStartInfo. For now only Windows works.
393
394 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
395
396         * metadata.c: consider the generic arguments when comparing
397         signatures (bug #82614).
398
399 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
400
401         * cil-coff.h, image.c: updated assembly loader to cope with the
402         PE32+ 64 bit file format.
403
404 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
405
406         * assembly.c, class.c, domain.c, loader.c: remove useless
407         inclusion of cil-coff.h.
408
409 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
410
411         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
412         if interface is marked with CoClassAttribute. 
413    
414         Code is contributed under MIT/X11 license.
415
416 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
417
418         * sgen-gc.c: ensure no object from the to space is copied again or finalized
419         if it's seen twice in major collections.
420
421 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
422
423         * sgen-gc.c: big objects are not copied to the gray area, but they
424         need to be considered for scanning, too, if they are brought alive
425         by an object ready for finalizations or a survived one.
426
427 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
428
429         * sgen-gc.c: properly account the number of disappearing links when
430         they are nullified.
431
432 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
433
434         * sgen-gc.c: share the code to scan the registered roots between the
435         different types of collections.
436
437 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
438
439         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
440
441 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
442
443         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
444         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
445
446 2007-08-28  Mark Probst  <mark.probst@gmail.com>
447
448         * security-manager.c (mono_security_manager_get_methods):
449         LinkDemandSecurityException now has 2 arguments instead of 3.
450
451 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
452
453         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
454         platforms which need it.
455
456 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
457
458         * sgen-gc.c: unregister thread data structures with a pthread_key_t
459         dtor.
460
461 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
462
463         * threads.c: free the thread static data on thread exit.
464
465 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
466
467         * class.c: walk the hierarchy to find the generic definition for
468         a class (fixes runtime part of bug #82498).
469
470 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
471
472         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
473         ...
474
475         * image.c (mono_image_close): Here. Hopefully fixes #82510.
476
477 2007-08-24  Mark Probst  <mark.probst@gmail.com>
478
479         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
480
481 2007-08-24  Robert Jordan  <robertj@gmx.net>
482
483         * appdomain.c: don't perform the ':'->';' substitution on Win32.
484
485 2007-08-24  Jb Evain  <jbevain@novell.com>
486
487         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
488         for byref types.
489
490 2007-08-24  Mark Probst  <mark.probst@gmail.com>
491
492         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
493         #82286.
494
495 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
496
497         * assembly.c: Fix a warning.
498         
499 2007-08-23  Marek Habersack  <mhabersack@novell.com>
500
501         * appdomain.c: parse the <runtime> section looking for the probing
502         element with the 'privatePath' attribute, which sets additional
503         directories in which the runtime should look for assemblies.
504
505 2007-08-23  Robert Jordan  <robertj@gmx.net>
506
507         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
508         Fixes #82499.
509
510 2007-08-23  Martin Baulig  <martin@ximian.com>
511
512         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
513         _mono_debug_init_corlib() and remove it from the header file.
514
515 2007-08-23  Martin Baulig  <martin@ximian.com>
516
517         * mono-debug-debugger.c
518         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
519         don't notify the debugger about it.
520
521         * mono-debug-debugger.h
522         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
523
524 2007-08-23  Robert Jordan  <robertj@gmx.net>
525
526         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
527         Code is contributed under MIT/X11 license.
528
529 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
530
531         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
532
533 2007-08-22  Martin Baulig  <martin@ximian.com>
534
535         * mono-debug.c: Store debugging info on a per-domain basis and
536         free it on domain unload.  Add support for unloading symbol files.
537
538         * mono-debug.h
539         (MonoDebugList): New typedef.
540         (MonoSymbolTable):
541         - add `data_tables and `type_table'.
542         - replace 'symbol_files' and `num_symbol_files' with a
543           `MonoDebugList *'.
544         (mono_debug_data_table): Removed.
545         (mono_debug_list_add): New public function.
546         (mono_debug_list_remove): New public function.
547         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
548         (mono_debug_init_2_memory): Renamed into
549         mono_debug_open_image_from_memory().
550         (mono_debug_close_image): New public function.
551         (mono_debug_domain_create): Likewise.
552         (mono_debug_domain_unload): Likewise.
553         (MONO_DEBUGGER_VERSION): Bump to 60.
554
555         * mono-debug-debugger.h
556         (MonoDebuggerEvent):
557         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
558         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
559         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
560         - rename `THREAD_CREATED' and `THREAD_EXITED' into
561           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
562         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
563           meaning.
564         (mono_debugger_add_symbol_file): Removed.
565         (mono_debugger_add_type): Removed.
566         (mono_debugger_lookup_type): Removed.
567         (mono_debugger_lookup_assembly): Removed.
568
569         * domain.c
570         (mono_domain_create): Call mono_debug_domain_create().
571         (mono_init_internal): Call mono_debug_init_corlib().
572
573         * assembly.c
574         (mono_assembly_close): Call mono_debug_close_image().
575
576 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
577
578         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
579         mmap call.
580
581 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
582
583         * sgen-gc.c: ensure section->pin_queue_end is initialized
584         correctly when non pinning objects in the section have been found.
585
586 2007-08-22  Marek Habersack  <mhabersack@novell.com>
587
588         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
589         containing a list of directories separated by ':'. MSDN docs say
590         the directories should be separated with ';'. Part of a bugfix for
591         bug #81446
592
593 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
594
595         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
596         it should MonoType and not MonoClass.
597
598 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
599
600         * culture-info-table.h : regenerated.
601
602 2007-08-20  William Holmes  <billholmes54@gmail.com>
603
604         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
605          to call ReplaceFile Kernel32 on windows or in io-layer.
606         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
607         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
608          as an internal call.
609
610         Code is contributed under MIT/X11 license.
611
612 2007-08-20  Jb Evain  <jbevain@novell.com>
613
614         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
615         and MONO_EXCEPTION_FIELD_ACCESS.
616
617         * debug-helpers.[c|h]: new mono_field_full_name function.
618
619 2007-08-20  Mark Probst  <mark.probst@gmail.com>
620
621         * class.c: Removed class_security_level() and moved it to
622         security-core-clr.c.
623
624         * security-core-clr.c, security-core-clr.h: class_security_level()
625         is now public and renamed to mono_security_core_clr_class_level().
626         It also looks for security attributes in the classes a class is
627         nested in.
628
629 2007-08-20  Mark Probst  <mark.probst@gmail.com>
630
631         * security-core-clr.c, security-core-clr.h: CoreCLR security
632         utility functions.
633
634         * Makefile.am: Added security-core-clr.[ch].
635
636         * security-manager.c, security-manager.h: Functions and enum for
637         setting and getting the security mode.
638
639         * class.c: CoreCLR security checks.
640
641 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
642
643         * icall-def.h, process.c, process.h: implemented icall to get
644         user/system processor times.
645
646 2007-08-17  Mark Probst  <mark.probst@gmail.com>
647
648         * domain.c, threads.c, class-internals.h, domain-internals.h: New
649         reader-lock-free jit_info_table.
650
651 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
652
653         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
654
655         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
656
657         * object-internals.h (MonoException): Add missing _data member.
658
659 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
660
661         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
662         checking that only methods with matching qname or fqname are picked
663         from implemented interfaces.
664
665 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
666
667         * verify.c (do_newarr):added, do type verification of
668         newarr ops, push the right value on the eval stack.
669         * verify.c (mono_method_verify): use do_newarr
670
671
672 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
673
674         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
675         factored the common code into get_boxable_mono_type, which
676         is now using mono_type_get_full, this fixed byref related tests.
677
678 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
679
680         * class.c: added mono_type_get_full, this function has the same
681         behavior of mono_class_get_full but the returned MonoType has
682         all metadata of the associated token in case of a typespec token.
683         * class.c: added mono_type_retrieve_from_typespec, used by 
684         mono_type_get_full to retrieve the token type.
685         * class.c (mono_class_create_from_typespec): changed to use
686         mono_type_retrieve_from_typespec.
687         * class.c (mono_ldtoken): changed to use mono_type_get_full
688         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
689         * class-internals.h: exported mono_type_get_full for internal use.
690
691 2007-08-16  Jb Evain  <jbevain@novell.com>
692
693         * domain.c (supported_runtimes): add entry for
694         the 'moonlight' runtime version.
695
696 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
697
698         * verify.c (mono_method_verify): small typo sliped in.  
699
700 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
701
702         * verify.c (do_unbox_value): added, do type verification of
703         unboxing ops
704         * verify.c (mono_method_verify): use do_unbox_value
705
706
707 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
708
709         * verify.c (dump_stack_value): fixed typo, was printing string
710         instead of object on stack.
711         * verify.c (do_box_value): moved the byref check up as it leads
712         to invalid code and should be done earlier.
713         * verify.c: improved error messages for and ldobj
714
715 2007-08-15  William Holmes  <billholmes54@gmail.com>
716
717         * marshal.c (emit_marshal_custom): Omit the call to 
718           marshal_native_to_managed when calling native to managed 
719           and the argument is specified as an out argument.
720
721         Code is contributed under MIT/X11 license.
722
723 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
724
725         * verify.c: fixed the type checks for generics, function pointers and vectors.
726         Added type verification for ldobj and ldtoken. The verifier
727         would segfault if header or signature of a method contained references
728         to non-existant types.
729
730 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
731
732         * marshal.c (cominterop_get_ccw): Patch from
733         Bill Holmes to no walk up interface hierarchy. 
734         All parent methods should be present in the interface for COM.
735    
736         Code is contributed under MIT/X11 license.
737
738 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
739
740         * marshal.c (emit_marshal_com_interface): Patch from
741         Bill Holmes to handle COM Interfaces as return values
742         for native->managed calls.
743    
744         Code is contributed under MIT/X11 license.
745
746 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
747
748         * marshal.c (cominterop_get_idispatch_for_object): Implement
749         for runtime callable wrappers.
750    
751         Code is contributed under MIT/X11 license.
752
753 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
754
755         * pedump.c (main): changed from mono_init to mono_init_from_assembly
756         so 2.0 types are accessible
757
758
759 2007-08-13  Miguel de Icaza  <miguel@novell.com>
760
761         * domain.c (mono_init_internal): Call mono_assembly_load_friends
762         once we load mscorlib.   Due to the order in which we initialize,
763         the mono_assembly_load_full routine that loads mscorlib did not
764         load friends.   We now load it once we load the
765         mono_defaults.internals_visible_class class. 
766
767         * assembly.c: Expose the mono_load_friend_assemblies method.
768
769 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
770
771         * verify.c: improved the handling of boxing, better
772         type checking for unary ops and conversion. Fix bug
773         regarding managed pointer compatibility checking
774
775 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
776
777         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
778
779         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
780
781 2007-08-09  Raja R Harinath  <rharinath@novell.com>
782
783         * reflection.c (dup_type): Remove.
784         * class.c (dup_type): Remove.
785         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
786         instead of the dodgy 'dup_type'.
787         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
788         handle the case where 'dup_type' needed the second argument.
789
790 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
791
792         * domain.c: Fix a warning.
793
794 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
795
796         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
797         checking that methods with the same fqname are not overridden
798         with a method from an ancestor.
799
800 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
801
802         * threads.c (free_thread_static_data_helper): Avoid a crash if
803         thread->static_data is not yet set.
804
805 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
806
807         * marshal.c: Use correct image when emitting
808         native wrapper for COM calls.
809    
810         Code is contributed under MIT/X11 license.
811
812 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
813
814         * icall-def.h, security.c, security.h :
815           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
816
817 2007-08-07  Martin Baulig  <martin@ximian.com>
818
819         * mono-debug-debugger.h
820         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
821
822         * domain.c (mono_domain_free): Call
823         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
824
825 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
826
827         * verify.c (check_underflow, check_overflow): error message now returns IL offset
828         * verify.c (in_same_block): code should test if either offset is inside the clauses
829         * verify.c (mono_method_verify): push the exception into the eval stack of exception
830         and filter blocks
831
832 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
833
834         * image.c (mono_image_close): Fix a leak.
835
836         * object.c (mono_runtime_invoke_array): Avoid using alloca.
837
838         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
839
840 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
841
842         * domain.c, threads.c, threads-types.h: fix memory retention issue
843         with thread static variables not being cleared on domain unload.
844         Reuse thread static slots after domain unload.
845
846 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
847
848         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
849         nullable type.
850
851         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
852         now done in mono_runtime_invoke_array.
853
854         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
855         receiver is a nullable type.
856
857         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
858         generic parameter.
859
860 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
861
862         * marshal.c: Implement COM Objects as return type for 
863         managed->unmanaged calls. Added Release calls for COM Object
864         out/return values in managed->unmanaged calls.
865
866         Code is contributed under MIT/X11 license.
867
868 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
869
870         * threads.h, threads-type.h: move the hazard pointer declarations
871         to the private header.
872
873 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
874
875         * file-io.c, appdomain.c: memory leak fixes.
876
877 2007-08-02  Dick Porter  <dick@ximian.com>
878
879         * socket-io.c
880         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
881         SO_REUSEADDR setting into io-layer/sockets.c.
882
883 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
884
885         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
886         from Object when called on a generic parameter. Fixes #82211.
887
888 2007-08-01  Dick Porter  <dick@ximian.com>
889
890         * file-io.c (convert_share): Test FileShare values bit-by-bit.
891         Fixes bug 79250 yet again.
892
893 2007-07-30  Martin Baulig  <martin@ximian.com>
894
895         Merged the `debugger-dublin' branch.
896
897         * mono-debug.h
898         (MonoDebugDataTable): New typedef.
899         (MonoDebugMethodAddressList): New typedef.
900         (MonoDebugWrapperData): Removed.
901         (MonoDebugSymbolTable): Removed `current_data_table',
902         `current_data_table_size', `current_data_table_offset'.
903         (MonoDebugDataItemType): Moved into mono-debug.c.
904         (MonoDebugMethodJitInfo): Remove `address'.
905         (mono_debug_data_table): New global variable.
906         (mono_debug_lookup_method_addresses): New public function.
907         (mono_debug_find_method): Take a `MonoMethod *', not a
908         `MonoDebugMethodInfo *'.
909
910         * mono-debug.c: Drop support for the old symbol tables.
911
912 2007-06-28  Martin Baulig  <martin@ximian.com>
913
914         * mono-debug.c (mono_debug_debugger_version): New public variable.
915
916 2007-07-31  William Holmes  <billholmes54@gmail.com>
917
918         * metadata.c Changed mono_type_create_from_typespec to not insert
919           the type into the hash map until after
920           do_mono_metadata_parse_type has completed.
921         Fixes Bug #82194
922         Code is contributed under MIT/X11 license.
923
924 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
925
926         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
927         generic parameter. Fixes #82211.
928
929 2007-07-27  Jb Evain  <jbevain@novell.com>
930
931         * pedump.c (dump_metadata, dump_metadata_header): dump
932         versions contained in the metadata header.
933
934 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
935
936         * threads.c: register small_id_table with the GC.
937
938 2007-07-27  Mark Probst  <mark.probst@gmail.com>
939
940         * threads.c, threads.h, class-internals.h, object-internals.h:
941         Hazard pointers, to be used by lock-free parallel algorithms.
942
943 2007-07-26  Dick Porter  <dick@ximian.com>
944
945         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
946         routine on non-windows platforms, as I've not managed to think of
947         a non-kludgy way of doing this.  Finishes off bug 78739.
948
949 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
950
951         * object.c: properly setup interface_bitmap in proxy vtables.
952
953 2007-07-25  Marek Habersack  <mhabersack@novell.com>
954
955         * appdomain.c (get_shadow_assembly_location): do not use TickCount
956         to create unique shadow copy target directories, use the domain's
957         serial number instead. Each domain gets a unique target directory
958         that way.
959
960         * domain.c (mono_domain_create): added code to increment domain
961         shadow copy serial number and cache the value in the current
962         domain structure.
963
964         * domain-internals.h (struct _MonoDomain): added a new field -
965         shadow_serial to hold the serial number used in generation of
966         shadow-copy directories. This is to make sure that the directory
967         name is unique for each and every domain created. We avoid a race
968         condition with overriding assemblies already in use by other app
969         domains.
970
971 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
972
973         * class.c (mono_bounded_array_class_get): fixed memory leak when 
974         binding generic parameters.
975
976 2007-07-24  Raja R Harinath  <rharinath@novell.com>
977
978         * metadata.c (do_mono_metadata_parse_generic_class): Use
979         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
980         error.
981
982 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
983
984         * loader.c, class-internals.h, reflection.c: removed the per-method
985         generics hashtable: we use the global one through the call of
986         mono_class_inflate_generic_method ().
987
988 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
989
990         * class.c, metadata.c, class-internals.h: introduce yet another
991         generics global cache for inflated methods (fixes 98% of the perf
992         issue in bug #81806).
993
994 2007-07-23  Raja R Harinath  <rharinath@novell.com>
995
996         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
997         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
998         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
999         return a MonoGenericInst containing (a copy) of those types.
1000         (mono_metadata_inflate_generic_inst): Update to changes.
1001         (mono_metadata_parse_generic_inst): Likewise.
1002         (mono_get_shared_generic_inst): Likewise.
1003         * reflection.c (mono_class_bind_generic_parameters): Likewise.
1004         (mono_reflection_bind_generic_method_parameters): Likewise.
1005         * metadata-internals.h: Likewise.
1006         * icall.c (free_generic_context): Kill.
1007         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
1008
1009         * reflection.c (reflection_methodbuilder_to_mono_method): Use
1010         mono_metadata_type_dup.
1011         * marshal.c (mono_mb_create_method): Likewise.
1012
1013         * metadata.c (mono_metadata_type_dup): Rename from
1014         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
1015         MonoImage.  Handle a few more cases, esp. when no mempool is given.
1016         * marshal.c, metadata-internals.h: Update to changes.
1017
1018 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1019
1020         * class.c: fixed a small leak for array classes and removed warning.
1021
1022 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
1023
1024         * loader.c (mono_method_get_param_token): Make this work on generic methods.
1025         Return 0x8000000 for return parameters. Fixes #82161.
1026
1027 2007-07-21  Marek Habersack  <grendello@gmail.com>
1028
1029         * appdomain.c (get_shadow_assembly_location): append the current
1030         ticks value to the path. Avoids overwriting the same assemblies by
1031         several threads at the same time.
1032
1033 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1034         and Raja R Harinath  <rharinath@novell.com>
1035
1036         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1037         Simplify slightly.
1038         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
1039         property for testing if a method is a generic method definition.
1040
1041 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1042
1043         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
1044
1045 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1046
1047         * verify.c: used function from private branch, reverted to the one in class.h 
1048
1049 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1050
1051         * verify.c: a typo slipped in and the code wont compile
1052
1053 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1054
1055         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
1056         disabled box instruction as it is doing the wrong thing
1057         improved stack dump messages, now it is easier to debug type related issues
1058
1059
1060 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
1061
1062         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
1063
1064 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1065
1066         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
1067         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
1068         grouped with class and valuetype. This change will simply 
1069         the code as it should be handled just like unmanaged pointers.
1070
1071 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1072
1073         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
1074
1075 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1076
1077         * verify.c: several stack merge issues fixed, reference comparisons now
1078         check the type size. strict type check now works correctly.
1079         added more uses of IS_MANAGED_POINTER macro.
1080         fixed issues pointed by running the test suite against .net.
1081         
1082
1083 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1084
1085         * class.c, loader.c, class-internals.h: Removed the
1086         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
1087         defines.
1088
1089         * icall.c: Better error checking in some internal reflection
1090         methods.
1091
1092 2007-07-18  William Holmes  <billholmes54@gmail.com>
1093
1094         * filewatcher.c : removed unused variable 'filename' in 
1095           ves_icall_System_IO_FSW_SupportsFSW
1096
1097 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
1098
1099         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
1100         obsolete, removed.
1101
1102 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
1103
1104         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
1105         
1106         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1107
1108 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1109
1110         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1111         Implement generics support.
1112         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1113
1114         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1115         type_args and method_args arguments.
1116         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1117         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1118         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1119
1120 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1121
1122         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1123           It adds a rootimage parameter to mono_reflection_get_type_internal,
1124           adds new function mono_reflection_get_type_with_rootimage and use
1125           the rootimage to resolve the types instead of the current image
1126
1127 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1128
1129         * culture-info-table.h: Forgot to update after r78304.
1130
1131 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1132
1133         * class.c (mono_class_is_open_constructed_type)
1134         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1135
1136 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1137
1138         * class.c (mono_bounded_array_class_get):  method fails if used with
1139         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1140         avoiding calculating the size for such array as it cannot be instantiated.
1141         Fix bug #82015
1142
1143 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1144
1145         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1146         field.
1147         * metadata.c, reflection.c: Update to changes.
1148
1149 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1150
1151         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1152         mono_class_is_valid_enum, they are used to valide a enum when loading.
1153         * reflection.c: used new functions to throw TypeLoadException when and
1154         invalid enum is build with TypeBuilder. Fixes #82018
1155   
1156 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1157
1158         * object.c: forgot commit of mono_class_setup_methods () to access
1159         iface->methods.
1160         * object-internals.h: added a few more handy fields to
1161         MonoIMTCheckItem.
1162
1163 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1164
1165         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1166         iface->methods.
1167
1168 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1169
1170         * class-internals.h, object-internals.h, object.c: IMT-based
1171         interface invocation core from Massimiliano Mantione
1172         (massi@ximian.com) with a reworked arch-specific interface,
1173         bsearch implementation and a few bugfixes and memory savings by me.
1174
1175 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1176
1177         * class.c (mono_class_create_from_typedef): mono would segfault if 
1178         an enum did not have a __value field. It now throws a TypeLoadException
1179         for such cases. Fix bug #82022
1180
1181 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1182
1183         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1184
1185 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1186
1187         * class.c (mono_class_init): If a class is already inited but has
1188         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1189
1190 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1191
1192         * class.c: Properly handle the case of an unimplemented interface
1193         method.  Fixes: 81673.
1194
1195 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1196
1197         * class-internals.h, object.c: cleanup patch from massi: use
1198         MonoVTable->interface_bitmap since the vtable interfaces offset array
1199         is going away.
1200
1201 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1202
1203         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1204         GetMDStreamVersion icall instead.
1205
1206 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1207
1208         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1209         not use mono_dl_build_path() with a full library name: makes
1210         fallbacks to libgaim and libfam work.
1211
1212 2007-07-06  William Holmes  <billholmes54@gmail.com>
1213
1214         * assembly.c: Added a continue statement in probe_for_partial_name when
1215          parse_assembly_directory_name fails.  Fixes : 82002
1216
1217 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1218
1219         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1220         and added a verification  for TYPEDBYREF.
1221         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1222         make native int interchangeable with int32 and some small cleanup and formating.
1223         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1224         handle byref of byref.
1225         * verify.c (push_local): handle byref of byref.
1226         * verify.c (do_binop): invalid mix of values is unverifiable
1227         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1228         added visibility checks
1229         * verify.c (field related method): added visibility checks
1230         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1231
1232 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1233
1234         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1235         string.
1236
1237 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1238
1239         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1240
1241         * marshal.c (emit_marshal_string): When returning a string from managed code,
1242         allways make a copy even for unicode strings. Fixes #81990.
1243
1244 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1245
1246         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1247         of byref generic inst types (bug #81997).
1248
1249 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1250
1251         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1252         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1253
1254 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1255
1256         * marshal.c (emit_marshal_string): Add support for unicode strings in
1257         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1258
1259 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1260
1261         * verify.c: field load/store are now verified, missing only access checks now
1262
1263 2007-06-28  Martin Baulig  <martin@ximian.com>
1264
1265         * mono-debug.c (mono_debug_debugger_version): New public variable.
1266
1267 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1268
1269         * locales.c: When constructing DateTimeFormat or NumberFormat for
1270         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1271         MonoCultureInfo contructed from the current locale is always
1272         read-only and has UseUserOverride set to true. All MonoCultureInfo
1273         instances returned for GetCultures have both IsReadOnly and
1274         UseUserOverride set to true. Fixes part of bug #81930.
1275
1276 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1277
1278        * icall-def.h: Update System.__ComObject icalls
1279        * marshal.c: Avoid managed transition (and object creation)
1280        when looking up COM interface in RCW.
1281        * marshal.h: Ditto.
1282        
1283        Code is contributed under MIT/X11 license.
1284
1285 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1286
1287         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1288         to avoid crashes during assembly unloading.
1289
1290 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1291
1292         Fix MethodInfo.IsGenericMethodDefinition
1293         * reflection.c (mono_reflection_bind_generic_method_parameters):
1294         Rearrange code to ensure we always uses a generic method definition.
1295         * class.c (mono_class_inflate_generic_method_full): Set
1296         'generic_container' field only for generic method definitions.
1297         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1298         Use presense of 'generic_container' field as indication of being a
1299         generic method definition.
1300
1301 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1302
1303         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1304
1305         * object-internals.h: Reflect changes in the layout of the managed Delegate
1306         class.
1307         
1308         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1309         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1310         runtime memory used by the dynamic method. Fixes #77146.
1311
1312 2007-06-21  Dick Porter  <dick@ximian.com>
1313
1314         * file-io.h: 
1315         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1316         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1317         81767.
1318
1319 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1320
1321         * reflection.c (method_encode_methodspec): Add a tripwire.
1322         * class.c (inflate_generic_type): The fully open generic type is
1323         not the same as the generic type definition.
1324
1325 2007-06-21  Martin Baulig  <martin@ximian.com>
1326
1327         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1328
1329         * mono-debug-debugger.h
1330         (MonoDebuggerBreakpointInfo): Removed.
1331         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1332         (mono_debugger_remove_breakpoint): Likewise.
1333         (mono_debugger_breakpoint_callback): Likewise.
1334         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1335
1336 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1337
1338         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1339         generic type is not the same as the generic type definition.
1340         * class.c (mono_generic_class_get_class): Likewise.
1341
1342 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1343
1344         * icall.c: The second argument to 
1345         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1346         is a MonoType not a MonoClass.
1347
1348 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1349
1350         * verify.c: support for function pointers in the verifier
1351
1352 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1353
1354         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1355
1356 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1357
1358         * assembly.c: removed Mono.Data.SqliteClient from the list of
1359         forward-compatible assemblies as it breaks the ABI (bug #81899).
1360
1361 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1362
1363         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1364         lookup/update with the loader lock.
1365         * reflection.c (mono_class_bind_generic_parameters): No need to
1366         protect mono_metadata_lookup_* with the loader lock.
1367         * class.c (inflate_generic_type): Likewise.
1368         
1369         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1370         on a generic instantiated type.
1371
1372 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1373
1374         *verify.c: produce meanfull error messages on verification error
1375         *verify.c: fixed some cases of verification errors reported as validation errors
1376         *pedump.c: fixed the error name array, now it shows validation errors properly
1377         *verify.h: fixed the contant that should be used for verification errors
1378
1379 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1380
1381         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1382         for bug #77596, 81858 and 80743 (generics data structures on domain
1383         unload).
1384
1385 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1386
1387         Avoid allocating 'MonoGenericContext' on the heap.
1388         * class-internals (_MonoMethodInflated::context): Make field
1389         inline, not a pointer.
1390         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1391         stack.  Use the context embedded within the inflated method as the
1392         hash key, rather than 'new_context'.
1393         * class.c (inflate_generic_context): Simplify.  Return a struct
1394         rather than allocating on the heap.
1395         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1396         doesn't salt away a copy of the context -- simplifying the
1397         lifetime rules of a 'MonoGenericContext *'.
1398         (mono_method_get_context): Return pointer to embedded context.
1399         (setup_generic_array_ifaces): Allocate temporary context on stack.
1400         * reflection.c (inflate_mono_method): Likewise.
1401         (mono_reflection_bind_generic_method_parameters): Likewise.
1402         Use the context embedded within the inflated method as the hash key.
1403
1404         Avoid a source of allocation of 'MonoGenericContext'.
1405         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1406         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1407         * class.c: Update to changes.
1408         (mono_generic_class_get_context): Simplify drastically.  Now just
1409         returns a pointer to the field.
1410         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1411         argument as a const pointer.
1412         (mono_metadata_generic_context_equal): Likewise.
1413         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1414         Update to changes.
1415
1416 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1417
1418         * verify.c improved the handling of brtrue/brfalse, factored out common code
1419
1420 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1421
1422         Kill MonoGenericMethod.
1423         * class-internals.h (MonoGenericContext::method_inst): Rename from
1424         'gmethod' and convert to a MonoGenericInst.
1425         (MonoGenericMethod): Remove.
1426         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1427         * loader.c (method_from_methodspec): Update to changes.  Use a
1428         MonoGenericContext as the key to the hashtable.
1429         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1430         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1431         (mono_metadata_generic_context_hash): Likewise from
1432         'mono_metadata_generic_method_hash'.  Change hash function.
1433         (mono_metadata_load_generic_params): Update to changes.
1434         (mono_get_shared_generic_method): Remove.
1435         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1436         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1437         (inflate_generic_context): Likewise.
1438         (mono_class_inflate_generic_method_full): Likewise.
1439         (setup_generic_array_ifaces): Likewise.
1440         (mono_class_create_from_typespec): Likewise.
1441         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1442         (method_encode_methodspec): Update callsite.
1443         (reflection_methodbuilder_to_mono_method): Update to changes.
1444         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1445         MonoGenericContext as the key to the hashtable.
1446         (inflate_mono_method): Update to changes.
1447
1448         * class-internals.h (MonoGenericMethod::container): Remove.
1449         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1450
1451 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1452
1453         * profiler-private.h, profiler.c, profiler.h: added API to profile
1454         exception events.
1455
1456 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1457
1458         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1459
1460 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1461
1462         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1463         Fixed overflow and underflow not aborting the verification process.
1464
1465 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1466
1467         * class-internals.h (MonoStats): Added stats entries for dynamic
1468         code allocations.
1469
1470 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1471
1472         * loader.c (mono_free_method): Free header->locals and header->clauses.
1473
1474         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1475         dynamic case.
1476
1477         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1478
1479         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1480
1481 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1482
1483         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1484         the tables.
1485
1486 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1487
1488         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1489
1490 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1491
1492         MonoGenericMethod on a diet
1493         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1494         here ...
1495         (_MonoGenericMethod::reflection_info): ... from here.
1496         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1497         Update to changes.
1498         * reflection.c (inflate_mono_method): Likewise.
1499         (mono_reflection_bind_generic_method_parameters): Likewise.
1500
1501 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1502
1503         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1504         *verify.c: factored long ldarg forms to share code with short forms
1505
1506 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1507
1508         *verify.c: fixed code formating factored some duplicate code
1509         into a new function
1510
1511         *verify.h: fixed binary incompatibility introduced earlier
1512
1513         *pedump.c: fixed formating
1514
1515 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1516
1517         Fix assertion when disassembling Mono.C5.dll
1518         * loader.c (method_from_methodspec): Avoid inflating a method
1519         twice with the same context.  If the methodref is inflated, use
1520         the declaring method instead.
1521
1522         * class.c (mono_class_from_generic_parameter): Fix case similar to
1523         bug #81830 handled below, but for method containers.
1524
1525 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1526
1527         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1528         get_shared_generic_class.  Directly inflate the instance.
1529         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1530         (inflate_generic_class): Delete.
1531         (get_shared_generic_class): Delete.  Move setting of
1532         'cached_class' and 'cached_context' ...
1533         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1534
1535         * metadata.c (mono_metadata_lookup_generic_class): Change
1536         signature to take the components of a MonoGenericClass rather than
1537         an allocated MonoGenericClass.  Change semantics to be intern-like.
1538         * reflection.c (mono_class_bind_generic_parameters): Update to
1539         changes.  Make locking region tighter.
1540         * class.c (inflate_generic_class): Update to changes.
1541         (get_shared_generic_class): Likewise.
1542         * metadata-internals.h: Likewise.
1543
1544         * reflection.c (mono_class_bind_generic_parameters): Take and
1545         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1546         (mono_reflection_bind_generic_parameters): Use
1547         'mono_class_bind_generic_parameters' rather than duplicate the code.
1548         * class.c (mono_bounded_array_class_get): Update to changes.
1549         * object-internals.h: Likewise.
1550
1551         * reflection.c (mono_class_bind_generic_parameters): Only support
1552         parameterizing generic type definitions.  Remove support for other
1553         open types.
1554
1555 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1556
1557         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1558
1559         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1560         in the dynamic case.
1561
1562 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1563
1564         * threads.c: When cleaning up thread, reset the Background bit.
1565         Fixes bug #81720.
1566
1567 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1568
1569        * metadata.c: Move variable declarations to top of scope.
1570        * verify.c: Move variable declarations to top of scope.
1571
1572        Code is contributed under MIT/X11 license.
1573
1574 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1575
1576         * reflection.c (mono_class_bind_generic_parameters): Replace
1577         open-coded loop with mono_metadata_inflate_generic_inst.
1578
1579         * class.c (get_shared_generic_class): Don't call
1580         mono_get_shared_generic_inst.  Use the container's own
1581         'class_inst'.
1582
1583         * metadata.c (mono_metadata_load_generic_params): Move
1584         initialization of 'context' field here from ...
1585         * class.c (mono_class_create_from_typedef): ... here, and ...
1586         * loader.c (mono_get_method_from_token): ... here.
1587
1588         * class.c (get_shared_generic_class): Rename from
1589         mono_get_shared_generic_class and make static.
1590         (mono_get_shared_generic_inst): Move to metadata.c.
1591         * loader.c (mono_get_shared_generic_method): Likewise.
1592         * class-internals.h, metadata-internals.h: Update to changes.
1593
1594         Fix #81830
1595         * class.c (mono_class_from_generic_parameter): Don't assume a
1596         generic container owner exists.  Generic containers from monodis
1597         don't have any.
1598
1599 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1600
1601         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1602         * verify.h: new typedefs to returns the non-verifiable status
1603         * verify.c: initial implementation of generics, stack merging and object compatibility check
1604
1605 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1606
1607         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1608         a MonoInternalHashTable again (fixed bug in internal hash table
1609         code).
1610
1611 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1612
1613         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1614         MonoInternalHashTable again (fixed bug in internal hash table
1615         code).
1616
1617 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1618
1619         * class.c, image.c, class-internals.h, domain.c,
1620         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1621         changes.  Have to figure out what makes them break the SWF
1622         regression.
1623
1624 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1625
1626         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1627         a MonoInternalHashTable now.
1628
1629 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1630
1631         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1632         MonoInternalHashTable now.
1633
1634 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1635
1636         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1637         invoke_impl code.
1638
1639         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1640
1641         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1642         dependent trampoline.
1643
1644         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1645
1646         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1647
1648 2007-05-29  Robert Jordan  <robertj@gmx.net>
1649
1650         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1651
1652 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1653
1654         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1655
1656 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1657
1658        * marshal.c: Fix interface lookup loops for
1659        cominterop_get_com_slot_for_method and 
1660        cominterop_get_method_interface. Only need to lookup
1661        if type is a class, else use interface type method is on.
1662
1663        Code is contributed under MIT/X11 license.
1664
1665 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1666
1667         * reflection.c: HasSecurity can be present even if no specially 
1668         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1669         SecurityAttribute). Fix CAS regression tests on buildbot.
1670
1671 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1672
1673        * appdomain.c: Add configure checks for header files.
1674        * image.c: Add configure checks for header files.
1675        * file-io.c: Add configure checks for header files.
1676        * debug-mono-symfile.c: Add configure checks for header files.
1677        * threadpool.c: Add configure checks for header files.
1678        * console-io.c: Add configure checks for header files.
1679        * profiler.c: Add configure checks for header files.
1680        * rawbuffer.c: Add configure checks for header files.
1681        * icall.c: Add configure checks for header files.
1682        * rand.c: Add configure checks for header files.
1683        * socket-io.c: Add configure checks for header files.
1684
1685        Code is contributed under MIT/X11 license.
1686
1687 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1688
1689         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1690         assertion as it breaks the build.
1691         
1692         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1693
1694         * reflection.c (lookup_custom_attr): Make a copy here too.
1695
1696         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1697         dynamic images.
1698
1699         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1700         images.
1701
1702         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1703         info.
1704
1705 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1706
1707         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1708         (load_cattr_value): Ditto.
1709
1710 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1711
1712         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1713
1714 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1715
1716         * threads.c: In "start_wrapper", set apartment_state to MTA if
1717         apartment_state is Unknown and we're running on 2.0 profile or
1718         higher.
1719         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1720         to main method, then set apartment_state to Unknown on 1.0 profile,
1721         and MTA on 2.0 profile.
1722
1723 2007-05-16  Jb Evain  <jb@nurv.fr>
1724
1725         * class-internals.h (MonoDefaults): Add an attribute_class and
1726           customattribute_data_class.
1727         * domain.c (mono_init_internal): Populate them.
1728         * reflection.c: Use them to remove duplicates. Make a vew
1729         MonoClass variables `static'.
1730
1731 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1732
1733         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1734         step in implementing IMT, so that all isinst checks now can go
1735         through the bitmap.
1736         This was needed because vtables for TransparentProxy need to look
1737         like the vtable of the "target" class, so they need to point to
1738         its interface bitmap directly.
1739
1740         * object.c: inside "mono_class_create_runtime_vtable" and
1741         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1742
1743 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1744
1745         * object-internals.h
1746           culture-info.h : added territory field in MonoCulture and
1747           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1748         * locales.c : fill territory field above too.
1749         * culture-info-table.h : regenerated.
1750
1751 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1752
1753         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1754         Fixes #81599.
1755
1756 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1757
1758         * object.c: Always initialize apartment, even if 
1759         there is no custom attributes on entry point.
1760         
1761         Code is contributed under MIT/X11 license.
1762
1763 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1764
1765         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1766         * metadata.c: If no encoding is set, check for unicode
1767         on class.
1768         
1769         Code is contributed under MIT/X11 license.
1770
1771 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1772
1773         * threads.c: Handle if mono_thread_current returns NULL 
1774         
1775         Code is contributed under MIT/X11 license.
1776
1777 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1778
1779         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1780         in start_wrapper. Added mono_thread_init_apartment_state and
1781         mono_thread_cleanup_apartment_state.
1782         * object.c: Initialize thread apartment state on main thread
1783         by checking for STAThreadAttribute on entry point.
1784         * object-internals.h: Add apartment_state field to MonoThread.
1785         * threads-types.h: Add unmanaged definition of 
1786         System.Threading.ApartmentState, MonoThreadApartmentState.
1787         
1788         Code is contributed under MIT/X11 license.
1789         
1790 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1791
1792         * class.c: Fix windows build.
1793         * class-internals.h: Fix windows build.
1794         
1795         Code is contributed under MIT/X11 license.
1796
1797 2007-05-08  Robert Jordan  <robertj@gmx.net>
1798
1799         * process.c (CreateProcess_internal):
1800         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1801         .CreateNoWindow was specified. Fixes #81496.
1802
1803 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1804
1805         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1806         step in implementing IMT, replaced it with two compact arrays
1807         (interfaces_packed and interface_offsets_packed) and a bitmap that
1808         is used for isinst checks (interface_bitmap).
1809
1810         * class.c: (compare_interface_ids): compare function to pass to
1811         bsearch when looking for an interface with a given id.
1812         (mono_class_interface_offset): reimplemented using bsearch on
1813         interfaces_packed, getting the offset from interface_offsets_packed.
1814         (print_implemented_interfaces): utility debugging function.
1815         (setup_interface_offsets): reworked to initialize interfaces_packed,
1816         interface_offsets_packed and interface_bitmap.
1817
1818         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1819         with uses of interfaces_packed and interface_offsets_packed.
1820
1821 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1822
1823         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
1824         mono_class_interface_offset prototype to wrap all accesses to
1825         "MonoClass.interface_offsets".
1826
1827         * class.c: Implemented mono_class_interface_offset, and wrapped all
1828         accesses to "MonoClass.interface_offsets".
1829
1830         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
1831         "MonoClass.interface_offsets".
1832
1833 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1834
1835         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1836         GetMethodFromHandle overloads (bug #78637).
1837
1838 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1839
1840         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1841         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1842
1843 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1844
1845         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1846         #81498.
1847
1848         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1849         gracefully.
1850         (mono_custom_attrs_from_index): Ditto.
1851
1852         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1853         Fixes #81501.
1854
1855 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1856
1857         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1858         is now allocated from a mempool.
1859
1860 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1861
1862         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1863         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1864
1865 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1866
1867         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1868         mono_loader_clear_error () too late. Fixes #81463.
1869
1870 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1871
1872         * culture-info-table.h : regenerated.
1873
1874 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1875
1876         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1877         is missing.
1878
1879 2007-04-25  Dick Porter  <dick@ximian.com>
1880
1881         * Makefile.am: Put the mingw enforced-optimisation back into the
1882         PLATFORM_WIN32 section.
1883
1884 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1885
1886         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1887         patch.
1888
1889         * image.c (mono_image_load_module): New API function to load a module reference.
1890
1891         * image.c (load_modules): Load modules lazily. Fixes #80812.
1892
1893         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1894         
1895         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1896
1897         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1898         to mono_image_load_module_dynamic.
1899
1900 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1901
1902         * marshal.c: Fix calling convention for CCW on non-windows
1903         platforms. STDCALL on windows, CDECL everywhere else to work 
1904         with XPCOM and MainWin COM.
1905         
1906         Code is contributed under MIT/X11 license.
1907
1908 2007-04-23  Martin Baulig  <martin@ximian.com>
1909
1910         Fix #80969.
1911
1912         * loader.c
1913         (method_from_memberref): Added `gboolean *used_context' argument.
1914         (mono_get_method_from_token): Likewise.
1915         (mono_get_method_full): Don't insert the method in the cache when
1916         `used_context' is true.
1917
1918 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1919
1920         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1921
1922         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1923         create new MonoTypes for returned types.
1924         * class.c (mono_generic_class_get_class): Export mono-internal.
1925         * class-internals.h: Update to changes.
1926
1927 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1928
1929         * threadpool.c, threadpool.h, icall-def.h: patch from
1930         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1931
1932 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1933
1934         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1935         
1936         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1937
1938         * threads.c (mono_thread_get_stack_bounds): New helper function.
1939
1940         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1941         Correctly compute stack bounds when attaching. Fixes #81394.
1942
1943 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1944
1945         * reflection.c: fix handling of doubles in custom attributes
1946         for the arm-fpa format (bug #81368).
1947
1948 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1949
1950         * reflection.c (assembly_add_win32_resources): Mildly relax an
1951         bounds check to let the end pointer point just past the end of the
1952         allocated buffer.  (may fix #81384)
1953
1954 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1955
1956         * culture-info-table.h : regenerated.
1957
1958 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1959
1960         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1961         the thread is aborted early.
1962
1963 2007-04-05  Dick Porter  <dick@ximian.com>
1964
1965         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1966         FindFirstFile()/FindNextFile() to find entries.  This lets the
1967         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1968         81038.
1969
1970         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1971         the parameters of
1972         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1973
1974 2007-04-04  Martin Baulig  <martin@ximian.com>
1975
1976         * debug-helpers.c
1977         (mono_method_desc_full_match): Add support for nested classes.
1978
1979 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1980
1981         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1982
1983 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1984
1985         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1986         waiting for too many threads.
1987
1988 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1989
1990         * environment.c: Fix return value check on uname so we can get the 
1991         executing version on Solaris operating systems.
1992
1993 2007-03-28  Jb Evain  <jbevain@gmail.com>
1994
1995         * class.c (mono_type_get_name_recurse): Complete the
1996         fix for the creation of assembly qualified names for
1997         pointer types. Fixes #81208.
1998
1999 2007-03-27  Dick Porter  <dick@ximian.com>
2000
2001         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
2002         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
2003         changed.
2004
2005         * threads.c
2006         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
2007         the value of ReleaseMutex().
2008
2009 2007-03-27  Dick Porter  <dick@ximian.com>
2010
2011         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
2012         in little-endian order, not network endian, so must be converted
2013         to host endian here.  Fixes bug 80593.
2014
2015 2007-03-22  Jb Evain  <jbevain@gmail.com>
2016
2017         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
2018         qualified names for pointer types. Fixes #81208.
2019
2020 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
2021
2022         * marshal.c: Add support for PreserveSigAttribute. 
2023         
2024         Code is contributed under MIT/X11 license.
2025
2026 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
2027
2028         * process.c: Fix endianness issues. Fixes #81126.
2029
2030         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
2031         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
2032
2033         * image.c (mono_image_lookup_resource): Make this work on big-endian
2034         machines.Change API contract so the caller needs to free the return value.
2035         
2036         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
2037         API change.
2038         
2039 2007-03-14  Martin Baulig  <martin@ximian.com>
2040
2041         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
2042         mono_type_get_desc() as well.
2043
2044 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
2045
2046         * icall.c:  Fix environ access in VS.  
2047         
2048 2007-03-13  Alp Toker  <alp@atoker.com>
2049
2050         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2051         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2052         #63841.
2053
2054 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2055
2056         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
2057         circular references among dynamic methods. Fixes #81091.
2058
2059         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
2060
2061 2007-03-09  Martin Baulig  <martin@ximian.com>
2062
2063         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
2064
2065 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
2066
2067         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
2068         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
2069         
2070         Code is contributed under MIT/X11 license.
2071         
2072 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
2073
2074         * loader.c: Reapply patch for bug #79424.
2075
2076 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2077
2078         * metadata.c (mono_type_to_unmanaged): Only convert object to
2079         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
2080
2081 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
2082
2083         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
2084         (and incorrectly set) is_reference field from MonoGenericInst.
2085
2086 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2087
2088         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
2089         a little earlier.
2090
2091         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
2092
2093         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
2094
2095 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2096
2097         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
2098         FileOptions.1 value to mean "temporary", map that to
2099         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
2100
2101         Fixes 80688
2102
2103 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2104
2105         * appdomain.c: implement MS .Net style shadow copying. Copies of
2106         the assemblies are made in a subdirectory of the dynamic base
2107         directory, the assembly names are preserved.
2108         Copy .mdb and .config files along with the assemblies being shadowed.
2109
2110 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2111
2112         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2113         (emit_marshal_handleref): Ditto.
2114
2115         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2116         on Visual C++. Fixes #80671.
2117
2118 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2119
2120         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2121         for clone operations.
2122
2123 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2124
2125         * marshal.c: Fix warnings.
2126
2127 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2128
2129         * loader.c: allow case-insensitive matching of the dll name
2130         in dllmap handling when prefixed with "i:".
2131
2132 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2133
2134         * threads.c: Fix #ifdef for dummy_apc function for VS.
2135
2136 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2137
2138         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2139
2140 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2141         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2142         giving precedence to the methods with a fully qualified name
2143         (InterfaceName.MethodName) when building the interface sections
2144         of the vtable.
2145
2146 2007-02-16  Dick Porter  <dick@ximian.com>
2147
2148         * threadpool.c (append_job): Fix fast-path array handling, so it's
2149         less likely the array will grow exponentially when the load is
2150         heavy.
2151
2152 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2153
2154         * metadata-internals.h, loader.c: fix dllmap lookup order
2155         for non-function maps, too, and prepare for fallback code.
2156
2157 2007-02-12  Robert Jordan  <robertj@gmx.net>
2158
2159         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2160         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2161         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2162         GlobalFree. Fixes a part of bug #77075.
2163
2164 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2165
2166         * loader.c: implemented typedef parent in field memberref.
2167
2168 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2169
2170         * marshal.c: Fix warnings and remember to call Release on
2171         IUnknown of RCW.
2172         
2173         Code is contributed under MIT/X11 license.
2174
2175 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2176
2177         * class-internals.h: Add MonoHandleRef definition, and
2178         handleref_class to mono_defaults. 
2179
2180         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2181         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2182
2183         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2184         (do nothing on this stage)
2185         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2186         (emit_marshal_handleref): New method, used for argument handling
2187         of HandleRefs. 
2188
2189 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2190
2191         * class.c (mono_class_setup_parent): Lazily init com types.
2192         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2193         init com types.
2194         * object.c (mono_remote_class_vtable): Lazily init com types.
2195         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2196         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2197         * domain-internals.h: Expose mono_init_com_types.
2198         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2199         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2200         Add support for COM Callable Wrapper marshalling.
2201         * marshal.h: Add icall definitions.
2202         * gc.c: Handle freeing of CCWs in finalizer code.
2203         
2204         Code is contributed under MIT/X11 license.
2205
2206 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2207
2208         * reflection.c: changed all the signature encoding code to use
2209         a variable-sized buffer.
2210
2211 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2212
2213         * marshal.c: locking fixes: never take the loader lock
2214         or other runtime locks when holding the marshal lock
2215         (fixes bug#80664).
2216
2217 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2218
2219         * marshal.c: make the delegate function pointer mapping
2220         work for the moving GC.
2221
2222 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2223
2224         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2225         for bug #80618.
2226
2227 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2228
2229         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2230         gmodule.
2231
2232 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2233
2234         * threadpool.c: made the code moving-GC safe.
2235
2236 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2237
2238         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2239         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2240         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2241         warning cleanup.
2242         * reflection.c: warning cleanup, some threading and moving GC fixes.
2243
2244 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2245
2246         * class.c, loader.c: create the needed Set/Get/Address array methods
2247         as well as the .ctors in mono_class_init (), fixes bug #80567.
2248
2249 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2250
2251         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2252         we doesn't decrease its alignment. Should fix the sparc build.
2253
2254 2007-01-24  Dick Porter  <dick@ximian.com>
2255
2256         * socket-io.c
2257         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2258         Create the returned object if we need to ignore an unsupported
2259         socket option.  Fixes a segfault reported by Atsushi.
2260
2261 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2262
2263         * class.c, object.c: restrict GC-tracked fields to
2264         UIntPtr fields used inside corlib, so we provide better
2265         type info to the GC and also allow broken packing as in
2266         bug #80580.
2267
2268 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2269
2270         * sgen-gc.c: removed duplicated function.
2271
2272 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2273
2274         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2275         value that means that the value is not supported, but that we
2276         should not return a failure, but instead report this as a
2277         successful operation.
2278
2279 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2280
2281         Fix tests/bug79956.2.il
2282         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2283         (mono_generic_class_get_class): If the generic definition in an
2284         enum, copy over other fields related to it.
2285
2286 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2287
2288         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2289         genericinst enums (bug #79215).
2290
2291 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2292         * class.c: Fix bug 80307.
2293
2294 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2295
2296         * image.c: if the file table is not present, try to load
2297         all the modules, since we don't have info about them
2298         having or not metadata (bug #80517).
2299         * assembly.c: allow mono_assembly_load_references () to
2300         work for netmodules.
2301
2302 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2303
2304         * image.c, metadata-internals.h, object.c: execute module
2305         cctors when running on the 2 runtime if present (bug #80487).
2306
2307 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2308
2309         * icall.c: optimized InitializeArray() on bigendian.
2310
2311 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2312
2313         * icall.c: fix for the broken ARM FPA double format.
2314
2315 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2316
2317         * icall.c: handle endian issues for r4 and r8 types, too, in
2318         the InitializeArray() icall.
2319
2320 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2321
2322         * loader.c (mono_loader_error_prepare_exception): Clear the error
2323         once we have extracted the information from it, do this before we
2324         call into the JIT's class loading mechanisms.
2325
2326         * object.c (mono_class_create_runtime_vtable): Do not clear the
2327         loader error before calling mono_class_get_exception_for_failure
2328         as the loader error is needed inside
2329         mono_class_get_exception_for_failure to throw the error (thinko).
2330
2331         Fixes #80521
2332         
2333 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2334
2335         * reflection.c: align fields rva data so it's faster to load at
2336         runtime.
2337
2338 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2339
2340         Prepare to simplify GenericMethod handling.
2341         * class-internals.h (mono_method_get_context): New accessor function.
2342         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2343         rather than directly accessing '->context' field.
2344
2345         * class-internals.h (_MonoGenericParam.method): Move ...
2346         (_MonoGenericContainer): ... here.  Add into union with klass field.
2347         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2348         Update to changes.
2349
2350 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2351
2352         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2353         the wrapper type enum and reduce relocations.
2354
2355 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2356
2357         * reflection.c (inflate_mono_method): Reuse method instantiation
2358         from the generic method, if available.
2359
2360 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2361
2362         * marshal.c (emit_marshal_variant): Fix conv_arg
2363         type in last commit, based on whether parameter is byref.
2364         
2365 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2366
2367         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2368         marshalling.
2369         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2370         MONO_TYPE_OBJECT back for VARIANT support.
2371
2372 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2373
2374         * marshal.c, marshal.h, icall-def.h: Implement 
2375         Marshal.ReAllocCoTaskMem.
2376
2377 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2378
2379         * marshal.c: memory retention fixes: use the proper
2380         image cache for runtime_invoke method lookups.
2381
2382 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2383
2384         * mempool.c: added code to help debug mempool allocations.
2385
2386 2007-01-11  Dick Porter  <dick@ximian.com>
2387
2388         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2389         support (experimenting with faking it with IP_MTU_DISCOVER for
2390         systems that don't have IP_DONTFRAGMENT.)
2391         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2392         icall.
2393
2394         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2395
2396         * socket-io.h: Add new fields to MonoSocketAsyncResult
2397         corresponding to the new ones in Socket.cs.
2398
2399 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2400
2401         Fix IronPython regression mentioned in #80249
2402         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2403         'cached_context' field, since it may have been initialized as a
2404         side-effect of metadata parsing.
2405
2406         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2407         (_MonoGenericClass.cached_class): Move here and rename from lone
2408         remaining field of ...
2409         (_MonoInflatedGenericClass): ... this.  Remove.
2410         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2411         to changes.
2412
2413         Fix mcs/tests/test-128.cs regression.
2414         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2415         2007-01-10 change below.
2416         [MONO_TYPE_OBJECT]: Recurse into array case.
2417
2418 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2419
2420         * class-internals.h (mono_get_inflated_generic_class): Remove.
2421         * class.c (mono_get_inflated_generic_class): Remove.
2422         (mono_generic_class_get_class): Rename from
2423         mono_class_create_generic.
2424         (mono_class_from_mono_type) [GENERICINST]: Use it.
2425         * reflection.c, metadata.c: Update to changes.  Use
2426         'mono_class_from_mono_type'.
2427
2428 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2429
2430         * reflection.c: use passed type when encoding an array element
2431         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2432
2433 2007-01-09  Robert Jordan  <robertj@gmx.net>
2434
2435         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2436         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2437         Fixes bug #80392.
2438
2439 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2440
2441         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2442
2443         * object.c (set_value): Avoid aliasing between type->data.klass
2444         and type->data.generic_class.
2445
2446         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2447
2448 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2449
2450         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2451         between type->data.klass and type->data.generic_class.
2452
2453 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2454
2455         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2456         value in out parameters.
2457
2458 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2459
2460         Simplify invariant for MonoGenericClass::klass field.
2461         * class.c (mono_class_create_generic): Verify 'klass' is null.
2462         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2463         initialize 'klass' field.
2464
2465 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2466
2467         Ongoing work to avoid redundant data and simplify invariants.
2468         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2469         'generic_class', and change type to a GenericInst.
2470         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2471         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2472
2473 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2474
2475         * class.c : skip io-layer under PLATFORM_WIN32.
2476
2477 2007-01-03  Tor Lillqvist  <tml@novell.com>
2478
2479         Fix #80305: In a bundled executable, look in the bundled exe
2480         assembly to determine the runtime version. Add the possibility to
2481         bundle also the machine.config file.
2482         
2483         * assembly.c (mono_assembly_open_from_bundle): Make
2484         non-static. Allow being called even if we have no bundled
2485         assemblies, and return NULL right away in that case.
2486
2487         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2488         here.
2489
2490         * domain.c (app_config_parse): Take an assembly exe file name as
2491         parameter instead of a config file name. Check for a bundled
2492         config file for that assembly by calling
2493         mono_config_string_for_assembly_file() (see below) before looking
2494         for one in the file system.
2495         (get_runtimes_from_exe): Corrsponding change to call of
2496         app_config_parse().
2497         (get_runtimes_from_exe): Check for bundled assembly exe file first
2498         by calling mono_assembly_open_from_bundle(). If no bundled
2499         assembly exe file is found, call mono_image_open() as before to
2500         look it up in the file system.
2501
2502         * mono-config.c: Add variable bundled_machinec_onfig.
2503         (mono_config_string_for_assembly_file): New function.
2504         (mono_config_for_assembly): Move code snippet that looks for a
2505         bundled assembly .config file into the above new function. Call
2506         it.
2507         (mono_register_machine_config, mono_get_machine_config): New
2508         functions to set and retrieve
2509
2510         * assembly.h: Declare mono_register_machine_config().
2511
2512         * mono-config.h: Declare mono_get_machine_config() and
2513         mono_config_string_for_assembly_file().
2514
2515         * icall.c: No declaration of environ necessary on Win32. It is
2516         declared (as a macro expanding to a function call) in stdlib.h.
2517         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2518         New internal mono function. Returns the value of
2519         mono_get_machine_config() as a Mono string.
2520
2521         * icall-def.h: Add get_bundled_machine_config().
2522
2523 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2524
2525         Remove redundant field
2526         * class-internals.h (_MonoGenericContext.container): Remove field.
2527         * loader.c (mono_method_get_signature_full): Don't parse a
2528         "container" for a signature parse when the signature is inflated
2529         immediately.
2530         (method_from_methodspec): Likewise, for a generic_inst.
2531         * class.c, metadata.c, reflection.c: Update to changes.
2532
2533 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2534
2535         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2536         'cached_context', and change semantics -- it starts off NULL, and
2537         is initialized on demand.
2538         * class.c (mono_generic_class_get_context): New accessor to
2539         replace 'context' field accesses.
2540         (mono_class_get_context): New helper.
2541         (*): Update to changes.
2542         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2543
2544 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2545
2546         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2547         before the memcpy.   Fixes Marshal2 regression.
2548
2549 2007-01-02  Jb Evain  <jbevain@gmail.com>
2550
2551         * blob.h: add a MONO_TYPE_ENUM definition
2552         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2553         fix the encoding of arrays of enums in custom attributes.
2554
2555         Fixes #79666.
2556
2557 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2558
2559         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2560         string is null terminated, but only cut the string short if it
2561         overflows the buffer.   
2562         
2563         (mono_string_to_byvalstr): Also fix this routine.   The code here
2564         was not properly terminating a string (it was only terminated
2565         because of the previous catch-all memset). 
2566
2567         I left the memset, because I do not know if applications expect
2568         the runtime to clear this region. 
2569
2570         Fixes #79944.
2571
2572         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2573         Clear the error before returning to unmanaged code to prevent the
2574         runtime from being confused later on (fixes  80420).
2575         (ves_icall_type_from_name): Always call mono_loader_clear_error
2576         after parsing a type that could have failed.
2577         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2578
2579         * loader.c (mono_loader_clear_error): Fix indentation.
2580
2581 2006-12-28  Martin Baulig  <martin@ximian.com>
2582
2583         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2584
2585 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2586
2587         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2588         getting a token for an EnumBuilder.
2589
2590 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2591
2592         * reflection.c: be more careful in case resource generation
2593         fails to create the data array.
2594
2595 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2596
2597         * sgen-gc.c: write barrier for clone and fix unregister handles.
2598
2599 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2600
2601         * reflection.c: some fixes needed in the generics code for the moving GC.
2602
2603 2006-12-22  Robert Jordan  <robertj@gmx.net>
2604
2605         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2606         account. Fixes bug #80299.
2607
2608 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2609
2610         Fix WaitHandle usage in delegates.
2611         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2612         * object.c (mono_wait_handle_new): Use the property set method to
2613         initialize the handle.
2614         (mono_wait_handle_get_handle): New.
2615         * threadpool.c (mono_async_invoke): Use it.
2616         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2617         Likewise.
2618         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2619
2620 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2621
2622         * marshal.c (emit_marshal): Call emit_marshal_variant and
2623         emit_marshal_com_interface when applicable.
2624         (emit_marshal_variant, emit_marshal_com_interface): Add
2625         methods for this case and remove if's from emit_marshal_object.
2626         
2627 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2628
2629         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2630
2631 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2632
2633         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2634         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2635         and GlobalFree on Windows. Remove FIXME.
2636
2637 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2638
2639         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2640         implementation for managed objects.
2641
2642 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2643
2644         * object.c: implemented code to be used for checking
2645         that no reference field overlaps with non-references.
2646
2647 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2648
2649         * threadpool.c: fix queue code to be compatible with the
2650         moving GC.
2651
2652 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2653
2654         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2655         in structures by throwing ArgumentNullException.
2656
2657         (emit_marshal_safehandle): Also when they are null parameters.
2658
2659         (emit_marshal_safehandle): Add support for ref
2660         SafeHandles parameters
2661
2662 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2663
2664         * profiler.c: updated to use the mono-dl API instead of
2665         gmodule.
2666
2667 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2668
2669         * profiler.c: updated to use the mono-dl dynamic loading
2670         API instead of gmodule.
2671
2672 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2673
2674         * profiler.c: use readlink, older versions of glib don't have
2675         g_file_read_link ().
2676
2677 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2678
2679         * profiler.c: try to detect the path to mono if libc fails to provide
2680         a useful name (bug #80286).
2681
2682 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2683
2684         Fix #80242
2685         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2686         instance, use the generic type definition instead.
2687         (ves_icall_Type_GetNestedTypes): Likewise.
2688         * class.c (mono_class_create_generic): Always set the
2689         nested_classes of a generic instance to NULL, even if the generic
2690         type definition has nested types.
2691
2692 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2693
2694         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2695         and fix on Linux.
2696         
2697 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2698
2699         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2700         my arguments were in the wrong order.   I also fixed the Windows
2701         version which seems to have had the same issue.
2702
2703         (mono_free_bstr): On Unix, this is g_free.
2704         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2705         conversions (for the tests in corlib to pass).
2706
2707 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2708
2709         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2710         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2711         exception if a ref SafeHandle in a struct has changed).
2712         
2713         (emit_struct_conv): Do not perform layout checks for classes
2714         derived from SafeHandle, as those are specially handled. 
2715
2716         (emit_object_to_ptr_conv): Add support for
2717         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2718
2719         (emit_marshal_safehandle): Implement conversion of return values
2720         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2721         
2722         * threads.c: WaitHandle now is compiled with two different handles
2723         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2724         for 2.0.
2725         
2726         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2727         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2728         these routines to cope with both kinds of fields.
2729
2730 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2731
2732         * metadata.c (mono_type_to_unmanaged): Handle the case where
2733         type->data.klass is a SafeHandle, and in that case, return the
2734         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2735         MONO_MARSHAL_CONV_SAFEHANDLE. 
2736
2737 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2738
2739         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2740         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2741         calling emit_marshal_object.
2742
2743         (emit_marshal_safehandle): Implement marshalling of
2744         SafeHandle parameters (no ref support yet).
2745
2746         (MarshalAction): Document the defines as I implement
2747         them for SafeHandle.
2748
2749         (emit_marshal_object): indentation police.
2750
2751         * class-internals.h: Define MonoSafeHandle.
2752         Add safehandle_class to MonoDefaults type.
2753
2754         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2755         list of classes to check for fields. 
2756
2757         * domain.c (mono_init_internal): Add SafeHandle to the list of
2758         mono_defaults loaded.
2759
2760 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2761
2762         Fix #80253
2763         * reflection.c (mono_reflection_bind_generic_parameters): If the
2764         generic type definition is a type builder, ensure that it is fully
2765         initialized before instantiating it.  Kill some dead code.
2766
2767 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2768
2769         * object.c: clear the loader_error () before loading
2770         more metadata stuff (bug #80258).
2771
2772 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2773
2774         * icall.c, icall-defs.h: type modifiers icalls for
2775         parameters and properties.
2776
2777 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2778
2779         * object.c, icall.c: fixed warnings.
2780
2781 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2782
2783         * marshal.c: fixed a couple of leaks and coding style in a few places.
2784
2785 2006-12-08  Dick Porter  <dick@ximian.com>
2786
2787         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2788         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2789         80173.
2790
2791 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2792
2793         * process.c: ProcessStartInfo may have only filename set and
2794         arguments can be NULL.
2795
2796 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2797
2798         * icall.c: fix leak found by Robert Jordan.
2799
2800 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2801
2802         * marshal.c, marshal.h: generate managed method to access an element
2803         of a multi-dimensional array.
2804
2805 2006-11-30  Paolo Molaro (lupus@ximian.com)
2806
2807         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2808
2809 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2810
2811         * icall.c: back out GetFields () fix until the serialization code is
2812         fixed to not depend on the incorrect behaviour.
2813
2814 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2815
2816         * profiler.c: provide defaults if none are set.
2817
2818 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2819
2820         * Makefile.am, attrdefs.h: new public header file with
2821         constants for attributes for use by embedders.
2822
2823 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
2824
2825         * icall.c: GetFields () fix for bug #80064.
2826
2827 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
2828
2829         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
2830         removed long unused icalls.
2831
2832 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2833   
2834         * marshal.c: 
2835                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2836                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2837                 can be generated without a delegate class.
2838                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2839         
2840         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2841
2842 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2843
2844         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2845         #80069.
2846
2847 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2848
2849         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2850         icall-def.h: added icalls needed by System.GC.
2851
2852 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2853
2854         * loader.c: ensure the class in catch clauses is handled
2855         correctly for generics methods (fixes bug#79980).
2856
2857 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2858
2859         * monitor.h, monitor.c: added mono_locks_dump () function
2860         to help debug deadlocks involving managed locks.
2861
2862 2006-11-13  Dick Porter  <dick@ximian.com>
2863
2864         * file-io.c (get_file_attributes): If the file is a symlink try
2865         and get the stat data for the target, but also add the
2866         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2867         the specs for the windows symlink support, but will probably have
2868         to be reworked when I have test data from a vista machine.  Fixes
2869         bug 79887.
2870
2871 2006-11-13  Dick Porter  <dick@ximian.com>
2872
2873         * gc.c (mono_domain_finalize): 
2874         * marshal.c (mono_delegate_begin_invoke): 
2875         * threadpool.c (socket_io_init, mono_thread_pool_init)
2876         (mono_thread_pool_finish): 
2877         * monitor.c (mono_monitor_try_enter_internal): 
2878         * threads.c (mono_thread_resume, mono_thread_init)
2879         (mono_thread_suspend_all_other_threads)
2880         (mono_thread_execute_interruption): 
2881         * appdomain.c (mono_domain_unload): Check for NULL error returns
2882         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2883         75733.
2884
2885 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2886
2887         * process.c
2888         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2889         Only close the handle if the value of the handle is not
2890         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2891         robust.
2892
2893         Improvement for #75733, so that we do not run into this problem. 
2894
2895         
2896         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2897         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2898         internal variables.  Fixes #79462 
2899         
2900
2901 2006-11-09  Dick Porter  <dick@ximian.com>
2902
2903         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2904         Use poll() not select().  Fixes bug 79397.
2905
2906 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2907
2908         Fix #79872
2909         * assembly.c (mono_assembly_load_from_full): Check that the given
2910         image has an assembly manifest.
2911
2912 2006-11-09  Ankit Jain  <jankit@novell.com>
2913
2914         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2915         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2916         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2917
2918 2006-11-07  Dick Porter  <dick@ximian.com>
2919
2920         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2921         Put the old resolver behaviour back for pre-2.0 profiles.
2922
2923 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2924
2925         * threadpool.c: precise GC and locking fixes.
2926
2927 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2928
2929         * class.c: don't load types that have an explicit unaligned
2930         managed reference. Provide better info in the TypeLoad exception.
2931         Part of the fix for bug #79744.
2932         * object.c: use the correct check for class type load issues.
2933
2934 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2935
2936         * class.c: enforce alignment of fields with managed references
2937         even when Pack=1 is forced by the user (bug #77788).
2938
2939 2006-11-03  Dick Porter  <dick@ximian.com>
2940
2941         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2942         If the address reverse lookup fails, return it as the hostname
2943         anyway.  Fixes bug 79721.
2944
2945 2006-11-03  Dick Porter  <dick@ximian.com>
2946
2947         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2948         Fix build on Windows.
2949
2950 2006-11-02  Dick Porter  <dick@ximian.com>
2951
2952         * icall-def.h: 
2953         * object-internals.h: 
2954         * exception.c (mono_get_exception_thread_interrupted): 
2955         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2956         Fixes bug 74525.
2957
2958         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2959         Check for pending Thread.Interrupt.
2960
2961 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2962         * loader.c: Fixed bug 79684.
2963
2964 2006-10-27  Dick Porter  <dick@ximian.com>
2965
2966         * file-io.c (get_file_attributes): Force symlinks to directories
2967         to be returned as a regular file.  Fixes bug 79733.
2968 2006-10-26  Dick Porter  <dick@ximian.com>
2969
2970         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2971         CreateFile to open a directory then we need to set the
2972         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2973
2974 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2975
2976         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2977         friends.
2978
2979 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2980
2981         * sgengc.c: small cleanup of timer code.
2982
2983 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2984
2985         * sgen-gc.c: fix some warnings and start adding support for
2986         complete object removal on domain unload.
2987
2988 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2989
2990         * assembly.c: build_assembly_name should not consider a version
2991         number without build or revision number invalid. Fixes bug #79715.
2992
2993 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2994
2995         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2996         call kernel32 function OutputDebugString directly.
2997         
2998         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2999         
3000 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
3001
3002         * reflection.c: small cleanup, using a function to insert a MonoString
3003         in the string heap.
3004
3005 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
3006
3007         * reflection.c: moving GC fixes.
3008
3009 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
3010
3011         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
3012         all the objects with finalizers belonging to an unloading appdomain.
3013
3014 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
3015
3016         * sgen-gc.c: added ability to allocate even when the nursery is fully
3017         pinned and fixed a couple of bugs.
3018
3019 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3020
3021         * threads.h: Revert the last change for now.
3022
3023         * threads.h (mono_thread_get_pending_exception): Rename this to
3024         mono_thread_get_undeniable_exception ().
3025
3026 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
3027
3028         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
3029         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
3030         when fname does not refer to valid assembly. This result in a more
3031         meaningful error message.
3032         * exception.c: added mono_get_exception_bad_image_format2 which 
3033         constructs a BadImageFormatException using the ctor taking a custom
3034         message and the file name. Passing in a NULL msg results in a default
3035         message.
3036         * exception.h: define mono_get_exception_bad_image_format2 function.
3037         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
3038         when file name pointed to an invalid IL image. Use 
3039         mono_get_exception_file_not_found2 to construct FileNotFoundException,
3040         as this results in a more meaningful error message.
3041
3042 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3043
3044         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
3045         #79465.
3046
3047 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
3048
3049         * metadata.c (mono_type_size): Change the align parameter to guint32 for
3050         consistency with the other _size functions.
3051         (mono_type_stack_size): Ditto.
3052
3053         * class.c object.c icall.c: Fix warnings caused by the above change.
3054
3055         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
3056
3057         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
3058
3059         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
3060
3061 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3062
3063         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
3064         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
3065         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
3066         threadpool.h, threads-types.h: mark more internal functions.
3067
3068 2006-10-11  Dick Porter  <dick@ximian.com>
3069
3070         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3071         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
3072         reproduce the bug even before applying the fix.)
3073
3074 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
3075
3076         * reflection.c: allow retrieving attributes for arguments in generic
3077         methods (bug #79241).
3078
3079 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
3080
3081         * debug-mono-symfile.c: properly check fopen () result (found by
3082         coverity).
3083
3084 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
3085
3086         * reflection.c: make error message clearer and fixed two
3087         issuelets found by Coverity.
3088
3089 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
3090
3091         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
3092
3093 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3094
3095         * object-internals.h, gc-internal.h, profiler-private.h:
3096         mark internal functions.
3097
3098 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3099
3100         * reflection.c: put data in the text section.
3101         * icall.c: recognize more types in type_from_typename ().
3102         * process.c, marshal.c: added some GC FIXMEs.
3103
3104 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3105
3106         * loader.c: check for NULL before initializing.
3107
3108 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3109
3110         * gc.c (finalizer_thread): Use a non-alertable wait here.
3111
3112         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3113         until the correct solution is found.
3114
3115 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3116
3117         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3118         modules with no metadata. Fixes #79596.
3119
3120         * image.c (load_metadata_ptrs): Put back the error message when
3121         the #- heap is encountered since the support is not complete yet.
3122
3123 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3124
3125         * gc.c: do not allow the user to SuppressFinalize () a
3126         delegate because it would leak the trampoline if present.
3127
3128 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3129
3130         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3131         PropertyPtr table.
3132
3133 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3134
3135         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3136
3137         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3138
3139         * row-indexes.h: Add definitions for *Ptr tables.
3140
3141         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3142
3143         * metadata.c (mono_metadata_translate_token_index): New helper function to
3144         translate table indexes used in uncompressed metadata.
3145         (mono_metadata_decode_table_row): Ditto.
3146         (mono_metadata_decode_table_row_col): Ditto.
3147
3148         * metadata.c: Add table schema for *Ptr tables.
3149
3150         * class.c loader.c: Use the new helper function to access the affected metadata
3151         tables.
3152         
3153         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3154         #38532.
3155         
3156 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3157
3158         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3159         sequences which can be unbounded in size. Fixes #79583.
3160
3161 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3162
3163         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3164         static initialization.
3165
3166         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3167
3168         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3169
3170         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3171
3172         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3173         ctor fails, i.e. throw the same exception on subsequent accesses.
3174         
3175 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3176
3177         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3178         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3179         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3180         Handle marshalling of interfaces and VARIANTs contained in structs.
3181         
3182         Code is contributed under MIT/X11 license.
3183         
3184 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3185
3186         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3187         
3188         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3189         mempool.
3190
3191 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3192
3193         * console-io.c: ignore previous SIGINT handler.
3194
3195 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3196
3197         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3198         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3199         #79460, #79461, #79485.
3200
3201         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3202
3203         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3204         #79217.
3205
3206 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3207
3208         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3209         could be generated from it.
3210
3211 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3212
3213         * rand.c: fix read loop to correctly handle EINTR.
3214
3215 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3216
3217         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3218         internal calls are defined to keep methods closer to the declaring
3219         type and allow a significant reduction in runtime relocations and
3220         memory usage.
3221
3222 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3223
3224         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3225         exception message to have FileNotFoundException use the default
3226         assembly load error message. Fixes bug #79426.
3227         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3228
3229 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3230
3231         * threadpool.c: (start_thread_or_queue) use the root domain when
3232         creating the thread instead of the async object one.
3233
3234 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3235
3236         * class.c, object.c, class-internals.h, reflection.c:
3237         for arrays, store element_size inside MonoClass (speedup
3238         for array object creation).
3239
3240 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3241
3242         * icall.c: fixed CodeBase to use the file name and not the module
3243         name (bug #79365).
3244
3245 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3246
3247         * mono-debug.c, mono-debug.h: export find_method as
3248         mono_debug_find_method ().
3249
3250 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3251
3252         * debug-helpers.c, class-internals.h: added a few functions useful
3253         when debugging under gdb.
3254
3255 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3256
3257         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3258         characters that need special handling.
3259
3260 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3261
3262         * mono-config.c: make the os/cpu specification more flexible,
3263         allowing lists and negation.
3264
3265 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3266
3267         * marshal.c: COM Interop fixes. Handle case where method->klass.
3268         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3269         calling convention on non-windows platforms. This is for
3270         compatibility with XPCOM and MainWin COM.
3271         
3272         Code is contributed under MIT/X11 license.
3273         
3274
3275 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3276
3277         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3278         correctly. Fixes #79217.
3279
3280         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3281
3282 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3283
3284         * mono-config.c: allow both an os and cpu attribute for dllmap
3285         and dllentry elemnets to enable a single config file to be used
3286         for multiple architectures.
3287
3288 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3289
3290         * loader.c: MonoLoaderError was cleared too soon on load failure.
3291         Fixes bug #79424.
3292
3293 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3294
3295         * icall.c: use the defining class vtable when accessing a
3296         static field, not a pobblibly derived class.
3297
3298 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3299
3300         * icall.c string-icalls.c: Remove references to unicode.h.
3301
3302         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3303
3304         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3305
3306         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3307         indicating the image where custom marshaller types should be looked up.
3308         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3309         custom marshallers, instead of corlib. Fixes #79425.
3310
3311 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3312
3313         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3314
3315 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3316
3317         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3318         Implement Environment.ProcessorCount.
3319         
3320         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3321         Implement Environment.ProcessorCount.
3322         
3323         * icall.c: 
3324         Add Environment.ProcessorCount icall.
3325         
3326         Patch by Jason McFall.
3327
3328 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3329
3330         * assembly.c: don't append .exe/.dll when the filename already contains
3331         one of those extensions.
3332
3333 2006-09-12  Martin Baulig  <martin@ximian.com>
3334
3335         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3336         to array interfaces.
3337
3338 2006-09-11  Martin Baulig  <martin@ximian.com>
3339
3340         * reflection.c (mono_image_build_metadata): Create the
3341         MethodImpl's after emitting all types and methods, so we don't
3342         need another fixup pass for them.
3343
3344 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3345
3346         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3347         change.
3348
3349 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3350
3351         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3352         unload.
3353
3354 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3355
3356         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3357         args is not set. Fixes #78926.
3358
3359 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3360
3361         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3362
3363         * image.c (load_class_names): Move this to class.c, and rename it to 
3364         'mono_image_init_name_cache'.
3365         (load_modules): Fix a warning.
3366
3367         * class.c icall.c image.c: Initialize image->name_cache lazily.
3368
3369         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3370         on its name using information in the AOT file.
3371
3372         * class.c (mono_class_from_name): Use the new hook function.
3373
3374 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3375
3376         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3377         correctly.
3378
3379         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3380         Fixes #79289.
3381         
3382 2006-09-06  Martin Baulig  <martin@ximian.com>
3383
3384         * icall.c (mono_lookup_internal_call): Small fix.
3385
3386 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3387
3388         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3389         double g_free.
3390
3391 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3392
3393         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3394         when --debug is specified.
3395
3396 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3397
3398         * class.c (setup_generic_array_ifaces): Fix a warning.
3399
3400 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3401
3402         * Temporarily remove the patch to assemly.c that checks the
3403         assembly versions as it breaks our gacutil.
3404
3405 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3406
3407         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3408
3409         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3410         a net 1.0 runtime.
3411
3412         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3413         created using the default ctor. Fixes #79152.
3414         (mono_string_builder_to_utf16): Ditto.
3415
3416 2006-09-01  Martin Baulig  <martin@ximian.com>
3417
3418         Fix handling of the generic array interfaces.
3419
3420         * class-internals.h
3421         (MonoDefaults): Removed `generic_array_class' and added
3422         `generic_ilist' class.
3423
3424         * class.c
3425         (mono_bounded_array_class_get): Add the new generic array interfaces.
3426         (setup_generic_array_ifaces): New static method; create vtable
3427         entries for each method in the generic array interfaces.
3428
3429         * metadata.c
3430         (select_container): Allow "parent-less" generic methods.
3431
3432         * marshal.c
3433         (mono_marshal_get_generic_array_helper): New public method.
3434
3435         * icall.c
3436         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3437         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3438         moved the interncall into System.Array.
3439
3440 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3441
3442         A few more cases of avoiding work on types with ->byref set.
3443         Has the real fix for #79238
3444         * icall.c (is_generic_parameter): New helper.
3445         (ves_icall_Type_GetGenericParameterPosition): Use it.
3446         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3447         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3448         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3449         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3450         reference types.
3451         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3452         reference types.
3453         (ves_icall_Type_get_IsGenericInstance): Likewise.
3454         (ves_icall_Type_get_IsGenericType): Likewise.
3455
3456 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3457
3458         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3459         class if possible.
3460
3461         * mempool.h (mono_mempool_get_allocated): New helper function.
3462
3463         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3464         change.
3465
3466         * mempool.c: Fix warnings and the calculation of stats.
3467
3468         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3469
3470         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3471
3472         * loader.c (mono_get_method_from_token): Update method_count stat.
3473
3474         * class-internals.h (MonoStats): Add some stats.
3475
3476 2006-08-31 Robert Jordan  <robertj@gmx.net>
3477
3478         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3479         with managed variants.
3480         All code is contributed under the MIT/X11 license.
3481         
3482 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3483
3484         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3485         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3486
3487         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3488
3489         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3490         with cycles in classes.
3491
3492         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3493
3494         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3495         missing a [MarshalAs] directive. Fixes #79203.
3496
3497         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3498         klass->marshal_info. Fixes #79217.
3499
3500 2006-08-30  Martin Baulig  <martin@ximian.com>
3501
3502         Committing a patch from Joachim Ante <joe@otee.dk>:
3503         Add support for binary data symbol stores.
3504
3505         * debug-mono-symfile.c
3506         (mono_debug_open_mono_symbol_file): Renamed into
3507         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3508         arguments.
3509
3510         * mono-debug.c
3511         (mono_debug_open_image): Added `raw_contents' and `size' args.
3512         (mono_debug_init_2_memory): New public function.
3513
3514 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3515
3516         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3517
3518 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3519
3520         * appdomain.c: implement support for ShadowCopyFiles.
3521
3522 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3523
3524         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3525         when value is NULL (and should remove CID #51).
3526
3527 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3528
3529         * image.c: moved 2 functions to ../utils.
3530
3531 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3532
3533         * gc.c: cope with the target object of a GC handle being NULL
3534         (bug #78877).
3535
3536 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3537
3538         * class.c: recursively check parent's explicit implementations
3539         of interface methods (fixes bug #79125).
3540
3541 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3542
3543         * filewatcher.c: Avoid warnings when building, do not redefine
3544         constants that are defined.
3545
3546         Remove warnings.
3547
3548 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3549
3550         * image.c: don't fail when the link points to an absolute path.
3551
3552 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3553
3554         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3555         Fix CID #3.
3556
3557 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3558
3559         * image.c (full_path): A new method used to obtain the actual path
3560         of an assembly even in the presence of symbolic links.  
3561
3562         This is necessary for the case where we are running a binary that
3563         has been GACed, but we are using the "published" path name
3564         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3565         file in the GAC.
3566
3567         This was the source of the failure for the `xsp' command with the
3568         recent AppDomain changes, as far as the runtime was concerned,
3569         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3570         $prefix/mono/gac/blah/version/blah.exe.
3571
3572         (do_mono_image_open): use full path
3573
3574 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3575
3576         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3577
3578 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3579
3580         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3581         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3582
3583 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3584
3585         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3586         small structures. Fixes #78990.
3587
3588 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3589
3590         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3591
3592         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3593
3594 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3595
3596         * appdomain.c:
3597         * marshal.c: don't load all the assemblies from a domain into newly
3598         created ones. The new domains might have different rules and load
3599         assemblies from different locations. Fixes bug #76757.
3600
3601         Patch by Lluis. Conflicts resolved by Brian Crowell.
3602
3603 2006-08-16  Alp Toker  <alp@atoker.com>
3604
3605         * socket-io.c: First half of the fix for #79084.
3606         Set sa_size to the length of the content, not that of the struct.
3607         Don't add NULL suffix to the content, this should be done in
3608         managed code if needed.
3609
3610 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3611
3612         Fix part of #79012
3613         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3614         mono_metadata_parse_type returns NULL.
3615
3616 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3617
3618         * normalization-tables.h : new file for string normalization data.
3619         * locales.c, locales.h, icall.c :
3620           added load_normalization_resource() for string normalization,
3621           and icall as well.
3622         * Makefile.am : added normalization-tables.h to the sources.
3623
3624 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3625
3626         * marshal.c: Add more helper functions to reduce code duplication and use them
3627         everywhere.
3628
3629 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3630
3631         * marshal.c: Fix non-x86 stdcall warnings.
3632         
3633         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3634         them everywhere.
3635
3636 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3637
3638         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3639         type check on multi-dimensional arrays. Fixes #79000.
3640
3641 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3642
3643         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3644         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3645         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3646         * class-internals.h: add is_com_object to class structure.
3647         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3648         null checks to COM object marshalling. Fix .ctor call on RCW.
3649         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3650         
3651         All code is contributed under the MIT/X11 license.
3652
3653 2006-08-09  Dick Porter  <dick@ximian.com>
3654
3655         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3656         racing mono_monitor_allocator_lock() somewhere, so don't delete
3657         the critical section for now.  Found by running and exiting
3658         monodevelop.
3659
3660 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3661
3662         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3663         (ves_icall_System_ComObject_FindInterface): Ditto.
3664         (ves_icall_System_ComObject_CacheInterface): Ditto.
3665
3666         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3667         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3668
3669 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3670
3671         * threadpool.c: treat pipes from process asynchronous reads as sockets
3672         when reading from them, so we get select/poll or epoll to wait for
3673         data.
3674
3675 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3676
3677         * loader.c: Fix a typo (CID #233) in the null check.
3678
3679 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3680
3681         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3682         Hopefully fixes #78949.
3683         
3684         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3685         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3686         bytes. Fixes #78972.
3687
3688 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3689
3690         * filewatcher.c: we need to set errno here.
3691
3692 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3693
3694         * filewatcher.c: let Win32Exception get the error value.
3695
3696 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3697
3698         * filewatcher.c: translate errno into win32 errors for Win32Exception
3699         to know what happened.
3700
3701 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3702
3703         * threadpool.c: Fix more warnings.
3704
3705         * assembly.c (search_loaded): Fix warnings.
3706
3707         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3708         (mono_async_invoke): Ditto.
3709
3710 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3711
3712         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3713         entries for __ComObject type in addition to ComImport types.
3714         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3715         about hash table.
3716         
3717         All code is contributed under the MIT/X11 license.
3718
3719 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3720
3721         * image.c: avoid tentative loading of modulerefs that contain
3722         no metadata (P/Invoke library names).
3723
3724 2006-07-28  Dick Porter  <dick@ximian.com>
3725
3726         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3727         mono_loader_lock() somewhere, so don't delete the critical section
3728         for now.  Found by running and exiting monodevelop.
3729
3730 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3731
3732         * filewatcher.c: define the inotify syscalls when we're building on
3733         linux and have sys/syscall.h. The build system might not have support
3734         for inotify but the target system might have it.
3735
3736 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3737
3738         * domain.c: Documentation updates.
3739
3740         * loader.c (mono_free_method): Do not release the method
3741         information if we are being profiled, as profilers will use this
3742         information at shut down to present some data to the user.
3743
3744         This is needed so that the profiler does not crash, as the
3745         profiler tends to keep MonoMethods around, and they might become
3746         invalid if we free these.
3747
3748         (mono_get_method_constrained): Return the original CIL stream
3749         method as well, so verification can be performed against it.
3750
3751 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3752
3753         * filewatcher.[ch]: support for inotify file system watcher.
3754         * icall.c: add new internal calls for the inotify file system watcher.
3755
3756 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3757
3758         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3759         #78888.
3760
3761 2006-07-20  Dick Porter  <dick@ximian.com>
3762
3763         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3764         warning.
3765
3766 2006-07-20  Dick Porter  <dick@ximian.com>
3767
3768         * threads.c (start_wrapper): Do the thread cleanup while we still
3769         hold a reference to its object.  Fixes bug 78123.
3770
3771 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3772
3773         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3774         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3775           "managed-to-managed".
3776         * icall.c: Redirect string constructors that take sbyte* to
3777           ves_icall_System_String_ctor_RedirectToCreateString.
3778         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3779           to CreateString () methods with matching signature.
3780         * reflection.c: Use original security informations for
3781           MONO_WRAPPER_MANAGED_TO_MANAGED.
3782         * security-manager.c: Use original security informations for
3783           MONO_WRAPPER_MANAGED_TO_MANAGED.
3784         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3785           that is a placeholder and only its address should be used.
3786         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3787           that is a placeholder and only its address should be used.
3788
3789 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3790
3791         Begin implementing COM Interop.
3792         * appdomain.c: Increment corlib version.
3793         * class.c: Set ComImport classes' parent to __ComObject.
3794         * loader.c: Mark cominterop methods as such.
3795         * domain.c: Add __ComObject class to MonoDefaults structure.
3796         * image.c: Add 2 hashtables to the image for COM Interop related methods
3797         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3798         using the mempool allocator
3799         
3800         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3801         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3802         declaration for mono_metadata_type_dup_mp.
3803         
3804         * debug-helpers.c: Added strings for two additional wrapper types
3805         * object.c: Create proxy objects for ComImport classes
3806         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3807         and added __ComObject class to MonoDefaults structure.
3808         
3809         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3810         MonoComInteropProxy and MonoComObject.
3811         
3812         * marshal.c: Added support for COM Interop
3813         (signature_cominterop): Converts managed signature to corresponding
3814         unmanaged COM signature.
3815         (cominterop_get_function_pointer): gets unmanaged function pointer via
3816         COM object vtable
3817         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3818         (cominterop_get_method_interface): returns interface type that method is defined on
3819         (mono_mb_emit_cominterop_call): emits native call to function pointer
3820         gotten from vtable
3821         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
3822         that matches signature of unmanaged function.
3823         (cominterop_get_native_wrapper): wrapper around adjusted method call.
3824         (cominterop_get_invoke): forwards call from proxy to __ComObject
3825         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
3826         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
3827         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
3828         
3829         * marshal.h: Added Marshal icall declarations.
3830         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
3831         so we can access them in finalizer
3832         
3833 2006-07-14  Dick Porter  <dick@ximian.com>
3834
3835         * object.c (mono_type_initialization_cleanup): Fix a race
3836         condition by temporarily commenting out the critical section
3837         deletion.
3838
3839 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3840
3841         * reflection.c (create_custom_attr): Fix some warnings.
3842         (create_custom_attr_data): Ditto.
3843         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3844         types. Fixes #78855.
3845
3846 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3847
3848         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3849
3850         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3851
3852 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3853
3854         * reflection.c (resolve_object): Add support for DynamicMethod.
3855
3856         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3857         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3858
3859 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3860
3861         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3862         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3863
3864 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3865
3866         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3867         Fixes #77888.
3868
3869 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3870
3871         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3872         slightly: remove a shadow local variable.
3873
3874 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3875
3876         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3877         definition that introduces the virtual function slot.
3878         Also fix Coverity #105.
3879
3880 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3881
3882         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3883         for dynamic assemblies. Fixes #78724.
3884
3885 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3886
3887         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3888         Fixes #78722.
3889
3890 2006-06-21  Martin Baulig  <martin@ximian.com>
3891
3892         * reflection.c
3893         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3894         fixes #76484.
3895
3896 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3897
3898         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3899
3900 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3901
3902         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3903         nor TYPEREFs.
3904         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3905         Inflate result if necessary.
3906         (mono_class_get_full): Remove old version.  Rename from
3907         'mono_class_get' and add 'context' argument.  Pass it to
3908         ..._create_from_typespec.
3909         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3910         (mono_ldtoken): Revert change below.
3911
3912 2006-06-20  Martin Baulig  <martin@ximian.com>
3913
3914         * class.c (mono_ldtoken): Don't pass the generic context to
3915         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3916
3917 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3918
3919         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3920         and later freeing it. Fixes #78638.
3921
3922 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3923
3924         * icall.c (mono_class_get_throw): Revert over-zealous error
3925         throwing, the caller for mono_class_get_throw will cope with
3926         errors when classes are not properly initialized already.
3927
3928         The code still copes with loader exceptions though.
3929
3930         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3931         
3932 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3933
3934         Fixes the `make run1' version of RuntimeAbort (to be commited,
3935         source is in Bugzilla).
3936         
3937         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3938         FALSE on class loading failure instead of returning true.
3939
3940         * class.c (mono_class_create_from_typedef): It is possible for
3941         mono_metadata_interfaces_from_typedef_full to fail if a class is
3942         not found, cope with this.
3943         
3944
3945 2006-06-14  Dick Porter  <dick@ximian.com>
3946
3947         * socket-io.c: 
3948         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3949         4.1.1
3950
3951 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3952
3953         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3954
3955 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3956
3957         * icall.c: Another fix for building mono in Visual Studio.
3958
3959 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3960
3961         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3962         
3963 2006-06-09  Martin Baulig  <martin@ximian.com>
3964
3965         * debug-mono-symfile.c: Put this back and really fix it this
3966         time. Sorry for all the trouble.
3967
3968 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3969
3970         * icall.c (mono_class_get_throw): Fix a warning.
3971         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3972         ReflectionTypeLoadException if needed. Fixes #78606.
3973
3974         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3975         (mono_class_init): Ditto.
3976
3977         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3978         ref_only exceptions.
3979         (mono_loader_clear_error): Make this work even if there is no error.
3980
3981 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3982
3983         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3984         Marshal.GetComSlotForMethodInfo using internal call.
3985
3986 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3987
3988         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3989         a function for signalling it.
3990
3991         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3992         a referenced assembly is not found.
3993
3994         * loader.c (mono_loader_error_prepare_exception): Add support for 
3995         LOADER_ERROR_ASSEMBLY. Fix formatting.
3996
3997 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3998
3999         * domain.c appdomain.c class-internals.h marshal.c: Add support 
4000         for VARIANT marshalling on windows and increment corlib version
4001         since Variant struct was added.
4002
4003 2006-06-03  Miguel de Icaza  <miguel@novell.com>
4004
4005         * debug-mono-symfile.c: Revert Martin's previous patch which broke
4006         stack trace line information:
4007
4008         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
4009         (Martin) when looking up B which is between A and C, return A not C.
4010
4011         Bug is #78573.
4012
4013         Thanks to Alexander Olk for tracking this down.
4014
4015 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
4016
4017         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
4018         
4019         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
4020         avoid clobbering its value.
4021         (mono_string_to_lpstr): Fix a warning on windows.
4022
4023 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4024
4025         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
4026
4027         * reflection.c loader.c: Removed references to 'dummy' flag.
4028
4029         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
4030
4031         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
4032         it gets GC tracking.
4033
4034         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
4035         GC tracking.
4036         
4037         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
4038
4039         * marshal.c threadpool.c: Update callers of mono_async_result_new.
4040
4041         * appdomain.c: Bump corlib version.
4042
4043 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4044
4045         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4046         CEE_STIND_REF when working with object references.
4047
4048 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4049
4050         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
4051         Fixes #78539.
4052
4053 2006-05-30  Miguel de Icaza  <miguel@novell.com>
4054
4055         * loader.c (method_from_memberref): Fix argument value for
4056         mono_loader_set_error_method_load (I was passing the MonoClass
4057         instead of the class name char *).
4058
4059 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4060
4061         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4062         CEE_STIND_REF when working with object references.
4063
4064 2006-05-30  Martin Baulig  <martin@ximian.com>
4065
4066         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
4067         mono_method_full_name() change and replace the ':' with a '.'
4068         here.
4069
4070 2006-05-30  Martin Baulig  <martin@ximian.com>
4071
4072         * debug-mono-symfile.c
4073         (mono_debug_symfile_lookup_location): Fix the algorithm:
4074         when looking up B which is between A and C, return A not C.
4075
4076 2006-05-29  Martin Baulig  <martin@ximian.com>
4077
4078         * mono-debug.h
4079         (MonoDebugMethodInfo): Make the typedef public.
4080         (MonoDebugSourceLocation): New public struct.
4081
4082         * mono-debug.c
4083         (mono_debug_source_location_from_address): Removed.
4084         (mono_debug_source_location_from_il_offset): Removed.
4085         (mono_debug_il_offset_from_address): Removed.
4086         (mono_debug_address_from_il_offset): Removed.
4087         (mono_debug_lookup_method): New public function.
4088         (mono_debug_lookup_source_location): New public function; replaces
4089         the old mono_debug_source_location_from_*() functions; see the
4090         inline documentation.
4091         (mono_debug_free_source_location): New public function.
4092         (mono_debug_print_stack_frame): New public function; see the
4093         inline documentation.
4094
4095         * debug-mono-symfile.c
4096         (mono_debug_find_source_location): Renamed into
4097         mono_debug_symfile_lookup_location(); only take a
4098         `MonoDebugMethodInfo *' and an `offset' argument; added inline
4099         documentation.
4100         (mono_debug_find_method): Renamed into
4101         mono_debug_symfile_lookup_method().
4102
4103 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
4104
4105         * assembly.c (mono_assembly_open_full): Dont overwrite the status
4106         returned by mono_image_open_full ().
4107
4108         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4109         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4110         #78517.
4111
4112         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4113         #78518.
4114
4115 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4116
4117         * class.c (mono_class_from_typeref): handle missing images
4118         earlier, deals with bug #78418.   Refactor code; 
4119
4120         Fix a warning introduced in my previous commit (some stale code
4121         from before I revisited my patch).
4122
4123         * class.c (mono_class_create_from_typedef): On failure, remove the
4124         class from the MonoImage->class_cache as the class is not
4125         initialized;   Fixes the leak pointed out by Paolo.
4126
4127 2006-05-25  Dick Porter  <dick@ximian.com>
4128
4129         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4130         DeleteCriticalSections until I figure out which one may still be
4131         sometimes locked when mono_thread_cleanup is called.
4132
4133 2006-05-24  Dick Porter  <dick@ximian.com>
4134
4135         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4136         of mono_thread_manage and back into its own function, so it can be
4137         called after the finalizer thread has finished.
4138
4139         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4140
4141 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4142
4143         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4144         Fixes #78495.
4145
4146         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4147         with non-blittable elements.
4148         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4149
4150 2006-05-24  Martin Baulig  <martin@ximian.com>
4151
4152         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4153         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4154
4155         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4156         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4157         `mono_debugger_event_handler' to NULL.
4158
4159 2006-05-24  Martin Baulig  <martin@ximian.com>
4160
4161         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4162
4163 2006-05-24  Martin Baulig  <martin@ximian.com>
4164
4165         * mono-debug-debugger.h
4166         (mono_debugger_create_notification_function): Added
4167         `MonoCodeManager *' argument.
4168
4169 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4170
4171         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4172
4173 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4174
4175         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4176         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4177         implementation.
4178
4179 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4180
4181         * icall.c: precise GC support: objects can't be stored in unmanaged
4182         memory anymore, even if they are kept alive by other references: since
4183         they can move the GC needs to be able to always find them.
4184
4185 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4186
4187         * object.c: precise GC support for static fields. Support
4188         for moving GCs: write barriers and pinned allocation for interned
4189         strings.
4190
4191 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4192
4193         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4194         structure.
4195
4196 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4197
4198         * class.c, gc.c: sgen and precise GC updates.
4199
4200 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4201
4202         * marshal.h, marshal.c: added write barrier wrapper and precise type
4203         fixes.
4204
4205 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4206
4207         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4208         support.
4209
4210 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4211
4212         * reflection.c: precise and sgen GC updates.
4213
4214 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4215
4216         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4217
4218 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4219
4220         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4221
4222 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4223
4224         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4225         MONO_TYPE_OBJECT. Fixes #78462.
4226
4227 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4228
4229         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4230         and blittable types.
4231
4232 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4233
4234         * class.c (mono_class_get_exception_for_failure): Implement parts
4235         of a TODO: if the loader error is set (instead of the class
4236         error), we return a Loader exception that can be properly thrown
4237         elsewhere.
4238
4239         This was exposed by some Winforms 2.0 code that I tried to run
4240         (Atsushi pointed me to it).
4241
4242 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4243
4244         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4245         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4246         
4247         * marshal.c (emit_marshal_vtype): Add limited support for 
4248         UnmanagedType.LPStruct. Fixes #78427.
4249
4250         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4251         Applied a patch from kangaroo to fix #77523.
4252
4253 2006-05-17  Martin Baulig  <martin@ximian.com>
4254
4255         * threads.c
4256         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4257         (debugger_thread_created): Removed.
4258         (debugger_thread_exited): Removed.
4259
4260 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4261
4262         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4263
4264         * object-internals.h (MonoReflectionResource): Sync with managed version.
4265
4266 2006-05-12  Wade Berrier <wberrier@novell.com>
4267
4268         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4269
4270 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4271
4272         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4273         functions try to allocate from the image mempool.
4274
4275 2006-05-12  Dick Porter  <dick@ximian.com>
4276
4277         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4278
4279 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4280
4281         * object.c: The FieldGetter and FieldSetter methods require the full
4282         name of the class, not only the name. Fixes bug #78277.
4283
4284 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4285
4286         * loader.c (method_from_memberref): Do not pass the NULL klass to
4287         mono_loader_set_error_() methods.  Pass the non-NULL value
4288         (class). 
4289
4290 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4291
4292         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4293         (mono_assembly_close): Null out assembly->image->references after freeing it.
4294
4295         * image.c (mono_image_close): Free image->references.
4296         
4297         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4298
4299 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4300
4301         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4302         before checking if it's NULL (g_assert).
4303
4304 2006-05-10  Martin Baulig  <martin@ximian.com>
4305
4306         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4307         I thought I already killed that two months ago, but now it somehow reappeared.
4308
4309 2006-05-10  Martin Baulig  <martin@ximian.com>
4310
4311         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4312
4313 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4314
4315         * reflection.c: Allocate memory for dynamically created methods in the image
4316         mempools.
4317
4318 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4319
4320         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4321         don't use the ad pointer before checking if it's NULL (g_assert).
4322
4323 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4324
4325         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4326         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4327
4328         * marshal.c: Allocate all signatures from mempools.
4329
4330         * marshal.c: Allocate some more signatures from mempools.
4331
4332 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4333
4334         * object.c (mono_load_remote_field): The code used to provide a
4335         temporary variable for returning results if the user did not
4336         provide a result pointer.  But our temporary variable was allocted
4337         on the satck.
4338
4339         Fix calling code to always pass a result area.   Coverity ID 103.
4340
4341 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4342
4343         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4344         value, not the old. Fixes #78312.
4345         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4346
4347         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4348         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4349         per-image cache.
4350
4351         * assembly.c (mono_assembly_close): Free image->references.
4352
4353         * assembly.c (mono_assembly_names_equal): Fix a warning.
4354         (mono_assemblies_cleanup): Cleanup more global data.
4355
4356         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4357
4358         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4359         ptr_cache and image->modules.
4360
4361         * image.c (mono_image_init): Allocate array_cache lazily.
4362         
4363 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4364
4365         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4366         behavior was changed recently and has bad side effects.
4367
4368 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4369
4370         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4371         
4372         * assembly.c (mono_assembly_close): Remove a debug printf.
4373
4374         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4375
4376         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4377         to also allow for temporary references between mono_image_open ()/close ().
4378
4379         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4380
4381 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4382
4383         * marshal.c: Fix support for dynamic methods.
4384
4385         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4386
4387         * marshal.c (mono_marshal_cleanup): New cleanup function.
4388
4389         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4390         image mempools.
4391
4392         * class.c (mono_class_init): Fix leaking class->nested_classes.
4393
4394         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4395
4396         * image.c (mono_image_init): Initialize the new cashes.
4397
4398         * image.c (mono_image_close): Destroy the new cashes.
4399
4400         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4401
4402         * mempool.c (mono_mempool_strdup): New helper function.
4403
4404         * class-internals.h: Add prototype for mono_loader_unlock ().
4405
4406         * domain.c (mono_jit_info_table_find): Fix a warning.
4407         (mono_debugger_check_runtime_version): Ditto.
4408
4409         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4410         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4411         functions to these modules.
4412
4413         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4414         metadata modules.
4415         
4416         * marshal.c (mono_free_bstr): Fix a warning.
4417
4418         * assembly.c (mono_assembly_open_full): Fix another small leak.
4419
4420         * object.c: Fix some unload leaks in the remoting code.
4421
4422         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4423         function.
4424
4425         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4426
4427         * reflection.c: Fix some unload leaks in dynamic assemblies.
4428
4429 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4430
4431         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4432         * marshal.h: Add BSTR support on Win32
4433         * icall.c: Add BSTR icalls
4434         * metadata.h: Add BSTR enums
4435
4436 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4437
4438         Work to catch the crash from #76795 and turn it into an
4439         exception.   As I stubbed out pieces of the VisualBasic support,
4440         I found a number of places where the code was failing and I added
4441         checks to those places. 
4442         
4443         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4444         function return a status code.  If we fail to parse the signature
4445         from mono_metadata_parse_generic_inst, return FALSE.
4446
4447         * loader.c (mono_get_method_from_token): If we fail to load the
4448         method (mono_class_get) return NULL.   
4449
4450         * (method_from_memberref): Return NULL if we are unable to parse
4451         the method signature
4452
4453         (mono_loader_error_prepare_exception): Since we now use the
4454         loader_error flag internally to stop processing, and obtaining
4455         exceptions that might be thrown will walk this code path the
4456         proper way of going from a MonoLoaderError into a
4457         MonoException was convoluted.   This new routine encapsulates the
4458         process of turning the error into an exception and *clearing* the
4459         error afterwards.
4460         
4461 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4462
4463         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4464         with missing assemblies), and to cope with:
4465
4466                 * Missing fieldref from a non-existing assembly.
4467                 * Missing methodref from a non-existing assembly.
4468
4469         The first batch of work to address *some* of the issues from 76661.
4470         
4471         * object.c (mono_class_create_runtime_vtable): If we fail to
4472         initialize the class raise the exception here. 
4473
4474         * metadata.c (mono_class_get_overrides_full): If any methods fail
4475         to load return the failure to the caller.
4476
4477         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4478         flagging assemblies that failed to load.   
4479
4480         Do not crash if we are unable to load the assembly.
4481
4482         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4483         assemblies. 
4484
4485         * loader.c (mono_loader_set_error_type_load): Change the
4486         convention to always pass unallocated strings, so we make our own
4487         copies (I know our own code had duplicated strings before, but
4488         this keeps the normal conventions).
4489         (method_from_memberref): Call mono_loader_set_error_method_load
4490         for all possible failures of loading the class. 
4491         Remove assert, turn into a loader error.
4492
4493         (mono_loader_error_to_exception): Move this routine from mini
4494         (mini_loader_error_to_exception) there was no need to have that in
4495         mini. 
4496
4497         * class.c (mono_class_from_typeref): If we were not able to load
4498         the assembly with mono_assembly_load_reference, call the
4499         mono_loader_set_error_type_load to register the problem.
4500
4501         (mono_class_setup_fields): If we fail to load the type from
4502         mono_metadata_parse_type_full, call mono_class_set_failure and
4503         break from the loop.
4504
4505         If class->exception_type is set, we do not layout the fields as
4506         that might crash the runtime, and instead return (from breaking
4507         from the previous loop).
4508
4509         (mono_class_setup_vtable): This now returns a boolean indicating
4510         whether the table was properly setup.   The decision is driven by
4511         mono_class_get_overrides_full which might run into non-existing
4512         methods. 
4513         
4514         (mono_class_init): Returns TRUE on success or FALSE if there was a
4515         problem in loading the type (incorrect assemblies, missing
4516         assemblies, methods, etc).
4517
4518         When we call mono_class_setup_fields we also check for a potential
4519         error inside this call (either a class exception or a general
4520         loader exception).
4521
4522         (mono_class_create_from_typedef): If the parent fails to load
4523         (calling mono_class_get_full) return NULL.
4524         
4525         ** Important **
4526
4527         calls to mono_metadata_parse_type_full should be checked
4528         everywhere and set the mono_class_set_failure
4529         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4530
4531         The current patch checks the places where my manually constructed
4532         tests show the errors are showing up, but we should do it
4533         everywhere. 
4534
4535         ** Important2 **
4536
4537         mono_class_init return values should be tested everywhere, like
4538         the previous case this is something that we should audit
4539         everywhere and not only on the cases exposed by the tests I
4540         created. 
4541
4542 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4543
4544         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4545         boolean parameter and instead pass the information on `options'
4546         parameter (FileOptions).
4547
4548         * icall.c: Register the new signature for MonoIO.Open.
4549
4550         * debug-helpers.c (dis_one): Trying to understand how coverity
4551         works.  Fix Run 5, item 78.
4552
4553 2006-04-26  Dick Porter  <dick@ximian.com>
4554
4555         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4556         dereference.
4557
4558 2006-04-25  Martin Baulig  <martin@ximian.com>
4559
4560         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4561
4562         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4563         debugger_thread_created().
4564         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4565         special way.
4566         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4567         (mono_debugger_finalize_threads): New function; undo the effects
4568         of mono_debugger_init_threads().
4569         (mono_debugger_create_all_threads): Removed.
4570
4571 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4572
4573         * image.c (mono_image_close): Tidy up trace messages.
4574
4575         * assembly.c (mono_assembly_close): Ditto.
4576
4577         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4578         no longer references an already freed assembly. Fixes #78168.
4579
4580 2006-04-21  Dick Porter  <dick@ximian.com>
4581
4582         * threads.c (mono_thread_detach): Fix reference counting when
4583         detaching threads.
4584
4585 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4586
4587         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4588         #78155.
4589
4590 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4591
4592         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4593         (mono_type_to_stind): Ditto.
4594
4595         * marshal.c: Use the new helper functions to simplify code.
4596
4597         * image.c (mono_image_close): Add some code for help debug assembly unloading
4598         problems.
4599
4600         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4601         image mempool.
4602
4603         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4604         assembly was already loaded in another appdomain. Fixes #78083.
4605
4606 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4607
4608         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4609         referenced assemblies.
4610         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4611
4612         * domain.c (mono_domain_free): Add a trace message.
4613
4614         * appdomain.c (add_assemblies_to_domain): Ditto.        
4615
4616         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4617         field.  
4618
4619 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4620
4621         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4622
4623 2006-04-12  Martin Baulig  <martin@ximian.com>
4624
4625         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4626         `USE_INCLUDED_LIBGC'.   
4627
4628 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4629
4630         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4631         the patch contains ../ and a small directory name later. Hopefully fixes
4632         #78035.
4633
4634 2006-04-10  Martin Baulig  <martin@ximian.com>
4635
4636         Clean up the debugger's thread-handling code.
4637
4638         The debugger's thread-handling code has been moved from
4639         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4640         over the `threads' hash, keep track of exiting threads and also
4641         use proper locking.
4642
4643         We can now debug XSP and XSP based applications with the debugger.
4644
4645         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4646
4647         * threads.h
4648         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4649         (mono_install_thread_callbacks): Likewise.      
4650
4651         * threads.c (mono_thread_callbacks): Removed.
4652         (debugger_thread_created, debugger_thread_exited): New static functions.
4653         (start_wrapper): Call debugger_thread_created().
4654         (thread_cleanup): Call debugger_thread_exited().
4655         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4656         (mono_debugger_init_threads): New public function.
4657         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4658         iterate directly over the `threads' hash and also use proper locking.
4659
4660         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4661
4662         * mono-debug-debugger.h
4663         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4664
4665 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4666
4667         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4668         argument type=array. Fixes #78057.
4669
4670 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4671
4672         * culture-info-table.h : regenerated. Fixed bug #69652.
4673
4674 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4675
4676         * loader.c metadata.c: Reapply a variant r59116.
4677         
4678         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4679
4680         * class.c (mono_class_setup_interface_offsets): New internal function.
4681
4682         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4683         interfaces too. Fixes #77398.
4684
4685         * reflection.c (encode_cattr_value): Add support for 
4686         parameter type=object, argument type=array.
4687         (load_cattr_value): Ditto. Fixes #77916.
4688
4689         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4690         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4691
4692         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4693         a byval char array and CharSet is Ansi.
4694
4695         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4696
4697 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4698
4699         * metadata.c: Add some locking comments.
4700         
4701         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4702         mempool.
4703         (mono_metadata_free_method_signature): Don't free the signature itself.
4704
4705         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4706
4707         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4708         reference the same MonoImage.
4709         (mono_assembly_load_from_full): Add an assert.
4710
4711 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4712
4713         * image.c (mono_image_close): Don't put the image we are about to free into the
4714         loaded_images_guid_hash.
4715
4716         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4717         to reduce code duplication.
4718
4719         * marshal.c: Register the native functions called by this module as icalls, to
4720         somewhat centralize the creation of MonoMethodSignature's.
4721
4722         * loader.c (mono_method_signature): Add a cache for method signatures.
4723
4724         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4725         the parameter attributes of a method.
4726         (mono_metadata_parse_method_signature_full): Refactored the computation of
4727         parameter attributes into a separate function. Also avoid one allocation in
4728         most cases.
4729
4730         * assembly.c (mono_assembly_close): Ditto.
4731
4732         * image.c (mono_image_close): Log trace messages with INFO level.
4733
4734         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4735
4736         * image.c reflection.c: Correct reference counting of image modules.
4737         
4738         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4739         of this function from the image mempool.
4740         
4741         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4742         to allow more cached types to be used.
4743
4744         * mono-debug.c (mono_debug_add_method): Appled patch from
4745         David S. Miller  <davem@sunset.davemloft.net>: Access 
4746         minfo->lexical_blocks[] entry elements using read32().
4747
4748 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4749
4750         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4751         methods as it is allocated from the mempool.
4752
4753         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4754         image mempool.
4755
4756         * metadata-internals.h: Add comments describing the reference counting scheme
4757         used for MonoImage and MonoAssembly.
4758
4759         * image.c assembly.c reflection.c: Rework reference counting of images and 
4760         assemblies so they are freed when the runtime is shut down. Free some 
4761         additional memory structures when an image is unloaded.
4762         
4763 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4764
4765         * class.c loader.c reflection.c: Allocate more data structures in
4766         the image mempool.
4767
4768 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4769
4770         * icall.c
4771         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4772         build on pre glib 2.4 systems.
4773
4774 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4775
4776         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4777
4778         * icall.c: Fix some warnings.
4779
4780 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4781
4782         * culture-info-table.h : regenerated.
4783
4784 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4785
4786         * threads.c, object-internals.h, verify.c: changed the culture caching
4787         code to use a normal MonoArray for storage so the GC can keep track of
4788         them easily. Fixed bits of the cache logic, too and simplified the
4789         code.
4790
4791 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4792
4793         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4794         thread for non-Boehm GCs.
4795
4796 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4797
4798         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4799         needed to keep track of the data for static fields.
4800
4801 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4802
4803         Fix #75172
4804         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4805         for interface classes.  Use 'num_methods' instead.
4806         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4807         before using '->vtable_size' field.
4808
4809 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4810
4811         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4812         doesn't contain managed pointers, so use a normal hashtable.
4813
4814 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4815
4816         * reflection.c, class-internals.h, domain.c: fixed handling of types
4817         used as values for objects in custom attributes (bug #77915):
4818
4819 2006-03-24  Martin Baulig  <martin@ximian.com>
4820
4821         * class.c (mono_class_setup_fields): Added support for generic
4822         instances; fixes #77580.
4823
4824 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4825
4826         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
4827
4828 2006-03-24  Dick Porter  <dick@ximian.com>
4829
4830         * file-io.c (get_file_attributes): More stat macro breakage.
4831         Fixes bug 77759.
4832
4833 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4834
4835         * profiler.c: added the file=filename option in the default profiler
4836         to output the profile data to filename.
4837
4838 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4839
4840         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4841         bug #77877.
4842
4843 2006-03-22  Martin Baulig  <martin@ximian.com>
4844
4845         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4846         allocated `MonoClassField *' in `fb->handle'.
4847
4848 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4849
4850         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4851         allocate interface ID to save memory and allow better ID reuse on
4852         appdomain unload. setup_generic_vtable () removal from Martin.
4853
4854 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4855
4856         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4857         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4858         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4859         write barriers for reference stores with managed objects accessed with
4860         C structures in the runtime and in embedding programs.
4861
4862 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4863
4864         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4865         'interface_id' and 'max_interface_id' fields of MonoClasses
4866         representing open generic types.
4867
4868 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4869
4870         * object.h, object.c, icall.c: added functions to deal with
4871         storing valuetypes that contain references in managed objects.
4872         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4873         fixes and comments around uses of mono_array_addr ().
4874
4875 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4876
4877         * object.h, icall.c, monitor.c: object.GetHashCode ()
4878         implementation that supports the moving garbage collector.
4879
4880 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4881
4882         * icall.c, threads-types.h, threads.c: implemented finalizer for
4883         LocalDataStoreSlot.
4884
4885 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4886
4887         * metadata.c (mono_type_size): Add a fixme.
4888         (mono_type_stack_size): Ditto.
4889
4890         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4891         'type_forwarders' field.
4892
4893         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4894         attribute from net 2.0.
4895
4896         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4897         from class.c.
4898
4899         * class.c (mono_class_setup_fields): Fix a warning.
4900         
4901         * class.c (mono_class_from_name): Add support for assemblyref entries
4902         in the EXPORTEDTYPE table.
4903
4904         * reflection.c: Add support for handling type forwarders under net 2.0.
4905
4906         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4907         
4908 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4909
4910         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4911         overwriting entries in ModuleBuild->types, also clean up the code
4912         a little. Fixes #77774.
4913
4914 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4915
4916         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4917         load friend assembly info when present.
4918
4919 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4920
4921         Fix crasher on gtest-158.cs.
4922         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4923         the return value if the MonoClass we want is yet in an
4924         inconsistent state.
4925         * class.c (mono_class_create_from_typedef): Add an comment
4926         explaining an order dependency between mono_class_setup_parent and
4927         mono_class_setup_mono_type.
4928
4929 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4930
4931         * class.c: documentation updates and events bug fix.
4932
4933 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4934
4935         * class.c: some cleanup, locking fixes.
4936
4937 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4938
4939         * class.c: fix the generics code to setup nested
4940         type info to the instantiated type (bug #77770).
4941
4942 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4943
4944         * marshal.c: fixed a few type correctness issues.
4945
4946 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4947
4948         * loader.c: the Set/Get/Addrtess array methods should be public.
4949
4950 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4951
4952         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4953         
4954         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4955         info->wrapper.
4956
4957 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4958
4959         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4960
4961         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4962
4963         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4964         (mono_mempool_alloc0): Ditto.
4965
4966 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4967
4968         * socket-io.c:
4969         (create_object_from_sockaddr): it was allocating 4 extra bytes
4970         for the AF_UNIX data. Fixes bug #77747.
4971
4972 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4973
4974         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4975
4976 2006-03-09  Dick Porter  <dick@ximian.com>
4977
4978         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4979         Fixes bug 76966 again.
4980
4981 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4982
4983         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4984         names from r57532
4985         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4986
4987 2006-03-07  Martin Baulig  <martin@ximian.com>
4988
4989         * object.c
4990         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4991
4992 2006-03-07  Martin Baulig  <martin@ximian.com>
4993
4994         * class.c
4995         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4996         regression introduced in r56970; see gtest-252.cs.
4997
4998         * loader.c (mono_get_method_constrained): Correctly handle generic
4999         methods; see gtest-253.cs.
5000
5001 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
5002
5003         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
5004
5005 2006-03-04  Martin Baulig  <martin@ximian.com>
5006
5007         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
5008         compute the parent type at runtime, just like we're already doing
5009         it for interfaces.
5010
5011         * reflection.c
5012         (mono_reflection_bind_generic_parameters): Don't compute the
5013         parent type anymore.
5014
5015         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
5016
5017 2006-03-04  Martin Baulig  <martin@ximian.com>
5018
5019         * mono-debug-debugger.h
5020         (mono_debugger_create_notification_function): Allocate memory at
5021         runtime and return a pointer to it.
5022
5023 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
5024
5025         * assembly.c: Fix windows build.
5026         
5027         * assembly.c: Fix build.
5028
5029         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
5030
5031         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
5032         
5033 2006-03-03  Dick Porter  <dick@ximian.com>
5034
5035         * process.c
5036         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5037         Check parameters before dereferencing them.  Fixes Aaron's part of
5038         bug 77393.
5039
5040 2006-03-03  Raja R Harinath  <rharinath@novell.com>
5041
5042         Fix performance regression.
5043         * loader.c (find_method_in_class): Add 'from_class' argument.
5044         Rename 'klass' argument to 'in_class'.  The signature is compared
5045         against the method in 'in_class', and the corresponding method is
5046         returned from 'from_class'.
5047         (find_method): Walk both 'in_class' and 'from_class' in parallel.
5048         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
5049         type definition and generic instantiation in parallel.
5050         (mono_get_method_constrained): Update to changes.
5051
5052 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
5053
5054         * threads.c: make sure the domain is correct, too when doing
5055         mono_thread_attach ().
5056
5057 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
5058
5059         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
5060         windows. Fixes #77683.
5061
5062 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
5063
5064         * object.h, *: introduced specific way to set elements of an array
5065         of references to be used as write barrier. Still need to audit the
5066         uses of mono_array_addr.
5067
5068 2006-03-01  Miguel de Icaza  <miguel@novell.com>
5069
5070         * object-internals.h: New field to cache the assmebly name, patch
5071         from Tambet Ingo (tambet@ximian.com)
5072
5073 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5074
5075         * decimal.h, class-internals.h, metadata-internals.h,
5076         file-io.h: mark a few function declarations as internal, to
5077         reduce the number of PLT entries.
5078
5079 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5080
5081         * file-io.c: fix typo in warning message.
5082
5083 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
5084
5085         * loader.c: on unix, lookup the "*A" version of a function
5086         if charset is auto as a second option before failing.
5087
5088 2006-02-28  Raja R Harinath  <rharinath@novell.com>
5089
5090         * class.h (mono_class_inflate_generic_method): Revert to two
5091         argument version.
5092         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
5093         (mono_class_inflate_generic_method_full): Add.
5094         * class.c (mono_class_inflate_generic_method_full): Rename from
5095         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
5096         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
5097         * loader.c, reflection.c: Update to changes.
5098
5099 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
5100
5101         * icall.c: const fixes and small improvements.
5102
5103 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5104
5105         * threadpool.c: for asynchronous connect(), enable the same workaround
5106         for BSD 6 as for the Mac. Fixes bug #77637.
5107
5108 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5109
5110         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5111         formatted classes. Fixes #77524.
5112
5113 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5114
5115         * class.c (inflate_generic_type): Add a couple more
5116         micro-optimizations.
5117         (inflate_generic_context): Don't use the 'gmethod' from
5118         'inflate_with'.
5119         (mono_class_inflate_generic_method): If the method has generic
5120         parameters, but the passed-in context doesn't have a 'gmethod',
5121         create one.  Use the possibly simplified generic instantiation
5122         from the declaring class instead of the one passed in.
5123
5124 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5125
5126         Make generic method signature and method header handling lazy.
5127         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5128         (inflate_generic_header): Likewise.
5129         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5130         parameter to avoid inflating types.
5131         (mono_get_inflated_method): Empty out.
5132         * class.h (mono_class_inflate_generic_method): Update to changes.
5133         * loader.c (mono_get_method_from_token): Don't parse signature for
5134         generic methods, nor methods of generic classes.
5135         (mono_method_signature): Rename from 'mono_method_signature'.
5136         Inflate signature on demand.
5137         (mono_method_get_header): Inflate method header on demand.
5138         * reflection.c: Update to changes.
5139
5140 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5141
5142         * metadata.c (mono_metadata_inflate_generic_inst): If the
5143         instantiation is closed, don't bother expanding it in the new
5144         context.
5145         * class.c (inflate_generic_class): If the generic instantiation
5146         doesn't change after inflation, return the argument itself.
5147         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5148         Add bounds checks.
5149         (inflate_generic_context): If neither the generic class nor the
5150         generic method instantiations change, return the original context.
5151         * reflection.c (mono_method_get_object): Do
5152         'mono_get_inflated_method' before accessing the ->klass field.
5153         (inflate_mono_method): Don't create a MonoGenericMethod unless
5154         necessary.
5155         (inflate_method): Don't pass a constructed type as the declaring
5156         type of a methodbuilder.
5157
5158 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5159
5160         * object.c: fix memory overwrite.
5161
5162 2006-02-22  Dick Porter  <dick@ximian.com>
5163
5164         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5165         it doesn't work any more.
5166         (mono_threads_request_thread_dump): Fix unused variable warnings.
5167
5168 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5169
5170         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5171         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5172         the public header file.
5173
5174 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5175
5176         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5177
5178 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5179
5180         * class-internals.h, object.c: reduce the size of MonoVTable
5181         and store the interface_offsets array at negative offsets.
5182
5183 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5184
5185         * metadata.c: tweak table descriptors data structures to reduce
5186         size and runtime relocations.
5187
5188 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5189
5190         * marshal.c: fix some types and opcodes to be type-safe
5191         in marshaling wrappers.
5192
5193 2006-02-21  Ankit Jain  <jankit@novell.com>
5194
5195         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5196
5197 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5198
5199         * metadata.c (get_constraints): Relax debugging checks for monodis.
5200
5201 2006-02-21  Ankit Jain  <jankit@novell.com>
5202
5203         * metadata.c (mono_metadata_load_generic_params): Move the code
5204         checking for ambiguous generic params from here to mono/dis/get.c
5205         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5206
5207 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5208
5209         Fix assertion triggered when compiling nemerle.
5210         * class.c (mono_get_shared_generic_inst): Rename from
5211         get_shared_inst and make non-static.
5212         * loader.c (mono_get_shared_generic_method): New.  Used to create
5213         the MonoGenericContext-equivalent of a MonoGenericContainer.
5214         (mono_get_method_from_token): Initialize the 'context' field of
5215         the created MonoGenericContainer.
5216         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5217         * metadata.c (get_constraints): Add sanity check.
5218         * class-internals.h: Add new internal methods.
5219
5220         * reflection.c (verify_safe_for_managed_space): New sanity check.
5221         Currently checks that owner-less generic parameters aren't allowed
5222         in managed space.
5223         (mono_type_get_object): Use it.
5224         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5225         that are now in mono_type_get_object.
5226         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5227
5228 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5229
5230         * metadata.c (mono_type_create_from_typespec): Rename from
5231         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5232         argument and caching of types in the generic container.
5233         (unwrap_arrays, find_generic_param): Remove.
5234         * metadata-internals.h: Update.
5235         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5236
5237 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5238
5239         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5240
5241         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5242         return values. Fixes #77581.
5243
5244         * class.c (mono_fnptr_class_get): Switch name and name_space.
5245
5246         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5247         classes and add support for [In, Out] attributes.
5248         (mono_marshal_free_asany): Ditto. Fixes #77524.
5249
5250 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5251
5252         * class.c (mono_class_from_generic_parameter): Make more robust to
5253         incomplete MonoGenericContainers from monodis.
5254
5255 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5256
5257         * class-internals.h: added some more exception types.
5258         * class.c, metadata.c: added a few checks to handle missing
5259         types.
5260
5261 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5262
5263         Use owner-less generic-params some more.
5264         * class.c (my_mono_class_from_generic_parameter): Remove.
5265         (mono_class_from_generic_parameter): Handle null image,
5266         param->name and param->owner.
5267         (mono_class_from_mono_type): Update.
5268         (mono_class_create_from_typespec): Remove 'container' parameter.
5269         If that parameter is non-null, the result is always inflated by
5270         'mono_class_get_full' anyway.
5271         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5272         parameter.
5273         (mono_class_get_full): Update.
5274
5275         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5276         instance is not open, don't bother inflating.
5277         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5278         parse metadata for inflated classes.
5279         (_mono_class_get): Change GenericContext* parameter to
5280         GenericContainer*.
5281         (mono_class_create_from_typespec): Likewise.  Simplify, and
5282         implement trivially.  All the cases are handled in
5283         mono_class_from_mono_type.  Don't inflate returned class.
5284         (mono_class_get_full): Delegate GENERICINST optimization to
5285         inflate_generic_type.
5286         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5287
5288 2006-02-16  Dick Porter  <dick@ximian.com>
5289
5290         * socket-io.c (create_object_from_sockaddr): Fix typo.
5291         (create_sockaddr_from_object): Check array lengths before
5292         potentially accessing items off the end.
5293         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5294         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5295         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5296         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5297         length checks to avoid wraparound overflows.
5298         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5299         contents of the array of sockets
5300         (hostent_to_IPHostEntry2)
5301         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5302         Check return value of inet_ntop ().
5303         (addrinfo_to_IPHostEntry): Fix typo
5304
5305 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5306
5307         Type metadata parsing doesn't use generic-instantiation information.
5308         * metadata.c (mono_metadata_parse_array_full): Change
5309         MonoGenericContext* parameter to MonoGenericContainer*.
5310         (mono_metadata_parse_type_full): Likewise.
5311         (mono_type_create_from_typespec_full): Likewise.
5312         (mono_metadata_parse_mh_full): Likewise.
5313         (mono_metadata_parse_generic_inst): Likewise.
5314         (do_mono_metadata_parse_generic_class): Likewise.
5315         (do_mono_metadata_parse_type): Likewise.
5316         * metadata-internals.h: Update to changes.
5317         * class.c (mono_class_find_enum_basetype): Likewise.
5318         (mono_class_setup_fields): Likewise.
5319         (mono_class_create_from_typespec): Likewise.
5320         * loader.c (method_from_methodspec): Likewise.
5321         (mono_get_method_from_token): Likewise.
5322         (mono_method_get_header): Likewise.
5323
5324 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5325
5326         * marshal.c: handle additional GENERICINST case (patch from
5327         Thong Nguyen <tum@veridicus.com>).
5328         Fix a few cases where LDIND_I/STIND_I was used for references.
5329
5330 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5331
5332         * reflection.c (mono_reflection_get_token): Remove unused variable.
5333
5334 2006-02-16  Martin Baulig  <martin@ximian.com>
5335
5336         * reflection.c (mono_reflection_get_token): Add support for fields
5337         in instantiated generic types.
5338
5339         * icall.c
5340         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5341
5342 2006-02-15  Martin Baulig  <martin@ximian.com>
5343
5344         * icall.c
5345         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5346         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5347         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5348         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5349
5350 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5351
5352         * class.c, metadata.c, metadata.h, object.c, icall.c,
5353         marshal.c: changed mono_type_get_underlying_type () to do
5354         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5355         Fixed handling of instantiated generic valuetypes (bug #75479).
5356
5357 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5358
5359         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5360         Delegate to mono_metadata_decode_value, and work on the returned value.
5361
5362         * icall.c (ves_icall_MonoType_GetGenericArguments):
5363         Add consistency check here too.
5364         
5365 2006-02-15  Ankit Jain  <jankit@novell.com>
5366
5367         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5368         char/short etc.
5369
5370 2006-02-15  Ankit Jain  <jankit@novell.com>
5371
5372         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5373         signed values, used only for representing lower bounds of arrays.
5374         (mono_metadata_parse_array_full): Use new
5375         mono_metadata_decode_signed_value to decode lower bounds.
5376
5377 2006-02-14  Martin Baulig  <martin@ximian.com>
5378
5379         * reflection.c
5380         (mono_reflection_get_token): Support "MonoGenericMethod" and
5381         "MonoGenericCMethod" and allow generic instances / methods.
5382
5383 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5384
5385         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5386         to obtain the terminal size using an ioctl.
5387
5388         * object.c (mono_nullable_init): Revert this as nullable reference
5389         types are not valid.
5390         (mono_nullable_box): Ditto.
5391
5392 2006-02-09  Dick Porter  <dick@ximian.com>
5393
5394         * threads.c (mono_thread_detach): Drop a reference to the thread
5395         we're detaching.
5396
5397 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5398
5399         * object.c (mono_nullable_init): Handle nullable reference types.
5400         (mono_nullable_box): Ditto. Fixes #77446.
5401
5402 2006-02-07  Martin Baulig  <martin@ximian.com>
5403
5404         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5405
5406 2006-02-07  Ankit Jain  <jankit@novell.com>
5407
5408         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5409         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5410         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5411         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5412         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5413         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5414
5415 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5416
5417         * class.c (mono_class_create_generic): Set type_token as well.
5418
5419         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5420         compatible with MS.
5421
5422 2006-02-02  Martin Baulig  <martin@ximian.com>
5423
5424         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5425         has never been used so far.
5426
5427 2006-02-02  Martin Baulig  <martin@ximian.com>
5428
5429         * mono-debug-debugger.h: Changed comment at the top of this file;
5430         the header is not installed, but it's safe to #include it from
5431         within the JIT.
5432
5433         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5434         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5435
5436 2006-02-02  Martin Baulig  <martin@ximian.com>
5437
5438         * mono-debug.h
5439         (MonoSymbolTable): Removed the `metadata_info' field.
5440
5441         * mono-debug.c
5442         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5443
5444         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5445         (mono_debugger_add_builtin_types): Removed.
5446         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5447         (mono_debugger_create_notification_function): We now operate on a
5448         pre-allocated area; take a `gpointer' and return `void'.
5449
5450         * mono-debug-debugger.c
5451         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5452         (mono_debugger_add_builtin_types): Removed.
5453
5454 2006-02-02  Martin Baulig  <martin@ximian.com>
5455
5456         * threads.c (mono_debugger_create_all_threads): New public method.
5457
5458 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5459
5460         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5461         breaks on several platforms.
5462
5463 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5464
5465         * assembly.c: the VS.NET build doesn't supply default values for
5466         MONO_ASSEMBLIES and MONO_CFG_DIR.
5467
5468 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5469
5470         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5471         helper function.
5472
5473         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5474
5475         * loader.c (method_from_memberref): Fix a warning.
5476
5477         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5478
5479         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5480         with explicit layout. Fixes #77433.
5481
5482 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5483
5484         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5485         max_interface_id is initialized before using it. Fixes #77398.
5486         (ves_icall_Type_GetInterfaces): Ditto.
5487
5488 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5489
5490         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5491         allocate memory for parameter attributes when parsing memberref
5492         signatures.
5493         * loader.c (mono_loader_set_error_method_load): Don't warn.
5494         (method_from_memberref): Ensure MissingMethodException gets thrown
5495         if method is not found.  Make warning more informative.
5496
5497 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5498
5499         Fix #77397
5500         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5501         return true if is byref.
5502         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5503         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5504         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5505
5506 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5507
5508         Fix tests/find-method.2.il
5509         * loader.c (find_method, find_method_in_class): Remove is_inflated
5510         argument.  Revert 2006-01-18 change.
5511         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5512         is generic, search for method in its generic definition.
5513         * class.c (mono_class_setup_vtable_general): Print generic
5514         arguments of generic types in debugging printf.
5515
5516 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5517
5518         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5519
5520         * threads.c (mono_threads_request_thread_dump): New helper function.
5521
5522 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5523
5524         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5525
5526 2006-01-25  Ankit Jain  <jankit@novell.com>
5527
5528         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5529         move definition to ..
5530         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5531         
5532 2006-01-25  Ankit Jain  <jankit@novell.com>
5533             Raja R Harinath  <rharinath@novell.com>
5534
5535         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5536         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5537         as necessary.
5538
5539 2006-01-25  Martin Baulig  <martin@ximian.com>
5540
5541         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5542         `MonoDebuggerThread' into debug-debugger.c.
5543
5544 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5545
5546         * profiler.c: fix printing of data.
5547
5548 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5549
5550         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5551           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5552
5553 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5554
5555         * object.c: fix deadlock related to string interning.
5556
5557 2006-01-23  Martin Baulig  <martin@ximian.com>
5558
5559         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5560
5561         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5562
5563 2006-01-23  Martin Baulig  <martin@ximian.com>
5564
5565         * mono-debug.h: Moved the prototypes of some functions which are
5566         used by the JIT here from mono-debug-debugger.h.
5567
5568 2006-01-21  Martin Baulig  <martin@ximian.com>
5569
5570         * Makefile.am: Don't install mono-debug-debugger.h.
5571
5572 2006-01-21  Martin Baulig  <martin@ximian.com>
5573
5574         * mono-debug-debugger.h: Enforce the private status of this header
5575         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5576         Moved some stuff from mono-debugger-jit-wrapper.h here.
5577
5578 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5579
5580         * class.c (mono_class_from_typeref): Add a sanity test to help
5581         catch lack of assembly load/search hooks.
5582
5583 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5584
5585         * marshal.c (emit_struct_conv): Relax the fields with same offset
5586         check even more. Fixes #77230.
5587
5588 2006-01-18  Martin Baulig  <martin@ximian.com>
5589
5590         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5591         argument; if false, we compare the uninstantiated signatures.
5592         (method_from_memberref): Compare the uninstantiated signatures;
5593         fixes #76417.
5594
5595 2006-01-18  Robert Jordan  <robertj@gmx.net>
5596
5597         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5598         Clear the weak link. Fixes bug #77170.
5599
5600         * gc.c (mono_gchandle_free):
5601         Reflect *-gc.c changes (tiny optimization).
5602
5603 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5604
5605         * metadata.c (mono_metadata_signature_dup): Applied patch from
5606         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5607         Fixes #77288.
5608
5609 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5610
5611         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5612         marshalling from native to managed code. Fixes #77230.
5613
5614 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5615
5616         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5617         connect. Fixes bug #77020.
5618
5619 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5620
5621         * class.c: fixed id assignement for nested interfaces (bug #77275).
5622         Added also better info for --print-vtable debugging.
5623
5624 2006-01-12  Martin Baulig  <martin@ximian.com>
5625
5626         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5627         interfaces on-the-fly; fixes #76625.
5628
5629         * class-internals.h
5630         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5631         don't need that anymore.
5632
5633 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5634
5635         * socket-io.c
5636         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5637         To avoid initing the nested_classes when not needed I turned the
5638         PeerCredData as a toplevel internal class, as it has to be shared
5639         anyways. 
5640
5641         Fixes the CASA issue.
5642
5643 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5644
5645         * domain.c: Accessors for MonoJitInfo
5646
5647         * profiler-private.h: Add jitinfo to the end jit hook
5648
5649         * profiler.[ch]: Define new hooks, called after jitting which give
5650         the MonoJitInfo that was compiled
5651
5652 2006-01-10  Martin Baulig  <martin@ximian.com>
5653
5654         * class.c (mono_class_setup_events): Add support for generic
5655         classes; fixes #76440.
5656
5657 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5658
5659         Fix #77160.
5660         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5661         on passed-in method.
5662
5663 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5664
5665         * object.c (mono_runtime_invoke_array): Add Nullable support.
5666
5667         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5668
5669 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5670
5671         * file-io.c: Don't consider sockets as directory and avoid an endless
5672         loop. Fix bug #76966.
5673
5674 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5675
5676         * object.c (mono_nullable_init): New helper function.
5677         (mono_nullable_box): Ditto.
5678
5679         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5680
5681         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5682
5683         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5684         
5685 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5686
5687         * class.c (mono_class_is_assignable_from): Make T assignable to 
5688         Nullable<T>.
5689
5690 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5691
5692         * appdomain.c: Bump corlib version to 46.
5693         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5694         serialization purpose) and changed ves_icall_System_Reflection_
5695         Assembly_get_code_base signature to accept a boolean (to escape, or 
5696         not, the assembly code base).
5697
5698 2005-12-23  Dick Porter  <dick@ximian.com>
5699
5700         * icall.c: 
5701         * threads-types.h: 
5702         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5703         CreateEvent icall now returns "created" boolean parameter.
5704
5705 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5706
5707         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5708         #76967.
5709
5710         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5711         when attr_klass is an interface. Fixes #77045.
5712
5713 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5714
5715         * marshal.c (emit_struct_conv): Fix previous patch.
5716         
5717         * marshal.c (emit_struct_conv): Add a check for fields with the same
5718         offset.
5719
5720 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5721
5722         Fix regression in Mono.C5.
5723         * class.c (mono_class_create_generic): If 'klass' is an interface
5724         set up the interface offsets.
5725         (mono_class_is_assignable_from): Don't throw away generic arguments.
5726
5727 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5728
5729         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5730         type parameters.
5731
5732 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5733
5734         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5735         dead store.
5736         (do_mono_metadata_parse_generic_class): Don't pass the current
5737         generic context when parsing the type being instantiated: it
5738         cannot use it, anyway.
5739
5740         * loader.c (method_from_memberref): Don't inflate a signature if
5741         it doesn't contain any type parameters.
5742
5743 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5744
5745         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5746
5747 2005-12-14  Martin Baulig  <martin@ximian.com>
5748
5749         * class.c
5750         (mono_type_get_name_recurse): Don't return null for type
5751         parameters and open generic classes.
5752         (mono_class_setup_methods): Don't exclude generic instances.
5753         (mono_get_unique_iid): Use different IDs for different
5754         instantiations of the same generic type.
5755         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5756         open generic instances; create a normal vtable for closed generic
5757         instances.
5758         (mono_class_setup_vtable_general): We're now also called for
5759         closed generic instances.
5760
5761         * reflection.c
5762         (mono_reflection_bind_generic_parameters): Correctly use
5763         mono_metadata_lookup_generic_inst() everywhere.
5764
5765 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5766
5767         * object.c (mono_class_create_runtime_vtable): Call 
5768         mono_class_setup_vtable ().
5769
5770         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5771         function.
5772         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5773         #76959.
5774
5775         * loader.c (mono_loader_set_error_type_load): Print the type load
5776         warnings to the console so they are more visible to the user.
5777         (mono_loader_set_error_method_load): Ditto.
5778
5779         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5780         is still broken.
5781         
5782         * reflection.c (ensure_runtime_vtable): Fix build.
5783
5784         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5785         doesn't work in all cases.
5786
5787 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5788
5789         * object.c (mono_array_new_full): Treat a single dimensional array
5790         with 0 lower bounds as an szarray. Fixes #76973.
5791
5792         * reflection.c (custom_attr_visible): Really fix this.
5793
5794 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5795
5796         * reflection.c (custom_attr_visible): Allow nested public attributes
5797         as well.
5798
5799         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5800         interface check.
5801
5802 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5803
5804         * class.c (set_generic_param_owner): Delete.
5805         (mono_class_create_from_typedef): Don't set ->owner field of
5806         generic parameters to "param containers" of enclosing classes.
5807         * reflection.c (mono_reflection_initialize_generic_parameter):
5808         Likewise.
5809
5810 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5811
5812         * reflection.c (custom_attr_visible): Fix build.
5813
5814 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5815
5816         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5817         private attributes.
5818         
5819         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
5820         handling of null parameter defaults.
5821
5822 2005-12-09  Raja R Harinath  <rharinath@novell.com>
5823
5824         * class.c (mono_class_from_generic_parameter): Don't set
5825         klass->generic_container.
5826         (my_mono_class_from_generic_parameter): Likewise.
5827
5828 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
5829
5830         * reflection.c (load_public_key): Fix a warning.
5831         (method_encode_code): Fix unaligned accesses.
5832
5833 2005-12-07  Martin Baulig  <martin@ximian.com>
5834
5835         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5836
5837         * reflection.c
5838         (write_generic_param_entry): Encode our custom attrs.
5839
5840         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5841
5842 2005-12-07  Martin Baulig  <martin@ximian.com>
5843
5844         * reflection.c (encode_new_constraint): Removed; we don't use the
5845         `NewConstraintAttribute' anymore.
5846
5847 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5848
5849         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5850         not fire a TypeResolve event when Assembly.GetType () is called.
5851
5852 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5853
5854         Beginning of support for nullable types in the runtime. Parts of
5855         this patch are from Martin.
5856
5857         * appdomain.c (MONO_CORLIB_VERSION): Bump
5858
5859         * domain.c (mono_init_internal): get the nullable type
5860
5861         * class.c (mono_class_is_nullable): New method
5862         (mono_class_get_nullable_param): New mehod
5863         (mono_class_create_generic): In types T? set cast_class to T
5864
5865         * class-internals.h (MonoDefaults): new nullable default class
5866         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5867         new methods.
5868
5869 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5870
5871         * metadata.c (select_container): New.  Refactor code to select the
5872         appropriate GenericContainer given the type of generic parameter
5873         we are looking for.
5874         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5875         not a MonoGenericContext.  Use select_container.  Update parameters.
5876         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5877         and MONO_TYPE_MVAR.
5878         (unwrap_arrays): Remove duplicate tests.
5879         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5880         generic instantiated class to find any arguments that are generic
5881         parameters.
5882         (mono_type_create_from_typespec_full): Use find_generic_param to
5883         avoid evicting some generic instantiations from the typespec
5884         cache.
5885
5886 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5887
5888         * reflection.c: fixed writing of doubles on ARM FPA.
5889
5890 2005-12-02  Robert Jordan  <robertj@gmx.net>
5891
5892         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5893
5894 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5895
5896         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5897         least on SUSE 10 they are not the same (on debian, they are just the
5898         same thing).
5899
5900 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5901
5902         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5903         DeclaringType for VARs and MVARs.
5904         * class.c (set_generic_param_owner): Fix initialization of owner
5905         fields.
5906
5907 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5908
5909         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5910
5911 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5912
5913         * threadpool.c: workaround for a bug that shows up on the Mac:
5914         select()+connect() on a blocking socket is not like it should
5915         be, so we proceed to connect() in that case, wasting the I/O
5916         threadpool thread until connect succeedes. Fixes bug #75436.
5917
5918 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5919
5920         * threadpool.c: fix typo when setting file descriptor states.
5921
5922 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5923
5924         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5925         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5926         create a temporary signature container.
5927         (mono_metadata_parse_generic_param): Update to changes.
5928         (mono_type_create_from_typespec_full): Update to changes.
5929         * loader.c (method_from_memberref): Don't use a
5930         MonoGenericContainer while parsing a memberref signature.
5931         (method_from_methodspec): Remove dead-store of the 'container'
5932         variable.  It's overwritten before use.
5933
5934         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5935         checks tighter.
5936         (mono_metadata_parse_generic_param): Likewise.
5937         * loader.c (find_method_in_class): Does not need a
5938         MonoGenericContainer.  Use 'mono_method_signature' rather than
5939         'mono_method_signature_full'.
5940         (find_method, mono_get_method_constrained, method_from_memberref):
5941         Update to changes.
5942
5943         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5944         owner-less generic-parameters are never evicted from the typespec
5945         cache.
5946
5947         * loader.c (method_from_memberref): Don't use the current context
5948         when parsing signatures.
5949         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5950
5951         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5952         side-effects in g_assert.
5953         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5954         that we don't potentially lose information.
5955
5956 2005-11-26  Dick Porter  <dick@ximian.com>
5957
5958         * icall.c:
5959         * threads.c: icalls to implement basic (ie, not named)
5960         System.Threading.Semaphore.
5961
5962 2005-11-24  Dick Porter  <dick@ximian.com>
5963
5964         * process.c
5965         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5966         Use GetProcessId() if it's available.
5967
5968 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5969
5970         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5971
5972 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5973             Ankit Jain  <jankit@novell.com>
5974
5975         * loader.c (mono_get_method_from_token): Initialize 'method' field
5976         of all generic parameters before parsing the signature.  Remove
5977         code that "fixed"-up MVAR references.
5978
5979 2005-11-23  Ankit Jain  <jankit@novell.com>
5980
5981         * metadata.c (mono_metadata_has_generic_params):
5982         (mono_metadata_load_generic_param_constraints):
5983         (mono_metadata_load_generic_params): Move duplicate code ...
5984         (mono_metadata_get_generic_param_row): ... here. Returns the
5985         first row-id in GenericParam table for a given owner (token).
5986         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5987         prototype.
5988
5989 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5990             Ankit Jain  <jankit@novell.com>
5991
5992         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5993         comparing VARs too.
5994         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5995         type->data.generic_param only if the type is an MVAR.
5996         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5997         leak owner-less VARs and MVARs into managed space.
5998
5999 2005-11-21  Martin Baulig  <martin@ximian.com>
6000
6001         * class-internals.h
6002         (MonoMethod): Moved the `generic_container' here from
6003         `MonoMethodNormal' since we now also need it for
6004         `MonoMethodPInvoke';
6005         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
6006         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
6007         an union containing both `MonoMethodNormal' and
6008         `MonoMethodPInvoke'.
6009
6010         * loader.c
6011         (mono_get_method_from_token): Allow implementing generic methods
6012         as interncalls.
6013
6014         * threads.c
6015         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
6016         icall.
6017
6018 2005-11-17  Dick Porter  <dick@ximian.com>
6019
6020         * icall.c: 
6021         * process.h: 
6022         * process.c: Split the Process Start_internal icall into
6023         ShellExecuteEx_internal and CreateProcess_internal, which are
6024         called depending on whether UseShellExecute is true.  Fixes bug
6025         76670.
6026
6027         * appdomain.c (MONO_CORLIB_VERSION): Incremented
6028
6029 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
6030
6031         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
6032         'msize' parameters, use the information in 'mspec' instead.
6033         (emit_object_to_ptr_conv): Ditto.
6034
6035         * marshal.c (emit_struct_conv): Handle explicit layout structs with
6036         fields out of order. Fixes #76733.
6037
6038 2005-11-17  Ankit Jain  <jankit@novell.com>
6039
6040         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
6041
6042 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
6043
6044         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
6045           bug #76575.
6046
6047 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6048
6049         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
6050         for types with non-auto layout. Fixes #76717.
6051
6052 2005-11-16  Ankit Jain  <jankit@novell.com>
6053
6054         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
6055         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
6056         if generic_context is null.
6057           (mono_metadata_generic_param_equal): param->owner can be null.
6058           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
6059         null.
6060
6061 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6062
6063         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
6064         the correct value.
6065
6066 2005-11-15  Martin Baulig  <martin@ximian.com>
6067
6068         * object.c (set_value): Use mono_class_from_mono_type() instead of
6069         the hack for generic instances; fixes #76136.
6070
6071 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
6072
6073         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
6074         fields.
6075
6076         * image.c (load_metadata_ptrs): Initialize the new fields.
6077
6078         * reflection.c (create_dynamic_mono_image): Ditto.
6079
6080         * reflection.c (build_compressed_metadata): Use the new fields.
6081
6082         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
6083         icall.
6084
6085         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
6086         icall.
6087         
6088 2005-11-15  Ankit Jain  <jankit@novell.com>
6089             Raja R Harinath  <harinath@gmail.com>
6090
6091         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
6092         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
6093         new per-generic_container cache if the cached MonoType's context matches
6094         the current context.
6095           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
6096         to the expected context.
6097           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
6098
6099 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6100
6101         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
6102         we changed the signature of an icall.
6103         * icall.c: Modify to mono_double_ParseImpl return true/false 
6104         depending on the success, instead of throwing the exception. This will
6105         help us in Double.TryParse methods.
6106         
6107 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6108
6109         * marshal.c (emit_marshal_object): Throw an exception when
6110         marshalling 'object' instead of crashing. Fixes #76696.
6111
6112 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6113
6114         * class-internals.h: Add prototype for mono_type_get_full_name ().
6115
6116 2005-11-11  Dick Porter  <dick@ximian.com>
6117
6118         * threads.c (mono_thread_manage): Make sure the main thread has
6119         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6120
6121 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6122
6123         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6124         console about the missing type.
6125         (mono_loader_set_error_method_load): Ditto.
6126
6127 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6128
6129         * mono-config.c (mono_get_config_dir): Set the system defaults if
6130         none is specified.
6131
6132         * assembly.c (mono_set_dirs): New API entry point to set the
6133         assembly and the config directory in one call
6134
6135 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6136
6137         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6138         the ftnptr was created from a delegate in a domain other than the
6139         current domain. Fixes #75377.
6140
6141         * exception.h exception.c: Add mono_get_exception_not_supported ().
6142
6143 2005-11-08  Martin Baulig  <martin@ximian.com>
6144
6145         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6146
6147 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6148
6149         * security-manager.h: Added definitions to deal with strongname key 
6150         pairs bigger (and smaller) than 1024 bits.
6151         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6152         adjust wrt the public key length being used.
6153
6154 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6155
6156         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6157           Windows build (r51396-51397).
6158
6159 2005-11-03  Martin Baulig  <martin@ximian.com>
6160
6161         * class.c (mono_class_setup_vtable_general): Also add generic
6162         methods to the vtable; fixes #76581.
6163
6164 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6165
6166         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6167         sure that we lookup GetString method from the System.Text.Encoding
6168         class, not the derived class or we get an empty method.
6169
6170         Fixed class #76612.
6171
6172 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6173
6174         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6175         if it has been previously set (embedders). 
6176
6177         Make mono_set_rootdir available also on Unix.
6178
6179 005-10-24  Robert Jordan  <robertj@gmx.net>
6180
6181         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6182
6183 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6184
6185         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6186         only calls which are made to native code use this flag.
6187
6188         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6189
6190 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6191
6192         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6193         Add support for FieldBuilders.
6194
6195 2005-10-29  Martin Baulig  <martin@ximian.com>
6196
6197         * mono-debug.c
6198         (mono_debug_using_mono_debugger): New public method; returns
6199         whether we're running inside the debugger.
6200
6201 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6202
6203         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6204         for Method/Constructor/FieldBuilders.
6205
6206 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6207
6208         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6209         and fields as well.
6210
6211 2005-10-26  Martin Baulig  <martin@ximian.com>
6212
6213         * mono-debug-debugger.c
6214         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6215
6216 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6217
6218         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6219         integer to isspace.
6220
6221 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6222
6223         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6224         when passing valuetypes byref. Fixes #76502.
6225
6226 2005-10-19  Jackson Harper  <jackson@ximian.com>
6227
6228         * profiler.c: Don't put a . in front of types that are not in a
6229         namespace.
6230
6231 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6232
6233         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6234
6235 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6236
6237         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6238         #76436.
6239         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6240
6241 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6242
6243         * assembly.c metadata-internals.h icall.c: Define an additional
6244         parameter for mono_assembly_name_parse_full, so we can avoid creating
6245         S.R.AssemblyName.Version when no version info wasn't passed.
6246         
6247 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6248
6249         * class.c (mono_type_get_full_name): Reimplement method that was
6250         removed. 
6251
6252         * image.c: Some docs
6253
6254 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6255
6256         * profiler.c (output_newobj_profile): Fix printing of Total memory
6257         on x86.
6258
6259 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6260
6261         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6262
6263 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6264
6265         * threads.c: remove debug output.
6266
6267 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6268
6269         * threads.c (mono_thread_manage): Fix crashes if more than 64
6270         threads need to be aborted. Hopefully fixes #75899.
6271
6272         * assembly.c (mono_stringify_assembly_name): New helper function.
6273
6274         * class.c: Use mono_stringify_assembly_name instead of the similar
6275         static function.
6276
6277         * assembly.h assembly.c: Add support for calling a postload search 
6278         hook if an assembly cannot be loaded.
6279
6280         * appdomain.c: Register new search hooks which call the AssemblyResolve
6281         events in AppDomain. Fixes #75231
6282
6283 2005-10-07  Martin Baulig  <martin@ximian.com>
6284
6285         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6286         methods without debug info.
6287
6288 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6289
6290         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6291         wrappers.
6292
6293 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6294
6295         * file-io.c: now that we return symlinks, use lstat and, when the file
6296         is a symbolic link, stat, to get the file attributes. Also avoid the
6297         conversion to/from utf16/external.
6298
6299 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6300
6301         * class.c (mono_class_layout_fields): Compute klass->has_references
6302         correctly if an embedded valuetype is not yet initialized. Fixes
6303         #76331.
6304
6305 2005-10-04  Martin Baulig  <martin@ximian.com>
6306
6307         * metadata.c
6308         (mono_metadata_load_generic_param_constraints): New public
6309         function; splitted the constraints loading out from
6310         mono_metadata_load_generic_params().
6311
6312         * class.c (mono_class_create_from_typedef): Call
6313         mono_metadata_load_generic_param_constraints() after setting up
6314         the type and creating our parent; fixes #75329.
6315
6316 2005-10-04  Martin Baulig  <martin@ximian.com>
6317
6318         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6319         non-dynamic parent classes.
6320
6321 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6322
6323         * file-io.c : win32 build fix (ETXTBSY seems not found).
6324
6325 2005-10-04  Martin Baulig  <martin@ximian.com>
6326
6327         * reflection.c
6328         (mono_image_get_methodspec_token): Make the cache actually work;
6329         fixes #75974.
6330
6331 2005-10-04  Martin Baulig  <martin@ximian.com>
6332
6333         * class.c (mono_class_name_from_token): Removed the unneccessary
6334         `MonoGenericContext *' argument.
6335
6336 2005-10-04  Martin Baulig  <martin@ximian.com>
6337
6338         * loader.c
6339         (method_from_methodspec): Make the caching work again; fixes the
6340         performance regression from #76262.
6341
6342 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6343
6344         * file-io.c:
6345         * file-io.h:
6346         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6347         GetFileSystemEntries that performs the same work but without going
6348         into io-layer, locking, etc.
6349
6350 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6351
6352         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6353         ThreadState_Stopped as well. Fixes #76047.
6354
6355 2005-09-29  Martin Baulig  <martin@ximian.com>
6356
6357         * class.c
6358         (inflate_generic_context): If the new context has a `gmethod', set
6359         its `container' that that gmethod's `container'.
6360
6361         * metadata.c
6362         (mono_metadata_parse_generic_param): Simplify things;
6363         `generic_container = generic_context->container;' is just fine.
6364
6365         * loader.c (method_from_methodspec): Code cleanups.
6366
6367 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6368
6369         * decimal.c: fix warning (and let gcc generate correct
6370         code on ARM with optimizations).
6371
6372 2005-09-28  Martin Baulig  <martin@ximian.com>
6373
6374         * loader.c
6375         (method_from_memberref): Added `MonoGenericContext *class_context'
6376         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6377         (method_from_methodspec): If we're a memberref, use the enclosing
6378         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6379
6380 2005-09-28  Martin Baulig  <martin@ximian.com>
6381
6382         * object.c (mono_runtime_invoke_array): Added support for
6383         MONO_TYPE_GENERICINST; fixes #75917.
6384
6385 2005-09-27  Martin Baulig  <martin@ximian.com>
6386
6387         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6388         `k->byval_arg.type' to determine the actual type.
6389
6390         * loader.c (method_from_methodspec): Removed some hacks.
6391
6392 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6393
6394         * class-internals.h (mono_field_is_deleted): Do the test for
6395         rtspecialname before we check the actual name of the field. This
6396         prevents us from dereferencing a pointer into the string table,
6397         saving us from accessing a few pages
6398
6399         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6400         macros. This will allow a deadlock debugger to easily be plugged
6401         in.
6402
6403 2005-09-27  Martin Baulig  <martin@ximian.com>
6404
6405         * loader.c (method_from_methodspec): Create a "signature"
6406         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6407
6408 2005-09-27  Martin Baulig  <martin@ximian.com>
6409
6410         * class.c
6411         (inflate_generic_class): Correctly set the new context's
6412         container.
6413
6414         * loader.c
6415         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6416         instead of a `MonoGenericContext *'.
6417         (mono_method_signature_full): Take a `MonoGenericContainer *'
6418         instead of a `MonoGenericContext *'.
6419
6420         * metadata.c
6421         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6422         instead of a `MonoGenericContext *'.
6423         (mono_metadata_parse_method_signature_full): Likewise.
6424
6425 2005-09-26  Martin Baulig  <martin@ximian.com>
6426
6427         * class.c
6428         (mono_class_from_generic_parameter): Set `klass->generic_container'
6429         (mono_class_from_generic_parameter): Likewise.
6430         (mono_bounded_array_class_get): We inherit the generic container
6431         from the element class.
6432
6433         * loader.c
6434         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6435         argument rather than computing it here.
6436         (method_from_memberref): Correctly set the generic context before
6437         parsing the signature.  Fixes #75681.
6438
6439 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6440
6441         * object.c (mono_class_has_special_static_fields): Fix warnings.
6442
6443 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6444
6445         * assembly.c: Add parse_public_key function, to
6446         par the public keys. Also added mono_assembly_name_parse_full,
6447         to define it the parsed key should be freed or not.
6448         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6449         to parse a long format assembly name.
6450         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6451         private, since calling it to preserve the key requires
6452         freeing it manually.
6453         
6454 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6455
6456         * locales.c : removed HAVE_ICU part.
6457
6458 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6459
6460         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6461         field_is_special_static if the klass has no special static fields.
6462
6463         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6464         (MonoCachedClassInfo): Likewise.
6465
6466         * object.c (mono_class_has_special_static_fields): New helper function.
6467
6468 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6469
6470         * class.c (mono_class_create_from_typedef): Don't call 
6471         interfaces_from_typedef_full for enums.
6472         (mono_class_create_from_typedef): Compute the base types of enums directly
6473         without calling mono_class_setup_fields ().
6474         (mono_class_find_enum_basetype): New helper function.
6475
6476         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6477         one place inside the string heap.
6478         
6479 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6480
6481         * class.c: locking fixes, code cleanups, some docs added.
6482         Allocate some data structures in the image mempool.
6483
6484 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6485
6486         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6487         the example code.
6488         
6489 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6490
6491         * class-internals.h, class.c, reflection.c: reduce memory taken by
6492         MonoClass.
6493
6494 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6495
6496         * metadata.c, metadata.h, loader.h: documentation updates, code and
6497         API cleanups.
6498
6499 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6500
6501         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6502         the example code.
6503
6504         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6505         page faults caused by the runtime while reading metadata.
6506
6507 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6508
6509         * socket-io.c: the field names were changed 3 months ago and no one
6510         realized until bug #76077 got filed!
6511
6512 2005-09-20  Martin Baulig  <martin@ximian.com>
6513
6514         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6515
6516 2005-09-20  Martin Baulig  <martin@ximian.com>
6517
6518         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6519         write the rank into the class entry.
6520
6521 2005-09-20  Martin Baulig  <martin@ximian.com>
6522
6523         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6524
6525 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6526
6527         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6528
6529         * icall.c (custom_attrs_defined_internal): New icall.
6530
6531         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6532         function.
6533         (mono_custom_attrs_construct_by_type): New helper function.
6534
6535 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6536
6537         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6538         terminate the resulting string. Fixes #76123.
6539
6540 2005-09-16  Martin Baulig  <martin@ximian.com>
6541
6542         * mono-debug.c
6543         (mono_debug_add_method): Ignore inflated methods for the moment.
6544
6545 2005-09-14  Martin Baulig  <martin@ximian.com>
6546
6547         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6548
6549 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6550
6551         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6552         return a success/failure indication.
6553         (mono_metadata_interfaces_from_typedef_full): Ditto.
6554         (get_constraints): Ditto.
6555
6556 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6557
6558         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6559         
6560         * marshal.c (emit_marshal_array): Add support for returning string
6561         arrays from delegates. Fixes #76063.
6562
6563         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6564
6565 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6566
6567         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6568         icall.
6569
6570 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6571
6572         * reflection.c icall.c: Fix after mono_get_exception_type_load
6573         signature change.
6574
6575         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6576         (mono_assembly_load_reference): Use the new helper.
6577
6578         * class-internals.h (MonoLoaderError): New structure containing 
6579         information about type loading errors.
6580
6581         * class-internals.h loader.c: Add APIs to store per-thread loader
6582         error information.
6583
6584         * loader.c class.c: Set the loader error if needed.
6585
6586         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6587
6588 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6589
6590         * decimal.c: fixed to handle the broken ARM fp format.
6591
6592 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6593
6594         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6595         broken.
6596
6597 2005-09-06  Martin Baulig  <martin@ximian.com>
6598
6599         * domain.c (supported_runtimes): Added v2.0.50727.
6600
6601 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6602
6603         * culture-info.h: reduce the size of some structures.
6604
6605 2005-09-05  Martin Baulig  <martin@ximian.com>
6606
6607         Reflect latest API changes in the August CTP.
6608
6609         * icall.c
6610         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6611         ("MonoType.HasGenericArguments"): Removed.
6612         ("MonoMethod.BindGenericParameters"): Renamed to
6613         "MakeGenericMethod".
6614         ("MethodBuilder.BindGenericParameters"): Renamed to
6615         "MakeGenericMethod".    
6616
6617 2005-09-05  Martin Baulig  <martin@ximian.com>
6618
6619         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6620
6621 2005-09-05  Martin Baulig  <martin@ximian.com>
6622
6623         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6624
6625         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6626         generic_container is non-NULL.
6627
6628 2005-09-05  Martin Baulig  <martin@ximian.com>
6629
6630         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6631
6632         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6633
6634 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6635
6636         * reflection.c (encode_locals,
6637         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6638         for large generic types.
6639
6640 2005-09-05  Martin Baulig  <martin@ximian.com>
6641
6642         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6643
6644         * class.c (mono_dup_array_type): New public method.
6645         (mono_metadata_signature_deep_dup): New public method.
6646         (dup_type): Correctly duplicate array and function types.
6647
6648 2005-09-05  Martin Baulig  <martin@ximian.com>
6649
6650         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6651
6652         * reflection.c (get_default_param_value_blobs): Handle generic types
6653         and generic methods.
6654
6655 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6656
6657         * class.c: Fixed error reporting (method/class were inversed) for 
6658         inheritance demands.
6659         * security-manager.c|h: Added the AppDomain when calling the managed
6660         System.Security.SecurityManager.InheritanceDemand method.
6661
6662 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6663
6664         * reflection.c (encode_marshal_blob): 'marshaltype' and
6665         'marshaltyperef' are alternate sources for the custom marshaler
6666         name.
6667
6668 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6669
6670         * class.c: fix creation of array classes with rank == 1
6671         (patch by Ankit Jain <jankit@novell.com>).
6672
6673 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6674
6675         * object.c: fix check for creating the bound data for arrays vs
6676         szarrays.
6677
6678 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6679
6680         * object.c: configuration file name is now based on the executable name,
6681         not the image name. Fixes bug #75931.
6682
6683 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6684
6685         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6686         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6687
6688 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6689
6690         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6691
6692 2005-08-24  Ankit Jain  <jankit@novell.com>
6693             Raja R Harinath  <rharinath@novell.com>
6694
6695         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6696           called by it recursively.
6697           (mono_class_init): Remove special case in pending_init handling, since it's
6698           superseded by the fix to mono_class_from_typeref.
6699
6700 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6701
6702         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6703         BROKEN_THREAD_START stuff.
6704
6705 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6706
6707         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6708         trampoline.
6709
6710         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6711         
6712         * object.c (mono_delegate_ctor): Replace the original function address with
6713         a delegate trampoline.
6714
6715 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6716
6717         * icall.c: add boolean argument to base64_to_byte_array and 
6718         InternalFromBase64String to control whether a whitespace-only string
6719         is allowed (or should casue a FormatException to be thrown). We need
6720         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6721         to match the MS behaviour in both profiles.
6722         * appdomain.c: Bump corlib version.
6723
6724 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6725
6726         This patch implements a big portion of publisher policy
6727         support, used to bind assembly versions and redirect
6728         one assembly from version A to version B.
6729
6730         * assembly.c:
6731         New GSList loaded_assembly_bindings, for storing the cached
6732         assembly bindings.
6733         (assembly_binding_maps_name): New static function for checking if a 
6734         assembly binding information maps an assembly name.
6735         (mono_assembly_binding_info_free): New function for freeing
6736         assembly binding information resources.
6737         (get_publisher_policy_info): New static function for retrieving 
6738         assembly binding information from a MonoImage.
6739         (compare_versions): New static function for comparing an assembly
6740         binding information data and the version of an assembly name.
6741         (check_policy_versions): New static function for checking if an
6742         assembly binding info mapping an assembly name is valid for it.
6743         (mono_assembly_load_publisher_policy): New static function for
6744         loading the 'policy.major.minor.MyAssembly' image for an assembly
6745         with an assembly name 'aname'.
6746         (mono_assembly_bind_version): New static function for updating
6747         assembly redirection.
6748         (mono_assembly_apply_binding): New static function for applying
6749         assembly binding.
6750         (search_binding_loaded): New static function for searching 
6751         loaded assembly binding infos in the cache domain.
6752         (mono_assembly_load_full): Don't apply assembly binding for
6753         reflection only assemblies.
6754
6755         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6756         which contains information about assembly binding. Also
6757         declare signature for mono_config_parse_publisher_policy ()
6758         function, used to retrieve pub policy info.
6759         
6760         * mono-config.c:
6761         (publisher_policy_start): New static function used to parse publisher 
6762         policy config files.
6763         (publisher_policy_parser): New static MonoParseHandler containing 
6764         the functions used when parsing config files.
6765         (mono_config_parse_publisher_policy): New function for parsing
6766         publisher policy files.
6767         
6768 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6769
6770         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6771
6772         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6773
6774         * object.c (mono_get_addr_from_ftnptr): New helper function.
6775
6776         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6777
6778         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6779
6780 2005-08-19  Dick Porter  <dick@ximian.com>
6781
6782         * threads.c, threads.h, appdomain.c, appdomain.h,
6783         profiler-private.h, monitor.c, object.c, object-internals.h,
6784         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6785         store the thread ID, so it can hold a 64 bit value if needed.
6786
6787 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6788
6789         * reflection.c (mono_reflection_create_dynamic_method): Store the
6790         handle class into the method references as well so ldtoken works in
6791         dynamic methods.
6792
6793         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6794         types.
6795
6796 2005-08-19  Ankit Jain <jankit@novell.com>
6797
6798         Fix #75847.
6799         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6800           here rather than using the method signature of a arbitrary function
6801           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6802           two arguments.
6803           Hack done with Harinath.
6804
6805 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6806
6807         * threadpool.c: disable printing stack traces when we get a exception
6808         in a threadpool thread. I need to do more testing to figure out which
6809         cases actually print this. Fixes bug #75828.
6810
6811 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6812
6813         * icall.c: there might be ignored whitespace after the last '='. This
6814         fixes length computation and bug #75840.
6815
6816 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6817
6818         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6819         well. Fixes #75809.
6820
6821         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
6822         #75784.
6823         
6824         * reflection.c (create_custom_attr_data): Ditto.
6825
6826 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
6827
6828         * locales.c, culture-info.h : removed RegionLCIDMap.
6829         * culture-info-tables.h : regenerated.
6830
6831 2005-08-16  Martin Baulig  <martin@ximian.com>
6832
6833         * class.c (mono_type_get_name_recurse): Small fix.
6834
6835 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6836
6837         * locales.c : indentation fixie.
6838
6839 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6840
6841         * object-internals.h,
6842           locales.h,
6843           locales.c,
6844           culture-info.h,
6845           icall.c : added RegionInfo table support.
6846         * culture-info-table.h : regenerated for region support.
6847
6848 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6849
6850         * reflection.c (resolve_object): handle all kinds of MonoMethod
6851         including generic ones
6852
6853 2005-08-12  Ankit Jain <jankit@novell.com>
6854
6855         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6856           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6857
6858 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6859
6860         * process.c: Don't close a thread handle when it's NULL. This is a
6861         workaround for bug #75733.
6862
6863 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6864
6865         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6866
6867 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6868
6869         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6870
6871 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6872
6873         * threadpool.c: if a work item in the thread pool has a callback that
6874         catches a exception, don't propagate it after invoking the callback.
6875         Fixes bug #75336.
6876
6877 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6878
6879         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6880
6881         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6882
6883         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6884
6885         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6886
6887 2005-08-03  Ankit Jain  <jankit@novell.com>
6888
6889         Fix #75683.
6890         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6891           PInvoke calling convention is 0.
6892
6893 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6894
6895         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6896         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6897
6898 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6899
6900         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6901         to handle threads not started by the GC (patch by Michael Meeks
6902         <michael.meeks@novell.com>).
6903
6904 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6905
6906         * reflection.c: Make buffer used in emitting types larger for some
6907         big generic types (patch by Michal Moskal).
6908
6909 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6910
6911         * mono-debug.c: Fix some (not all) alignment problems.
6912
6913 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6914
6915         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6916         Invoke mono_image_load_from_data_full passing the refonly
6917         parameter.
6918
6919         * assembly.c
6920         (mono_assembly_open_from_bundle): Add the refonly argument, 
6921         in order to pass it to other methods it calls to.
6922         (do_mono_assembly_open): Add the refonly argument, in order 
6923         to pass it to other methods it calls to.
6924         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6925         the refonly parameter to it.
6926
6927         * image.c: Add loaded_images_refonly_hash and
6928         loaded_images_refonly_guid_hash to cache the reflection
6929         only loaded images.
6930         (mono_images_init): Initialize the hash tables used for
6931         caching the reflection only images.
6932         (load_modules): Invoke mono_image_open_full passing the refonly
6933         parameter to load the modules the correct way.
6934         (build_guid_table): Add the refonly argument, to re-build the 
6935         correct hash table.
6936         (do_mono_image_open): Added the refonly argument, in order to
6937         define it for the loaded image.
6938         (mono_image_loaded_full): New function, which receives an
6939         additional parameter to look for the image in the refonly or
6940         non-refonly section.
6941         (mono_image_loaded): Updated, using mono_image_loaded_full.
6942         (mono_image_loaded_by_guid_full): The same case that happens
6943         with mono_image_loaded_full.
6944         (mono_image_loaded_by_guid): Likewise.
6945         (register_image): Use the ref_only variable inside MonoImage
6946         to decide in which hash table store the current image.
6947         (mono_image_open_from_data_full): Rename
6948         mono_image_open_from_data to mono_image_open_from_data_full,
6949         adding the refonly argument, to define the ref_only variable 
6950         inside MonoImage.
6951         (mono_image_open_from_data): Return 
6952         mono_image_open_from_data_full.
6953         (mono_image_open_full): Rename mono_image_open to
6954         mono_image_open_full, receiving the new refonly argument,
6955         to pass it to inner methods.
6956         (mono_pe_file_open): Update this function, to open
6957         a MonoImage as a non-refonly image.
6958         (mono_image_close): Use the refonly variable inside
6959         MonoImage to remove the image from the correct caches.
6960
6961         * image.h: Add the signatures of mono_image_open_full,
6962         mono_image_open_from_data_full, mono_image_loaded_full,
6963         mono_image_loaded_by_guid_full.
6964
6965         * metadata-internals.h: Add the ref_only field to 
6966         MonoImage.
6967         
6968 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6969
6970         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6971         Fix the last behavior, which used to load the assemblies and
6972         extract MonoReflectionAssemblyName information, instead of
6973         extract it from the metadata tables. Needed for Reflection
6974         Only assemblies.
6975         
6976 2005-07-29  Martin Baulig  <martin@ximian.com>
6977
6978         * mono-debug-debugger.c
6979         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6980         not initialized.
6981
6982         * mono-debug.c
6983         (mono_debug_address_from_il_offset): Check whether we have
6984         debugging support before attempting to take the lock.
6985         (mono_debug_source_location_from_address): Likewise.
6986         (mono_debug_source_location_from_il_offset): Likewise.
6987         (mono_debug_il_offset_from_address): Likewise.
6988         (mono_debug_address_from_il_offset): Likewise.
6989
6990 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6991
6992         * class.c (mono_class_from_name_case): Add support for dynamic images.
6993         Fixes #75650.
6994
6995         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6996         for #75479.
6997
6998 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6999         
7000         * reflection.c (mono_method_get_object): Fix warning.
7001
7002 2005-07-28  Martin Baulig  <martin@ximian.com>
7003
7004         * mono-debug.c
7005         (mono_debug_add_wrapper): Also write the wrapper type.
7006
7007 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7008
7009         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
7010         
7011         * class.c (mono_class_init): Avoid reading nested classes if the AOT
7012         data indicates the class has none.
7013
7014 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
7015
7016         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
7017         loader lock with the debugger lock. Prevents deadlocks for beagle.
7018
7019         Beagle can now run on an smp box for a weekend without any
7020         issues. Woohoo!
7021
7022 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
7023
7024         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
7025         in a module. Fixes #75629.
7026
7027 2005-07-26  Martin Baulig  <martin@ximian.com>
7028
7029         * mono-debug.c (mono_debug_add_wrapper): New static method.
7030         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
7031         interncall or a wrapper.
7032
7033         * mono-debug.h (MonoDebugWrapperData): New public typedef.
7034         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
7035         (MONO_DEBUGGER_VERSION): Bump to 51.
7036
7037         * mono-debug-debugger.c
7038         (mono_debugger_add_type): Removed this empty function.
7039         (mono_debugger_add_method): Likewise.
7040
7041 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
7042
7043         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
7044         before accessing method->slot.
7045
7046 2005-07-21  Jb Evain  <jbevain@gmail.com>
7047
7048         * reflection.c (method_encode_clauses/class): Handle filters clauses.
7049         Fixes #75010.
7050
7051 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
7052
7053         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
7054         #75587.
7055
7056 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
7057
7058         * image.h image.c: Add mono_image_get_guid () API function.
7059
7060 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
7061
7062         There were issues when multiple threads tried to load
7063         assemblies. A deadlock was created between assemblies_mutex and
7064         mono_domain_assemblies_lock. This fixes the issue by making the
7065         assembly ref counting be lock free. See bug 75586.
7066         
7067         * image.c (mono_image_close): The add ref function here was using
7068         Interlocked operations while the unref was using a mutex and a
7069         --. I don't think this was ever a bug that would be exposed in a
7070         non-pendantic way (ie, by an embedder doing a ref on one thread
7071         and an unref on another), but for the sake of correctness, this is
7072         now Interlocked.
7073
7074         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
7075         (mono_assembly_load_reference): Call mono_assembly_addref rather
7076         than touching the refcount ourselves.
7077         (mono_assembly_close): Use InterlockedDecrement to unref the
7078         assembly. Don't acquire the lock unless it is actually needed.
7079
7080 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7081
7082         * class.c (mono_class_layout_fields): Fix calculation of has_references
7083         for generic types.
7084
7085 2005-07-12  Martin Baulig  <martin@ximian.com>
7086
7087         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7088
7089         * metadata.c
7090         (mono_type_hash): Provide better hashing for generic instances.
7091         (mono_generic_inst_hash): Improve hashing.
7092         (mono_generic_class_hash): Likewise.
7093
7094         * reflection.c (mymono_metadata_type_hash): Improve hashing for
7095         generic instances.
7096
7097 2005-07-12  Martin Baulig  <martin@ximian.com>
7098
7099         * reflection.c (mono_reflection_create_runtime_class): Remove the
7100         hack for generic type definitions and non-`Run' assemblies.
7101         (mono_reflection_bind_generic_parameters): Also use
7102         `klass->wastypebuilder' to check for TypeBuilders.
7103
7104 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7105
7106         * class.c (mono_class_layout_fields): Fix calculation of has_references
7107         for generic types.
7108
7109         * class.c (inflate_generic_class): Fix a leak.
7110         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7111         for generic types.
7112
7113 2005-07-11  Martin Baulig  <martin@ximian.com>
7114
7115         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7116         on error.
7117
7118 2005-07-11  Martin Baulig  <martin@ximian.com>
7119
7120         * loader.c (find_method): Also lookup in
7121         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7122
7123 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7124
7125         * appdomain.c (mono_domain_unload): Don't free the error message
7126         before passing it to mono_get_exception_...
7127
7128         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7129         
7130 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7131
7132         * threads.c: try to better guess an available RT signal (bug #75387).
7133
7134 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7135
7136         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7137         and CACHE_OBJECT.
7138
7139 2005-07-07  Martin Baulig  <martin@ximian.com>
7140
7141         * class.c (mono_type_get_name_full): Return NULL for
7142         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7143         fixes #75408.
7144
7145 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7146
7147         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7148         exit the appdomain as well being aborted.
7149
7150         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7151         change back to the root domain after calling managed code. This enables
7152         appdomains using threadpools to be unloaded.
7153
7154 2005-07-07  Martin Baulig  <martin@ximian.com>
7155
7156         * class-internals.h
7157         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7158         into `MonoDynamicGenericClass' since we only need it for dynamic
7159         types.
7160
7161         * reflection.c (mono_class_bind_generic_parameters): We don't need
7162         to compute the `parent' here.
7163
7164 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7165
7166         * culture-info-table.h : regenerated.
7167
7168 2005-07-06  Martin Baulig  <martin@ximian.com>
7169
7170         * icall.c
7171         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7172
7173         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7174
7175 2005-07-06  Martin Baulig  <martin@ximian.com>
7176
7177         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7178         we're doing a signature-only comparision; fixes #74945.
7179
7180 2005-07-06  Martin Baulig  <martin@ximian.com>
7181
7182         * class-internals.h (MonoGenericClass): Moved some things out into
7183         a new `MonoInflatedGenericClass' type.  
7184         (MonoInflatedGenericClass): New type; the `klass' of a
7185         `MonoGenericClass' is now computed lazyly in
7186         mono_get_inflated_generic_class().      
7187
7188         * class.c (mono_get_inflated_generic_class): New public function.
7189         (mono_class_inflate_generic_method): Removed the unused
7190         `MonoClass *' argument.
7191         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7192         all the methods.
7193         (mono_class_create_generic): Make this static and merge it with
7194         mono_class_create_generic_2(); we're now called automatically from
7195         mono_get_inflated_generic_class().
7196
7197         * loader.c (mono_method_signature): Call
7198         mono_get_inflated_method() here.
7199
7200 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7201
7202         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7203         type of fields with RVA.
7204
7205         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7206         for this pseudo class.
7207         (my_mono_class_from_generic_parameter): Likewise.
7208         (mono_class_init): Allow interfaces to have cctors.
7209
7210 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7211
7212         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7213         lazily for AOT methods.
7214
7215 2005-07-05  Martin Baulig  <martin@ximian.com>
7216
7217         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7218         returns FALSE for a successful match, not TRUE.
7219
7220 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7221
7222         * loader.c (mono_method_get_index): Optimize this a bit.
7223
7224 2005-07-04  Martin Baulig  <martin@ximian.com>
7225
7226         * class.c
7227         (class_compute_field_layout): Move the check for generic type
7228         definitions into mono_class_layout_fields().  Fixes #74684.
7229         (mono_class_from_generic_parameter): Correctly compute
7230         `klass->parent'; fixes #75457.
7231
7232         * reflection.c (register_assembly, register_module): Make sure
7233         `domain->rejobject_hash' is already created.
7234
7235 2005-07-02  Martin Baulig  <martin@ximian.com>
7236
7237         * class-internals.h
7238         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7239         `MonoDynamicGenericClass'.      
7240
7241 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7242
7243         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7244         returned by a field getter is null, since null is a valid value.
7245
7246 2005-07-01  Martin Baulig  <martin@ximian.com>
7247
7248         * reflection.c (mono_reflection_generic_class_initialize): Update
7249         the `dgclass->fields [i].parent' to the correct class.
7250         (mono_image_get_fieldref_token): Use the declaring type, not the
7251         reflected type.
7252
7253 2005-07-01  Martin Baulig  <martin@ximian.com>
7254
7255         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7256
7257 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7258
7259         * threads.c (thread_cleanup): assert that thread != NULL
7260         (wait_for_tids_or_state_change): We were using the wrong variable
7261         when accessing wait->threads. `i' was always out of the bounds of
7262         the array.
7263
7264 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7265
7266         * loader.c: map user32 and kernel32 to libMonoSupportW
7267
7268 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7269
7270         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7271
7272 2005-06-28  Martin Baulig  <martin@ximian.com>
7273
7274         * loader.c (method_from_methodspec): Fix #75334.
7275
7276 2005-06-28  Martin Baulig  <martin@ximian.com>
7277
7278         Fix #74953 - Arrays now implement the generic IList<T> interface
7279         on the 2.0 platform.
7280
7281         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7282
7283         * reflection.c (mono_class_bind_generic_parameters): New public
7284         function; similar to mono_reflection_bind_generic_parameters(),
7285         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7286
7287         * domain.c (mono_init_internal): Try to initialize.
7288         `mono_defaults.generic_array_class' here; this'll only succeed if
7289         we're using the 2.0 corlib.
7290
7291         * icall.c
7292         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7293         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7294         (mono_lookup_internal_call): Added support for nested classes.
7295
7296         * loader.c
7297         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7298         we're an interncall and have generic arguments.
7299
7300         * class.c
7301         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7302         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7303         instance of System.Array.InternalArray<T> for arrays, so they
7304         implement the generic IList<T> interface.
7305
7306 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7307
7308         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7309         (chastamar@yahoo.com). Fixes #75374.    
7310
7311 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7312
7313         * culture-info-table.h: regenerated.
7314
7315 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7316
7317         * icall.c: handle spaces correctly for base64 strings.
7318
7319 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7320
7321         * *.c: Kill some warnings.
7322
7323 2005-06-23  Duncan Mak  <duncan@novell.com>
7324
7325         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7326         that this builds on Solaris 10 (x86).
7327
7328 2005-06-23  Martin Baulig  <martin@ximian.com>
7329
7330         * class.c
7331         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7332         generic type definitions.
7333
7334 2005-06-23  Martin Baulig  <martin@ximian.com>
7335
7336         Fix #75331.
7337
7338         * metadata.c (mono_class_get_overrides): Renamed to
7339         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7340         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7341         pass it to mono_get_method_full().
7342
7343 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7344
7345         * reflection.c (mono_reflection_create_runtime_class): take the
7346         mono_domain_lock in this method. Prevents deadlocks
7347
7348 2005-06-22  Martin Baulig  <martin@ximian.com>
7349
7350         * loader.c (method_from_methodspec): Fix #75330.
7351
7352 2005-06-22  Martin Baulig  <martin@ximian.com>
7353
7354         * reflection.c (type_get_qualified_name): Use
7355         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7356         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7357         argument; use it if we don't have an assembly name.
7358
7359 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7360
7361         * object.c: In mono_message_init, set "copy out" flag for in
7362         parameters with the [Out] flag.
7363
7364 2005-06-21  Martin Baulig  <martin@ximian.com>
7365
7366         * class.c
7367         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7368         and MONO_TYPE_PTR.
7369
7370 2005-06-21  Martin Baulig  <martin@ximian.com>
7371
7372         * class.c (mono_class_init): Don't initialize `class->fields' for
7373         generic instances since they're initialized again in
7374         compute_field_layout(). 
7375         (compute_field_layout): Set the field's `generic_info' here; fix
7376         #75320. 
7377
7378 2005-06-21  Martin Baulig  <martin@ximian.com>
7379
7380         * class-internals.h
7381         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7382
7383         * metadata.c (mono_metadata_generic_method_equal): Also
7384         distinguish the `generic_class'; fixes #75334.
7385
7386 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7387
7388         * domain.c:
7389         * appdomain.c:
7390         * domain-internals.h:
7391         * reflection.c: 'domain_assemblies' field is now protected by its own
7392         lock. Don't call into managed code to run the AssemblyLoad event if we
7393         now there are no registered delegates for it.
7394
7395 2005-06-20  Martin Baulig  <martin@ximian.com>
7396
7397         * class.c (mono_class_is_assignable_from): Use a custom version of
7398         mono_class_has_parent() to make things work for generic instances;
7399         fix #75300.
7400
7401 2005-06-20  Martin Baulig  <martin@ximian.com>
7402
7403         * loader.c (method_from_methodspec): Apply a patch from
7404         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7405
7406 2005-06-20  Martin Baulig  <martin@ximian.com>
7407
7408         * class.c (mono_class_init): Reverted Zoltan's last change; it
7409         breaks generics.
7410
7411 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7412
7413         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7414
7415 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7416
7417         * socket-io.c: fix the index in the socket array for writable/error
7418         sockets. Fixes bug #75306.
7419
7420 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7421
7422         * class.c (mono_class_init): Allow interfaces to have static ctors.
7423
7424 2005-06-17  Martin Baulig  <martin@ximian.com>
7425
7426         * loader.c (method_from_methodspec): Use `context->container' when
7427         parsing the `gmethod->inst'.
7428
7429 2005-06-17  Martin Baulig  <martin@ximian.com>
7430
7431         * class.c (mono_type_get_name_recurse): Don't add the assembly
7432         name for type arguments.
7433
7434 2005-06-15  Martin Baulig  <martin@ximian.com>
7435
7436         * reflection.c (mono_image_get_inflated_method_token): Encode
7437         correct klass; fixes #75260.
7438
7439 2005-06-13 Michal Moskal <malekith@nemerle.org>
7440
7441         * icall.c: Make GetCorrespondingMethod/Constructor take
7442         MonoReflectionMethod method not MonoMethod. Removed
7443         MonoType.GetCorrespondingField, and make
7444         MonoGenericType.GetCorrespondingField take name not
7445         MonoClassField.
7446
7447 2005-06-13  Michal Moskal <malekith@nemerle.org>
7448
7449         * reflection.c (field_encode_signature, encode_locals):
7450          Make sizes of buffers for types larger (for big generic types).
7451          (create_generic_typespec,
7452          mono_reflection_sighelper_get_signature_local,
7453          mono_reflection_sighelper_get_signature_field):
7454          Add asserts for too small buffers.
7455
7456 2005-06-15  Martin Baulig  <martin@ximian.com>
7457
7458         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7459         if our parent is not a dynamic type.
7460
7461 2005-06-15  Martin Baulig  <martin@ximian.com>
7462
7463         * class-internals.h (MonoTypeNameFormat): New enum.
7464
7465         * class.c
7466         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7467         (mono_type_get_full_name): Removed.
7468         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7469         argument instead of the boolean's.
7470
7471         * icall.c (ves_icall_System_MonoType_getFullName):
7472         Added `gboolean assembly_qualified'.    
7473
7474         * reflection.h
7475         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7476
7477         * reflection.c (mono_reflection_parse_type): Parse the new type
7478         name format.
7479
7480 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7481
7482         * icall.c: no need to convert from utf16 to utf8 and then back again
7483         after the call to GetLogicalDrives.
7484
7485 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7486
7487         * icall.c: frombase64. Fix problems exposed by new tests.
7488
7489 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7490
7491         * icall.c: added internal calls for converting char [] and strings in
7492         base64 into byte [].
7493
7494 2005-06-10  Martin Baulig  <martin@ximian.com>
7495
7496         * class.c (mono_class_create_generic_2): Read the nested classes
7497         from the metadata rather than from `gklass->nested_classes' since
7498         `gklass' might not be initialized yet.
7499
7500 2005-06-09  Duncan Mak  <duncan@novell.com>
7501
7502         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7503         all public headers. Fixes #74919.
7504
7505 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7506
7507         * domain.c: The key for proxy_vtable_hash is now a pointer
7508         array. Added new GHashFunc and GCompareFunc functions for this.
7509
7510         * class.h: The list of interfaces in MonoRemoteClass is known in
7511         advance and can't grow (we create a new MonoRemoteClass if needed),
7512         so now the interface array can be allocated together with
7513         MonoRemoteClass.
7514         
7515         * object.c: Added a new method create_remote_class_key.
7516         Fixed mono_remote_class so it does not depend on
7517         mono_upgrade_remote_class.
7518         Removed extend_interface_array.
7519         Added new method clone_remote_class(), which makes a copy of a remote
7520         class and adds a new interface or class to it.
7521         mono_upgrade_remote_class() now creates a new remote class (or gets
7522         it from the cache) if an vtable upgrade is needed. In this way
7523         we make sure that other objects sharing the same remote class
7524         don't get the new vtable with unwanted interfaces.
7525         
7526         * object-internals.h:
7527         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7528         
7529         * marshal.c: Track changes in mono_upgrade_remote_class().
7530
7531 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7532         * icall.c: Add runtime methods for obtaining members of inflated
7533         class, which were created from supplied non-inflated members. It
7534         is used in internal Get{Method,Constructor,Field} methods in
7535         System.Type
7536
7537 2005-06-09  Martin Baulig  <martin@ximian.com>
7538
7539         * reflection.c
7540         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7541
7542 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7543         * reflection.c (mono_image_basic_init): Define
7544         Version in MonoDynamicAssembly. 
7545         
7546 2005-06-08  Martin Baulig  <martin@ximian.com>
7547
7548         Fix #75136.
7549
7550         * loader.c
7551         (mono_method_signature_full): New public method; takes a
7552         `MonoGenericContext *'.
7553         (find_method): Use mono_method_signature_full() and pass the
7554         klass'es context to it.
7555
7556         * class.c (mono_class_is_inflated_method): Use
7557         mono_method_signature_full() and pass the context to it.
7558
7559 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7560
7561         * object.c: add proper locking in mono_remote_class_vtable(),
7562         fixes possible memory corruption.
7563
7564 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7565
7566         * marshal.c (mono_remoting_marshal_init): set
7567         initialized after initialization.
7568
7569 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7570
7571         * locales.c : hush.
7572
7573 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7574
7575         * object.c (extend_interface_array): fix really silly
7576         memory corrupting / comparison bug.
7577
7578 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7579
7580         * reflection.c: Functions added to support the creation
7581         of CustomAttributeData, which includes Attribute data
7582         used by ReflectionOnly methods.
7583
7584         * reflection.h:  mono_reflection_get_custom_attrs_data and
7585          mono_custom_attrs_data_construct added (functions exposed).
7586
7587          * icall.c: Added mono_reflection_get_custom_attrs_data
7588          as icall.
7589         
7590 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7591
7592         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7593         lupus's request.
7594
7595 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7596
7597         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7598
7599         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7600         dynamic DllImportAttribute.
7601
7602         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7603         dynamic DllImportAttribute.
7604
7605         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7606         Fixes #75162.
7607
7608 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7609
7610         * threads.c: avoid segfault when an unstarted thread is aborted.
7611
7612 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7613
7614         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7615         Returns the name and version of the runtime for reporting.
7616
7617 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7618
7619         * appdomain.c: bump corlib version.
7620         * object-internals.h: new field in MonoReflectionAssembly.
7621
7622 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7623
7624         * object-internals.h: Carlos forgot to add this field.
7625
7626 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7627
7628         * icall.c: Added create_version to create instances
7629         of Version of MonoReflectionAssemblyName. This change helps
7630         the AssemblyName tests to keep running fine.
7631         
7632 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7633   
7634         * object.c (mono_method_return_message_restore): A somehow less
7635         intrusive fix for #75138.
7636
7637 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7638
7639         * object.c (mono_method_return_message_restore): Fix computation
7640         of expected number of out args.
7641
7642 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7643
7644         * reflection.c (mono_image_get_method_info): Fix the case when the
7645         charset is empty.
7646
7647 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7648
7649         * object.c: Added missing null check in
7650           mono_method_return_message_restore.
7651
7652 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7653
7654         * reflection.c (mono_image_get_method_info): Handle the case when
7655         dllentry is empty.
7656
7657 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7658
7659         * object.c: When creating the vtable for a proxy, take into account
7660         all inherited interfaces, not only the ones registered in
7661         iclass->interfaces. This fixs bug #74996.
7662         Also, in mono_method_return_message_restore, verify that the array
7663         of out args has the expected lengh.
7664
7665 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7666
7667         * socket-io.c: update the timeout in Poll when the call is interrupte.
7668
7669 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7670
7671         * socket-io.c: support abort/suspend in Select_internal after last
7672         change.
7673
7674 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7675
7676         * threadpool.c: remove warning.
7677
7678 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7679
7680         * icall.c:
7681         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7682         removing the 1024 limit from select(). Runtime part of the fix for
7683         bug #71203.
7684
7685 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7686
7687         * socket-io.c: when resolving the addresses for the same
7688         host returned by gethostname(), get the local IPs from the interface
7689         list. Loopback addresses are discarded if the are interfaces up with
7690         non-loopback ones. Fixes bug #63265.
7691
7692 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7693
7694         * appdomain.c, verify.c, object-internals.h, reflection.c:
7695         bumped corlib number to 36, and added new extra_flags field
7696         to ReflectionMethodBuilder and friends.  Fixes #75060.
7697
7698 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7699
7700         * gc.c: register a new weak link only if the object is non-null
7701         (fixes bug#75047).
7702
7703 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7704
7705         * culture-info.h : short time pattern too.
7706
7707 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7708
7709         * culture-info.h : expand long time pattern string length.
7710
7711 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7712
7713         * culture-info-table.h : update (more French date format; #72788).
7714
7715 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7716
7717         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7718         the method is static. Fixes #75029.
7719
7720 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7721
7722         * reflection.c: Update the table_idx field of method builders after
7723         saving the module, since it can change. This is a workaround for
7724         bug #74914. 
7725
7726 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7727
7728         * culture-info-table.h : update (additional French date format).
7729
7730 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7731
7732         * icall.c (ves_icall_type_Equals): Revert last change.
7733         
7734         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7735
7736         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7737
7738 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7739
7740         * class-internals.h: Added executioncontext_class field to 
7741         MonoDefaults structure.
7742         * domain.c: Cache System.Threading.ExecutionContext class in 
7743         mono_defaults.
7744         * object.c: Capture the ExecutionContext for asynchroneous calls in
7745          mono_async_result_new.
7746         * object-internals.h: Added execution_context and original_context 
7747         fields to MonoAsyncResult. Added execution_context to MonoThread.
7748         * security-manager.c|.h: Added mono_get_context_capture_method to 
7749         return the capture method (if required by the security manager or by
7750         the framework version used).
7751         * threadpool.c: Apply capture (if present) ExecutionContext in 
7752         mono_async_invoke and revert to original context after it completes.
7753
7754 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7755
7756         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7757
7758 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7759
7760         * culture-info-table.h : zh-CHT related workaround.
7761
7762 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7763
7764         * marshal.c (emit_marshal_custom): Add some error checking and call the
7765         methods in the ICustomMarshaler interface. Fixes #74875.
7766         
7767         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7768         native->managed wrappers.
7769
7770 2005-05-12  Martin Baulig  <martin@ximian.com>
7771
7772         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7773         here and use the loader lock.
7774
7775         * mono-debug.c: Properly lock when the debugger is not attached.
7776         (mono_debug_init): Release the initial lock if we're not running
7777         in the debugger.
7778
7779 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7780
7781         * marshal.c (emit_marshal_custom): Pass through NULL values without
7782         calling the custom marshalling routines.
7783
7784         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7785         conversion in structures. Fixes #74882.
7786
7787 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7788
7789         * culture-info-table.h : zh-* cultures were missing.
7790
7791 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7792
7793         * threads.c: Added a new event background_change_event which is signaled
7794         when a thread changes its background mode.
7795         Moved here several checks previously done in managed code. The checks
7796         require the thread lock, and using the thread lock in managed code
7797         can result in deadlocks.
7798         Merged Start_internal and Thread_internal into a single method. Now 
7799         Thread_internal does all work of creating and starting a thread.
7800         Added icalls for setting and getting the state of the object. Moved from
7801         managed code to avoid locking there.
7802         Added wait_for_tids_or_state_change() which is called instad of
7803         wait_for_tids when waiting for non-backround threads to end. This method
7804         will return if one of the threads ends or the background_change_event
7805         is signaled.
7806         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7807         the background mode. This method signals the background_change_event
7808         event.
7809         * icall.c:
7810         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7811         removed Start_internal.
7812         
7813 2005-05-11  Martin Baulig  <martin@ximian.com>
7814
7815         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7816         to order of some fields to get proper alignment on 64-bit machines.
7817
7818 2005-05-11  Martin Baulig  <martin@ximian.com>
7819
7820         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
7821         changes as they're broken and completely fuck up the debugger.
7822
7823         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
7824
7825 2005-05-10  Martin Baulig  <martin@ximian.com>
7826
7827         * reflection.c (mono_reflection_generic_class_initialize): Don't
7828         call mono_class_setup_parent() here.
7829
7830 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7831
7832         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7833         send/receive timeout use an integer in milliseconds. We were using a
7834         struct timeval.
7835
7836 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7837
7838         * locales.c:
7839         (internal_get_cultures): reserve the first slot of the array for the
7840         InvariantCulture, which will be filled in managed code.
7841
7842 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7843
7844         * reflection.c (mono_image_fill_module_table): Initialize the
7845         GENERATION field as well.
7846
7847 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7848
7849         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7850         Monitor.Enter on the object.
7851
7852 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7853
7854         * threads.c: Enable the wait for running threads when exiting.
7855         * icall.c: Suspend all threads before exiting.
7856
7857 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7858
7859         * assembly.c (mono_assembly_load_reference): Fix warning.
7860
7861 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7862
7863         * threadpool.c: changed the default number of threads per cpu. From now
7864         on, the default will be 20 + (5 * number of cpus) instead of 50.
7865
7866 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7867
7868         * loader.c (mono_method_get_signature_full): Add locking here.
7869
7870 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7871
7872         * appdomain.c: Moved methods for parsing and freeing assembly
7873         names to assembly.c.
7874         * assembly.c, domain-internals.h: Created public methods for parsing
7875         assembly names. Fixed mono_assembly_load_with_partial_name:
7876         it now finds the best match, taking into account the version,
7877         token and culture specified in the partial name. Also return
7878         the latest version if no version information is specified.
7879
7880 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7881
7882         * threadpool.c: replace check for SocketAsyncCall class.
7883
7884 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7885
7886         * threadpool-internals.h:
7887         * Makefile.am: added threadpool-internals.h
7888
7889         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7890         that happen in threadpool threads (tested on MS).
7891         (mono_thread_pool_remove_socket): new function that dispatch any pending
7892         AIO call on a socket that is closing. By now only epoll really needs it,
7893         as select/poll wake up when the socket closes.
7894
7895
7896         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7897
7898 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7899
7900         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7901
7902 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7903
7904         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7905
7906 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7907
7908         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7909         has an abort request, convert it into a suspend request.
7910
7911 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7912
7913         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7914         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7915         is not supported yet.
7916
7917 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7918
7919         * image.c: register assemblies loaded from data (bundles) in the loaded
7920         assemblies hash. Fixes bug #74772.
7921
7922 2005-04-29  Martin Baulig  <martin@ximian.com>
7923
7924         * class.c (mono_type_get_name_recurse): Update to the new naming
7925         schema from the latest .NET 2.x beta2.
7926         (mono_class_setup_vtable_general): If we're a generic instance,
7927         copy the vtable from our generic type definition and inflate all
7928         the methods in it.
7929
7930         * loader.c (find_method): Update to the new naming schema from the
7931         latest .NET 2.x beta2.
7932
7933 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7934
7935         * class.c (mono_class_init): Add a mono_loader_unlock to the
7936         #74734 fix.
7937
7938 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7939
7940         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7941         suspend_all_other_threads () call for the time being, since it can hang.
7942
7943         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7944         the background threads to exit, since it can also hang.
7945
7946         * class.c (mono_class_init): Applied patch from Ankit Jain 
7947         (radical@gmail.com). Avoid pending init errors when a field refers
7948         to a nested class using a typeref. Fixes #74734.
7949
7950         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7951         this for dynamic modules.
7952
7953 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7954
7955         * threads.c: don't wait for threads that are in the process of aborting
7956         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7957         and waiting for background threads to finish. This makes xsp and
7958         mod-mono-server exit without random length delays and/or hangs.
7959
7960 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7961
7962         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7963
7964 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7965
7966         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7967         dynamic types to prevent infinite loops. Fixes #74727.
7968
7969         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7970         ..._is_assignable_to.
7971
7972 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7973
7974         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7975
7976 2005-04-25  Martin Baulig  <martin@ximian.com>
7977
7978         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7979
7980         * domain.c
7981         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7982
7983         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7984
7985         * reflection.c (build_compressed_metadata): Set metadata header
7986         version to 2.0.
7987
7988 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7989
7990         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7991         number into an integral and a decimal part. Fixes #70473.
7992
7993         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7994
7995 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7996
7997         * culture-info-table.h : reflected the latest locale-builder output.
7998
7999 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8000
8001         * threadpool.c: check for SuspendRequested too when deciding if
8002         mono_thread_interruption_checkpoint should be called.
8003
8004 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8005
8006         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
8007         * threads.c: remove interruption_mutex and use Interlocked instead. When
8008         suspending all the threads, wait for all the suspended events at once.
8009         If we're shutting down and get an APC that is going to be queued,
8010         call mono_thread_execute_interruption immediately, as the thread might
8011         be sleeping on a pthread condition or mutex.
8012
8013         * icall.c: call mono_runtime_set_shutting_down before suspending the
8014         threads.
8015
8016         Fixes bug #74693. And now xsp is happier when exiting.
8017
8018 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
8019
8020         * loader.c (mono_stack_walk): Fix #74690.
8021
8022 2005-04-22  Martin Baulig  <martin@ximian.com>
8023
8024         * mono-debug.h (MonoDebugMethodJitInfo): Added
8025         `MonoDebugMethodJitInfo *jit'.
8026
8027         * mono-debug.c (mono_debug_read_method): Cache the
8028         MonoDebugMethodJitInfo in `address->jit'.
8029         (mono_debug_free_method_jit_info): New public method.
8030
8031 2005-04-22  Martin Baulig  <martin@ximian.com>
8032
8033         * class.c (mono_class_is_assignable_from): Disallow
8034         type parameter -> interface.
8035
8036 2005-04-21  Dick Porter  <dick@ximian.com>
8037
8038         * threads.c (mono_thread_create): Turn an assertion into an error.
8039
8040 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
8041
8042         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
8043         
8044         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
8045         Fix some gcc 4.0 warnings.
8046
8047 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
8048
8049         * file-io.c: fix alt dir separator char on unix systems
8050         and cleanup (fixes bug #71214).
8051
8052 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
8053
8054         * marshal.c: Use CALLVIRT instead of CALL when dispatching
8055         a call to a remote domain, since the method may be an
8056         interface method in the client domain. This fixes bug #74192.
8057
8058 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8059
8060         * threadpool.c: recv/send are now performed before going back to managed
8061         code to save one transition.
8062
8063 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8064
8065         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
8066
8067         * metadata/threadpool.c: removed hack to workaround the bug above.
8068
8069         Fixes bug #74618.
8070
8071 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
8072
8073         * reflection.c reflection.h: Fix handling of parameter defaults in
8074         dynamic methods. Also fixes handling of parameter attributes.
8075         Fixes #74609.
8076
8077         * mono-debug.c (mono_debug_close_image): Fix warning.
8078
8079 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8080
8081         * socket-io.h: replaced old unused field with new 'blocking'.
8082         * threadpool.c: restore socket blocking state on windows(tm).
8083
8084 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
8085
8086         * icall.c: don't return the codebase in the AssemblyName[] returned by
8087         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
8088         * object-internals.h: Removed FIXME (fields were presents) and fixed
8089         versioncompat declaration.
8090
8091 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8092
8093         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
8094         not closed, so don't cleanup when it happens.
8095
8096 2005-04-13  Chris Toshok  <toshok@ximian.com>
8097
8098         * mono-debug-debugger.h: change prototype for
8099         mono_debugger_lookup_type.
8100
8101         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
8102         this function, although it should probably be named
8103         mono_debugger_init_type.
8104
8105 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8106
8107         * threadpool.c: fix non-AIO case.
8108
8109 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8110
8111         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8112         the built-in profiler to measure just JIT compilation times.
8113
8114 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8115
8116         * threadpool.c: the epollfd might be closed by another thread at
8117         any time, so ignore EBADF at treat it as a "we're closing" sign.
8118
8119 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8120
8121         * threadpool.c: release the semaphores with a count equals to the number
8122         of working threads in both IO and regular pools. Fixed typo that messed
8123         up the count of IO pool threads. Don't initialize the pipe handles if
8124         we're using epoll.
8125
8126 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8127
8128         * threadpool.c: some systems don't like a NULL when deleting the socket
8129         from epoll.
8130
8131 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8132
8133         * threadpool.c: fix semaphore allocation.
8134
8135 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8136
8137         * threadpool.c: added epoll() based implementation for asynchronous IO
8138         that is used instead of the default poll() when available.
8139         It can be disabled by setting MONO_DISABLE_AIO.
8140
8141 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8142
8143         * threadpool.c: windows needs 'closesocket' and instead of returning
8144         0 when the stream is closed while in select, it returns -1. Fixes bug
8145         #74573.
8146
8147 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8148
8149         * class.c (class_compute_field_layout): Fix the regression caused by
8150         the previous try.
8151
8152 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8153
8154         * threadpool.c: separate pool for socket async. IO.
8155         * threadpool.h: mono_max_worker_threads is not a global any more.
8156
8157 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8158
8159         * class.c (class_compute_field_layout): Fix #74549.
8160
8161 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8162
8163         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8164         use 2 connected sockets instead.
8165
8166 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8167
8168         * mono-config.c: Add new entry point for mkbundle
8169         mono_config_parse_memory. 
8170
8171 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8172
8173         * threadpool.c: removed another unused function.
8174
8175 2005-04-08  Ankit Jain  <radical@corewars.org>
8176
8177         * reflection.c (get_default_param_value_blobs): Add 'types'
8178         parameter to get the types encoded in the constant table.
8179         (mono_param_get_objects): Use the type from the constant table,
8180         not the type of the parameter, when creating default values.
8181         Handle null default values correctly.
8182
8183 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8184
8185         * file-io.c:
8186         * file-io.h:
8187         * threadpool.c:
8188         * threadpool.h:
8189         * icall.c:
8190         * socket-io.c: removed dead code for async IO.
8191
8192 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8193
8194         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8195
8196         * threadpool.c: intercept socket async. calls and pass them to a thread
8197         that is polling and dispatching the job items to the threadpool as
8198         socket become ready. Fixes bugs #71217, #71933.
8199
8200         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8201         between char and short/ushort arrays.
8202
8203         * socket-io.c: remove dead code.
8204
8205 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8206
8207         * locales.c,
8208           icall.c : removed InternalToUpper_Comp() and
8209           InternalToLower_Comp().
8210
8211 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8212
8213         * char-conversions.h : The tables were incorrectly generated. Should
8214           be generated against invariant culture.
8215
8216 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8217
8218         * object.c (mono_runtime_invoke_array): Fix return value when 
8219         passing pre-created valuetype objects to ctors.
8220
8221         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8222         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8223         Fixes #74338.
8224
8225 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8226
8227         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8228         only used with --security and hides the wrong corlib version error.
8229
8230 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8231
8232         * class.c: Changed mono_class_name_from_token so that types
8233         outside of a namespace don't have an initial period.  Improved
8234         the g_warning message used in _mono_class_get when loading
8235         fails.
8236         * assembly.c: In mono_assembly_load_reference, when an assembly
8237         can't be found, "No such file or directory" is misleading and
8238         unhelpful because a few paths were checked for the presence of
8239         the assembly.  When that happens (ENOENT), display a nicer
8240         message indicating the directories that were searched.  In all
8241         cases, the warning is made easier to read for non-hackers.
8242
8243 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8244
8245         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8246         project/solution.
8247         * appdomain.h|domain.c: Removed inline from functions.
8248         * appdomain.c: Reduced warnings when compiling on windows.
8249         * icall.c: Fixed output_debug declaration to gunichar2*.
8250         * mono-config.c: Reduced warnings when compiling on windows.
8251         * rand.c: Added missing "windows.h". Added missing return value.
8252         * rawbuffer.c: Added missing winsock2.h for windows.
8253         * sysmath.h: Added mono-compiler.h header to allow/ease 
8254         compilation with non-GCC compilers.
8255         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8256         Removed cast warnings.
8257
8258         Adapted from the work of J Lothian (for VC6).
8259
8260 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8261
8262         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8263         from default_path.
8264
8265 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8266
8267         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8268         the 2.0 profile.
8269
8270 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8271
8272         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8273         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8274         stuff, and it would probably use $(prefix)/share rather than
8275         $(prefix)/lib.
8276
8277 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8278
8279         * console-io.c: added 2 includes that might be missing.
8280
8281 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8282
8283         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8284         profile.
8285
8286         * reflection.c (create_custom_attr): Allocate the params array using
8287         alloca so it gets GC tracking.
8288
8289 2005-03-23  Chris Toshok  <toshok@ximian.com>
8290
8291         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8292         out some spew.
8293
8294 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8295
8296         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8297         changes to pick up any changes in prefix, etc.
8298
8299 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8300
8301         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8302         
8303         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8304         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8305
8306 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8307
8308         * class-internals.h object-internals.h class.c reflection.c: Extend the
8309         mono_lookup_dynamic_token () function to return the class of the
8310         token as well. 
8311
8312         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8313         well. Fixes #73848.
8314
8315 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8316
8317         * security-manager.c: Skip inheritance checks for intra-corlib
8318         class inheritance and method overrides. This skips a lot of checks
8319         and (anyway) permissions cannot work until corlib is loaded.
8320
8321 2005-03-23  Martin Baulig  <martin@ximian.com>
8322
8323         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8324         MONO_TYPE_GENERICINST.  
8325
8326 2005-03-23  Martin Baulig  <martin@ximian.com>
8327
8328         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8329
8330 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8331
8332         * class.c: added locking comments to some functions.
8333         Cache the interface offsets arrays (saves about 20 KB
8334         of runtime memory in a typical app).
8335         Reduce the time overhead in mono_class_setup_supertypes ().
8336
8337 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8338
8339         * icall.c: speedup and fix leaks in GetMethodsByName and
8340         GetPropertiesByName.
8341
8342 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8343
8344         * reflection.c: some locking fixes.
8345
8346 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8347
8348         * metadata.c: added missing break in case statement.
8349
8350 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8351
8352         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8353         typedbyref return values. Fixes #73941.
8354
8355 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8356
8357         * security-manager.c|h: Added demandunmanaged method and 
8358         suppressunmanagedcodesecurity class to MonoSecurityManager.
8359         Renamed aptc class to allowpartiallytrustedcallers.
8360
8361 2005-03-17  Martin Baulig  <martin@ximian.com>
8362
8363         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8364
8365 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8366
8367         * file-io.c: disabled file async. IO using aio_*. It uses the
8368         threadpool now. Workaround for bug #73718.
8369
8370 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8371
8372         * assembly.h, mono-config.c: added code to deal with bundled configs
8373         for bundled assemblies.
8374
8375 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8376
8377         * *.c, private.h: cleanup, removing old private.h header file.
8378
8379 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8380
8381         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8382         and throw_on_unmappable_char attributes.
8383
8384 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8385
8386         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8387         _ProcessName_internal.
8388
8389 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8390
8391         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8392         #73631.
8393
8394         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8395         are no longer used.
8396
8397 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8398
8399         * object.c (compute_class_bitmap): Add support for generics. Fixes
8400         #73527.
8401
8402 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8403
8404         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8405
8406 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8407
8408         * filewatcher.c: commented out the code for windows watcher, as we don't
8409         use it (we use the managed implementation instead).
8410
8411 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8412
8413         * object-internals.h (MonoThread): Remove 'unused1' field.
8414
8415         * appdomain.c: Bump corlib version.
8416
8417         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8418
8419         * reflection.c (mono_reflection_create_runtime_class): Remove the
8420         AssemblyBuilder.Save optimization since it causes too many problems.
8421
8422 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8423
8424         * exception.c|h: Added mono_get_exception_reflection_type_load to
8425         create a ReflectionTypeLoadException object.
8426         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8427         to return NULL is a InheritanceDemand fails during reflection. Updated
8428         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8429         ReflectionTypeLoadException if an InheritanceDemand fails during 
8430         reflection. Added icall mapping for GetLinkDemandSecurity.
8431         * security-manager.c|h: Added ves_icall_System_Security_
8432         SecurityManager_GetLinkDemandSecurity internal call to return the
8433         class and methods permissions set for a LinkDemand. Removed unused
8434         fields in MonoSecurityManager.
8435
8436 2005-03-10  Martin Baulig  <martin@ximian.com>
8437
8438         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8439         it's a generic instance.
8440
8441 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8442
8443         * reflection.c (mono_get_object_from_blob): Applied patch from
8444         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8445
8446         * class.c (mono_class_is_assignable_from): Another try at fixing 
8447         #73469 without breaking anything.
8448
8449 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8450
8451         * class.c: (mono_class_is_assignable_from): Revert the last changes
8452         since they don't work with generics.
8453         
8454         * class.c (mono_class_is_assignable_from): Fix build bustage.
8455
8456         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8457         the managed IsAssignableFrom method. Fixes #73469.
8458
8459         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8460         function.
8461
8462 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8463
8464         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8465         memory when the remoting callback does not sets the out arguments.
8466         Fixes #73007.
8467
8468         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8469         by mistake.
8470
8471         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8472
8473         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8474
8475         * appdomain.c: Bump corlib version.
8476
8477 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8478
8479         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8480         function.
8481
8482         * threads.c (mono_thread_attach): Detect threads which are not started
8483         by the GC pthread wrappers.
8484
8485 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8486
8487         * icall.c: Added new icall for RNG.
8488         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8489         single handle on Linux to access /dev/urandom and fix #73183.
8490
8491 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8492
8493         * object.c: setting the new vtable in a transparent proxy object must
8494         not change the GC descriptor.
8495
8496 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8497
8498         * object.c: fixed compilation without GCJ support.
8499         * reflection.c: for runtime-created types ensure klass->has_references
8500         is correct (bug #73215).
8501
8502 2005-03-02  Martin Baulig  <martin@ximian.com>
8503
8504         * class.c (mono_class_is_assignable_from): Make this work if
8505         `oklass' is a generic instance; fixes #72831.
8506
8507 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8508
8509         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8510         with hasthis set.
8511         
8512         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8513
8514         * marshal.c: Reorganize native->managed marshalling code to also use
8515         the emit_marshal_... functions.
8516
8517 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8518
8519         * object.c: typed allocs have issues with bitmap sizes > 30,
8520         so check for max_set >= 30.
8521
8522 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8523
8524         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8525         managed code. Fixes #73012.
8526
8527         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8528
8529         * metadata.c reflection.c: Load/Emit elem_mult as well.
8530         
8531         * metadata.h (MonoMarshalSpec): Add comment.
8532
8533         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8534
8535         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8536         num_elem to -1 if not given.
8537
8538         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8539
8540         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8541         given values.
8542
8543 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8544
8545         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8546
8547 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8548
8549         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8550
8551         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8552
8553 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8554
8555         * object.c: generalized the reference bitmap creation
8556         and added hooks for the new GC.
8557         * class-internals.c: removed the gc_bitmap field from MonoClass.
8558
8559 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8560
8561         * domain.c: help the compiler to produce better code
8562         in mono_jit_info_table_find ().
8563
8564 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8565
8566         * object.c: make all allocations look typed.
8567
8568 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8569
8570         * socket-io.c: load Mono.Posix if it's not loaded already
8571         (fixes bug#73033).
8572
8573 2005-02-24  Martin Baulig  <martin@ximian.com>
8574
8575         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8576         * reflection.c (dup_type): Likewise.
8577
8578 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8579
8580         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8581         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8582
8583 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8584
8585         * domain.c, threads.c, object-internals.h: make the critical thread
8586         local vars use the fast access mode (even when we're compiled in
8587         a lib). Provide accessors to be used by the jit during codegen.
8588
8589 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8590
8591         * appdomain.c: Changed hook functios behavior to include
8592         support for the reflection only assemblies. Some icalls were changed
8593         to support the mentioned assemblies too. Signatures of static methods
8594         try_assembly_resolve and real_load now have an additional parameter:
8595         refonly.
8596
8597         * assembly.c: General changes to mono_assembly_ methods to support
8598         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8599         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8600         suffix, to support an additional gbool parameter to specify whether
8601         the assembli is reflection only or not. Created some new hook functions 
8602         to add support for reflection only assemblies. Signatures of static 
8603         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8604         have now an additional parameter: refonly.
8605
8606         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8607         indicating whether the assembly is reflection only or not.
8608
8609         * exception.c: Add mono_get_exception_invalid_operation.
8610
8611         * icall.c: Throw an InvalidOperationException when trying to invoke
8612         a property/method/event, or trying to set/get the value of a field.
8613         Also add an icall to retrieve the ref_only flag to the
8614         MonoReflectionAssembly.
8615
8616 2005-02-23  Chris Toshok  <toshok@ximian.com>
8617
8618         Part of fix for #72827.
8619         * mono-debug.c (mono_debug_add_method): add lexical block data to
8620         the info we write.  Kind of a hack at the moment - we copy the
8621         lexical block info from the MonoDebugMethodInfo to the
8622         MonoDebugMethodJitInfo here, before writing it.
8623         (mono_debug_read_method): read the lexical block info.
8624
8625         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8626
8627         * debug-mono-symfile.h: add lexical block support.
8628
8629         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8630         support.
8631
8632 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8633
8634         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8635
8636         * object.c (mono_runtime_free_method): Call mono_free_method () and
8637         put the TODOs there.
8638
8639         * loader.c (mono_free_method): Free up most memory allocated for 
8640         dynamic methods.
8641
8642 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8643
8644         * reflection.c: properly flag a Type argument to a
8645         named custom attr value (bug #72248).
8646
8647 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8648
8649         * reflection.c: reduce code duplication in named custom
8650         attribute encoding.
8651
8652 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8653
8654         * reflection.c: properly encode custom attrs of type object
8655         (bug #72649).
8656
8657 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8658
8659         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8660
8661 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8662
8663         * socket-io.c: load System.dll if it's not loaded already
8664         (bug #72850 and #70477).
8665
8666 2005-02-21  Martin Baulig  <martin@ximian.com>
8667
8668         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8669         generic instances.
8670
8671 2005-02-21  Martin Baulig  <martin@ximian.com>
8672
8673         * reflection.c (mono_image_build_metadata): We also need to
8674         "fixup" the MethodImpl table after we computed the final method
8675         indices.  Call fixup_methodimpl() to do that.
8676         (fixup_methodimpl): New private method.
8677
8678 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8679
8680         * assembly.c: special case mscorlib.dll (bug#72536),
8681         patch from Carlos Alberto Cortez.
8682
8683 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8684
8685         * threads-types.h threads.c: Fix build bustage.
8686
8687         * threads.c: Use a union for long<->double conversions.
8688
8689         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8690         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8691
8692         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8693         containing the checkpoint call with NOT_TAKEN.
8694         
8695         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8696         checkpoint before pushing the arguments, so they won't have to be
8697         spilled to stack.
8698
8699 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8700
8701         * domain.c, assembly.c, domain-internals.h: make some data
8702         const and relocation-free.
8703
8704 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8705
8706         * object.c, appdomain.c, class-internals.h: introduce the
8707         MonoClassRuntimeInfo structure to hold the info needed to
8708         use a class at runtime. Made mono_class_vtable() lock-free
8709         for all the appdomains.
8710
8711 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8712
8713         * metadata-internals.h, image.c: introduce a per-image mempool to
8714         be used for memory that has the same lifetime as the image.
8715
8716 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8717
8718         * domain.c: In mono_init_internal(), instead of selecting the first
8719         runtime version supported by an executable, get a list of all
8720         supported versions and select the one for which an mscorlib exists
8721         (since even if the runtime supports a given version, it doesn't mean
8722         that the framework for that version is installed).
8723         Modified get_runtimes_from_exe to support this behavior.
8724         In supported_runtimes, added information about additional system
8725         assembly versions.
8726         
8727         * assembly.c: Added support for more than one system assembly version
8728         per runtime version. Updated the assembly list.
8729         In mono_assembly_remap_version, removed the initial version check,
8730         since we don't know to which version we need to compare until we
8731         get the version set on which the assembly is based.
8732         Moved the code for loading corlib into the new method
8733         mono_assembly_load_corlib(), so it can be used by the initialization
8734         code.
8735         
8736         * domain-internals.h: Updated data structures and added declaration
8737         for mono_assembly_load_corlib.
8738
8739 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8740
8741         * reflection.c (resolve_object): Fix the creation of the signature in 
8742         the SignatureHelper case.
8743
8744         * assembly.c (mono_assembly_remap_version): Fix binary search.
8745         
8746 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8747  
8748         * class.c: Added inheritance check when a method is overloaded (from a
8749         virtual method or when implementing an interface) and when a class is
8750         inherited. Added functions to set a failure for a class and to 
8751         retreive the exception from a failure.
8752         * class-internals.h: Added fields to MonoClass to keep the exception
8753         information status for inheritance (or other exceptions) to be thrown
8754         later (i.e. not at load time).
8755         * object.c: Throw the inheritance SecurityException when a type is to 
8756         be created with either class or method inheritance violations.
8757         * reflection.c|h: Fix when getting declsec from a class. Removed 
8758         unrequired code for class. Improved sanity in parameter naming.
8759         * security-manager.c|h: Added functions to check for class and method
8760         inheritance.
8761
8762 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8763
8764         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8765         and has_finalize in dynamic types as well.
8766
8767 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8768
8769         * culture-info-table.h : fixed currency format for en-GB (and so on).
8770
8771 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8772
8773         * gc.c: ensure the GC handles never have 0 as a value.
8774
8775 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8776
8777         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8778         a pointer to a struct to unmanaged code. Fixes #72625.
8779
8780 2005-02-16  Martin Baulig  <martin@ximian.com>
8781
8782         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8783
8784 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8785
8786         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8787
8788 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8789
8790         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8791
8792         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8793         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8794         etc. Fixes #71471.
8795
8796         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8797
8798         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8799
8800 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8801
8802         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8803         changes to make the current context a field in MonoThread.
8804
8805 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8806
8807         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8808         the last change.
8809         
8810         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8811         extracted from mono_marshal_get_native_wrapper.
8812
8813         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8814         to create wrappers around native functions.
8815
8816         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8817         delegates for arbitrary function pointers. Fixes #71472.
8818
8819 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8820
8821         * threads.c: cleaned up the code a little.
8822
8823 2005-02-15  Martin Baulig  <martin@ximian.com>
8824
8825         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
8826         the data table.
8827
8828         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
8829         allocate larger chunks if needed.
8830
8831 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8832
8833         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8834         in by mistake.
8835
8836 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8837
8838         * domain.c: keep the domains in an array and ensure the domain ids
8839         are kept small, so they can be used as indexes to domain-specific data
8840         with a small memory overhead.
8841
8842 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8843
8844         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8845
8846 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8847
8848         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8849
8850 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8851
8852         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8853
8854         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8855         values.
8856
8857         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8858         
8859 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8860
8861         * domain-internals.h: add the hashtable here.
8862
8863         * class-internals.h: Remove `info' from MonoMethod
8864
8865         * domain.c: Add a new hashtable, jit_trampoline_hash
8866
8867 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8868
8869         * object.c: don't set the value of static fields
8870         (fixes bug#72494).
8871
8872 2005-02-11  Martin Baulig  <martin@ximian.com>
8873
8874         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8875         (mono_debug_add_method): Silently ignore the method if it's too big.
8876         (mono_debug_add_type): Likewise.
8877
8878 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8879
8880         * threads.c, appdomain.c: remove #ifdefs from the code.
8881
8882 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8883
8884         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8885         common security informations. This allows us to stay in unmanaged code
8886         when doing LinkDemand and it's special cases (except for the first 
8887         time for initialization). The flags a very much used with --security.
8888         * reflection.c|h: Added code to get declarative security attributes 
8889         for LinkDemand and InheritanceDemand. This required to refactor the
8890         existing code for Demand.
8891         * security-manager.c|h: Added new method fields for the special cases
8892         of LinkDemand.
8893
8894 2005-02-10  Martin Baulig  <martin@ximian.com>
8895
8896         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8897         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8898
8899 2005-02-10  Martin Baulig  <martin@ximian.com>
8900
8901         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8902         debugging code; this is almost a complete rewrite.
8903
8904         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8905
8906 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8907
8908         * domain.c, object.h: expose mono_string_equal () and 
8909         mono_string_hash ().
8910         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8911         it's implemented in managed code.
8912
8913 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8914
8915         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8916         lo leak objects between appdomains.
8917
8918 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8919
8920         * assembly.c: old compilers compilation fix from 
8921         robertj@gmx.net (Robert Jordan).
8922
8923 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8924
8925         * class-internals.h: Little reminder for the future.
8926
8927         * debug-helpers.c: Fix up wrapper_type_names
8928
8929 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8930
8931         * image.c, metadata-internals.h: when loading an image from a file,
8932         mmap all of it and use the same codepaths as when using a
8933         in-memory image: the code is simpler and we use less memory
8934         (both writable and readonly).
8935
8936 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8937
8938         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8939         API to alloc runtime data structures that need to be tracked by the
8940         GC and contain pointers.
8941         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8942         make the code more readable and eventually use a different GC.
8943
8944 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8945
8946         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8947         for out arguments.
8948         
8949 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8950
8951         * object.c: In release_type_locks(), don't release the cctor lock
8952         if it has already been released. This fixes a crash in the
8953         thread5 test.
8954
8955 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8956
8957         * gc.c, marshal.c, icall.c: register a delegate for finalization
8958         only when the native function pointer has been allocated for it.
8959
8960 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8961
8962         * object.c: cleaned up some code, allocate objects that are
8963         pointer free with the atomic malloc variant. Allocate memory
8964         for static data from the mempool if it's pointer-free.
8965         Allocate the bounds array at the end of the array data, when needed.
8966         * object-internals.h, object.h: move a private function in a private
8967         header.
8968         * class.c: handle missing case in tracking references in fields.
8969
8970 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8971
8972         * class.c, class-internals.h: keep track if a type has
8973         reference fields in either the instance or static fields.
8974
8975 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8976
8977         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8978         and renamed to MonoRuntimeInfo. Added fields to store the expected
8979         framework assembly version. Changed mono_get_framework_version and
8980         mono_get_runtime_version for a single mono_get_runtime_info method.
8981         
8982         * assembly.c: Added method to remap system assembly versions to the
8983         current executing runtime version. Removed old mapping code.
8984         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8985         
8986         * icall.c, reflection.c: Track api changes.
8987
8988 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8989
8990         * loader.c (method_from_memberref): Improve error reporting,
8991         produce the class name instead of the typeref/typedef index. 
8992
8993 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8994
8995         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8996
8997 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8998
8999         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
9000         stdcall and charset name mangling.  Reorganize the code and add
9001         some tracing stuff.
9002
9003 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9004
9005         * monodiet.c: More iters!
9006
9007         * marshal.c: Iter usage.
9008
9009         * icall.c: Iter usage.
9010
9011         * object.c: Use iters.
9012
9013         * debug-helpers.c: More iters
9014
9015 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9016
9017         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
9018         under win32.
9019
9020 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9021
9022         * mono-debug-debugger.c: use iters
9023
9024         * class.c, class-internals.h: mono_class_setup_events is static
9025         now
9026
9027         * All callers: use iters
9028
9029 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9030
9031         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
9032         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
9033
9034 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9035
9036         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
9037
9038         * marshal.h: Add prototypes for ldfld/stfld_remote.
9039
9040         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
9041         this is called during startup.
9042         
9043 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
9044
9045         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
9046         MonoThreadsSync struct private in monitor.c. Changed the way
9047         MonoThreadsSync is allocated so it's faster and there is no
9048         need to keep track of it with a finalizer and it uses less memory.
9049         This also finally allows us to allocate mono objects as ptrfree when
9050         there are no reference fields.
9051
9052 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
9053
9054         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
9055         disappearing link to the GC interface and use them to simplify
9056         the gchandles code.
9057
9058 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9059
9060         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
9061         stfld_remote which call mono_load/store_field_new. This allows methods
9062         calling ldfld/stfld wrappers to be AOTed.
9063
9064         * console-io.c: Include sys/filio.h under solaris.
9065         
9066         * console-io.c: Include curses.h if needed correctly.
9067
9068 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9069         
9070         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
9071         method->klass as well.
9072
9073         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
9074
9075         * class.c (mono_class_init): Switch on lazy initialization of 
9076         methods.
9077
9078         * class.c (mono_class_get_finalizer): Handle the case when the 
9079         finalizer is inherited.
9080
9081 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9082
9083         * console-io.c: <curses.h> is needed by term.h on solaris.
9084
9085 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
9086
9087         * icall.c, class-internals.h, monodiet.c, class.c: Remove
9088         mono_class_setup_properties where possible. Remove this ftn from
9089         the header file, and make it static.
9090
9091 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9092
9093         * loader.c: Add missing setup_... call.
9094
9095         * class.c: Add missing setup_... calls.
9096
9097         * class.c (mono_class_init): Switch on lazy initialization of 
9098         the generic vtable.
9099         
9100         * class.c (mono_class_init): Fix generics broken by the recent changes.
9101
9102         * monodiet.c (handle_type): Add missing setup_... calls.
9103
9104         * class.c: Back out garbage in previous patch.
9105         
9106         * class.c: Add missing setup_... calls.
9107
9108         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9109         mono_class_setup_methods () if possible.
9110
9111         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9112
9113         * class-internals.h (MonoCachedClassInfo): New structure.
9114
9115         * class.c: Initialize properties and events fields of MonoClass lazily.
9116
9117         * class.c: Add infrastructure for lazily initializing the methods and
9118         vtable fields of MonoClass. Not yet used.
9119
9120         * class.c (mono_class_get_finalizer): New helper function.
9121
9122         * class.c: Add infrastructure for loading some class related data from
9123         an AOT file.
9124
9125         * object.c: Add infrastructure for initializing the vtable from data
9126         in the AOT file.
9127
9128         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9129
9130         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9131         appropriate initialization function before accessing parts of the
9132         MonoClass structure.
9133
9134         * marshal.c: Fix warnings.
9135         
9136         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9137
9138         * mono-debug-debugger.c (get_exception_message): Use 
9139         mono_class_get_method_from_name_flags ().
9140
9141 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9142
9143         * reflection.c, appdomain.c: Replace a few manual searches that
9144         Zoltan missed. (Paolo approved this part of my initial patch).
9145
9146 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9147
9148         * profiler.c: disable recording statistical events at report time.
9149
9150 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9151
9152         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9153         to byteswap arrays of enum values, too (bug #72080).
9154
9155 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9156
9157         * appdomain.c (set_domain_search_path): Allow this to be called if
9158         domain->setup is not yet set.
9159
9160         * loader.c (mono_method_get_index): New helper function.
9161
9162         * loader.c reflection.c: Use mono_method_get_index ().
9163
9164         * class.c (mono_class_get_method_from_name_flags): New helper method.
9165
9166         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9167         this.
9168
9169         * class.c (mono_class_get_cctor): New helper method.
9170
9171         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9172         mono_class_get_method () to look up methods.
9173
9174 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9175
9176         * console-io.c: Fix the build, this should work on Windows.
9177
9178 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9179
9180         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9181         be set to null to keep things valid
9182
9183 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9184
9185         * icall.c: added Console 2.0 icalls.
9186         * Makefile.am: added console-io.[ch]
9187         * console-io.[ch]: internal calls for Console 2.0 API.
9188
9189 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9190
9191         * class.c: make sure we consider all the interfaces
9192         when calculating max_interface_id (bug found by
9193         Jeroen Frijters running ikvm).
9194
9195 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9196
9197         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9198         valuetype fields to null.
9199
9200         * object.c (set_value): Ditto. Fixes #71669.    
9201
9202 2005-01-31  Martin Baulig  <martin@ximian.com>
9203
9204         * metadata.c (mono_metadata_has_generic_params): New public
9205         function; checks whether something is a generic method.
9206
9207 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9208
9209         * appdomain.c: fix infinite recursion when adding assemblies.
9210
9211 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9212
9213         * object.c: Fix small typo to return all items for Environment.
9214         GetCommandLineArgs.
9215
9216 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9217
9218         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9219         reflection.c: more domain and assembly-unload related fixes
9220         and memory leaks plugs.
9221
9222 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9223
9224         * 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.
9225
9226 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9227
9228         * loader.c (mono_method_signature): Make this method lazy
9229         (mono_get_method_from_token): Don't computate the signature here.
9230
9231         Doing this saves quite a bit of memory. I got 90 kb on starting up
9232         monodoc. It should also save some disk reads on startup.
9233
9234         * *: MonoMethod->signature might be NULL now. You *MUST* use
9235         mono_method_signature.
9236
9237 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9238
9239         * object.c (mono_runtime_get_main_args): Return an array from the
9240         current domain here. Fixes #71938.
9241
9242 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9243
9244         * monitor.c: formatting changes to comply with the
9245         mono coding style and remove #ifdefs from the code.
9246
9247 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9248
9249         * metadata.c, private.h: remove some unneeded data
9250         and use a more compact representation for table schemas.
9251
9252 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9253
9254         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9255         to get a better distribution in hash tables.
9256         * *.c: use mono_aligned_addr_hash() where appropriate.
9257         * assembly.c: make var static.
9258
9259 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9260
9261         * domain-internals.h: Put MonoJitInfo on a diet.
9262
9263         * domain.c: Fix a warning.
9264
9265 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9266
9267         * gc.c: rework the gc handles code to reuse handles
9268         when freed.
9269
9270 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9271
9272         * domain.c: fixed long standing bug in mono_string_equal() which
9273         was brought to light with the ldstr changes.
9274
9275 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9276
9277         * reflection.c: Remove warning by adding missing include for marshal.h
9278
9279 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9280
9281         * domain.c, object.c: change the ldstr_table to hold
9282         MonoString* as keys: makes the runtime isinterned lookup
9283         faster and simplifies memory management.
9284
9285 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9286  
9287         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9288         possible to add imperative security checks before calling the icall.
9289         * reflection.c: Return security attributes on the original MonoMethod
9290         (and not the wrapped one). This fix permissions on icalls.
9291
9292 2005-01-25  Dick Porter  <dick@ximian.com>
9293
9294         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9295         the check for mktime() support actually test the mktime() return
9296         value.  "Fixes" bug 71682, though the output is still different to
9297         MS.
9298
9299 2005-01-25  Martin Baulig  <martin@ximian.com>
9300
9301         * class.c (mono_class_is_assignable_from): Make this work for
9302         generic instances.
9303
9304 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9305
9306         * marshal.c (mono_string_utf8_to_builder)
9307         (mono_string_builder_to_utf16): We might not have ownership of the
9308         string. In thise case, we need to create a new buffer.
9309
9310         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9311         be null, in which case, use the default capacity.
9312
9313 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9314
9315         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9316         GC events to the profiler.
9317
9318 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9319
9320         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9321         if you don't want the GC to run.
9322
9323 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9324
9325         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9326         start providing a GC API and keeping different implementations in
9327         their own file.
9328         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9329
9330 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9331
9332         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9333         mmap rather than allocating a huge buffer.
9334         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9335         above.
9336
9337 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9338
9339         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9340         and CheckExecutionRights.
9341         * reflection.c|h: Keep the index of the declarative security to be 
9342         used, instead of the pointer, when AOT compiler is used. Also add 
9343         class initialization when requesting demands.
9344         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9345         CheckExecutionRights. Both properties are now FALSE by default, and
9346         unmodifiable, unless the --security option is used.
9347
9348 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9349
9350         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9351         reflection.c: properly refcount images and assemblies, many leaks fixed.
9352
9353 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9354
9355         * threadpool.c: increase the timeout for threads in the thread pool to
9356         10s.  Fixes bug #67159.
9357
9358 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9359
9360         * class-internals.h: Sun's compiler insists on explicit
9361         signed on bit fields to handle then correctly.
9362
9363 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9364
9365         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9366         Make the size of the array fit only the number of invalid path
9367         chars that we have.
9368
9369         * class.c (_mono_class_get): Improve the error reporting when a
9370         class referenced is not found, to assist debugging. 
9371
9372 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9373
9374         * threads.c: fix off-by-one error.
9375         * domain.c: free data allocated in the domain.
9376
9377 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9378
9379         * reflection.c (mono_method_body_get_object): Fill out exception info
9380         as well.
9381
9382         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9383         structure.
9384         
9385 2005-01-19  Martin Baulig  <martin@ximian.com>
9386
9387         * loader.c (mono_get_method_constrained): Make this work again.
9388
9389 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9390
9391         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9392         guint16 to match the managed side.
9393
9394         * reflection.c (mono_reflection_body_get_object): Fill out local
9395         variables array.
9396
9397         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9398         as well.
9399
9400         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9401         'local_var_sig_token'.
9402
9403 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9404
9405         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9406         System.Drawing.
9407
9408         * reflection.c (mono_method_body_get_object): Handle abstract and
9409         runtime methods.
9410
9411 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9412
9413         * marshal.c, loader.c, class-internals.h, reflection.c:
9414         store the emthod data for a wrapper in an array instead of a list.
9415
9416 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9417
9418         * marshal.c: change the code to allocate memory more
9419         conservatively for method wrappers.
9420
9421 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9422
9423         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9424         fields from MonoClass to the marshal info structure where they belong.
9425
9426 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9427
9428         * class.c, object.c, class-internals.h, marshal.c: rearrange
9429         some fields and tweak some types to lower memory usage.
9430
9431 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9432
9433         * threads.c (signal_thread_state_change): Handle the case when the
9434         target thread is the current thread.
9435
9436         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9437
9438         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9439         emit_ptr_to_object_conv. 
9440
9441         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9442         marshalling. Fixes #71352.
9443
9444 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9445
9446         * metadata.h, blob.h: move table enum to blob.h so it can be included
9447         in any header.
9448         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9449         cut the size of MonoImage/MonoDynamicImage.
9450
9451 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9452
9453         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9454
9455 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9456
9457         * reflection.c, reflection.h, icall.c: add a function to check
9458         if an attribute type is defined for a metadata object.
9459
9460 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9461
9462         * object-internals.h: Added some needed fields from StringBuilder class.
9463         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9464
9465 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9466
9467         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9468         threads before shutting down the runtime.
9469
9470         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9471
9472 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9473
9474         * object-internal.h, threads.c: implement stacksize and 
9475         parameterized thread start functionality (requires
9476         matching corlib). Marked broken code for later removal.
9477
9478 2005-01-12  Martin Baulig  <martin@ximian.com>
9479
9480         * class-internals.h (MonoGenericClass): Moved the `initialized'
9481         flag to MonoDynamicGenericClass, removed `init_pending'.
9482         (MonoGenericInst): Added `is_reference' flag.
9483
9484 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9485
9486         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9487         inside the MSDOS header. Fixes #71201.
9488
9489         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9490         gc thread.
9491         (mono_domain_finalize): Ditto.
9492
9493 2005-01-12  Martin Baulig  <martin@ximian.com>
9494
9495         * class.c (mono_get_shared_generic_class): Use the cache for
9496         non-dynamic generic classes.
9497
9498         * class-internals.h (mono_class_create_generic_2): Removed
9499         function prototype, this function is now static inside class.c.
9500
9501         * class.c (mono_class_create_generic_2): Made this static, only
9502         call it from mono_class_init() and mono_class_setup_parent().
9503         (collect_implemented_interfaces_aux): Call mono_class_init() on
9504         the interfaces we collect.
9505         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9506
9507 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9508
9509         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9510         it a real thread handle.
9511
9512         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9513         MonoJitExceptionInfo, since each catch clause needs its own variable.
9514         
9515 2005-01-11  Dick Porter  <dick@ximian.com>
9516
9517         * image.c (mono_pe_file_open): New variant on mono_image_open()
9518         that does not set up the CLI metadata; used for FileVersionInfo so
9519         it can get the data for windows binaries too.
9520         
9521         * process.c (process_read_string_block): Don't read off the end of
9522         the StringTable block.
9523
9524         These both fix bug 70766.
9525
9526 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9527
9528         * gc.c: set some fields to NULL at GC cleanup time.
9529         * threads.c: if we quit the main thread, call exit ().
9530
9531 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9532
9533         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9534
9535 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9536
9537         * threads.h, threads.c, object.c: added accessor and settor for
9538         main_thread. Handle it specially when exiting from it: wait
9539         for other foreground threads to exit.
9540
9541 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9542
9543         * process.c, verify.c: remove some bloat.
9544
9545 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9546
9547         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9548         the calling convention to cdecl under win32.
9549
9550 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9551
9552         * object.c (mono_object_get_size): New function to get the size of
9553         an object instance.
9554
9555         * profiler.c (simple_allocation): Use above.
9556
9557 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9558
9559         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9560         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9561         get an appdomain by it's id and we can't assume the root's id is 0).
9562         * domain-internals.h: Change the function prototype to match.
9563         * icall.c: Change the icall table for AppDomain.
9564
9565 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9566
9567         * locales.c (string_invariant_compare_char): Only compute
9568         GUnicodeTypes in the case where we need them.  Test for ordinality
9569         first and return if so.
9570
9571         From the commit:
9572
9573                 /*
9574                  * FIXME: here we must use the information from c1type and c2type
9575                  * to find out the proper collation, even on the InvariantCulture, the
9576                  * sorting is not done by computing the unicode values, but their
9577                  * actual sort order.
9578                  */
9579
9580 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9581
9582         * loader.c: for P/Invoke methods, allow the "Internal" shared
9583         library name to refer to the calling process symbol namespace.
9584
9585 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9586
9587         * Makefile.am: Add the security manager to the build.
9588         * security-manager.c|h: New. Initialization of the security manager.
9589
9590 2005-01-07  Dick Porter  <dick@ximian.com>
9591
9592         * threads.c: 
9593         * monitor.c: Update thread state during Monitor and WaitHandle
9594         waits.  Fixes bug 71031.
9595
9596 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9597
9598         * reflection.c (property_encode_signature): Correctly handle when the
9599         property has no methods.
9600
9601 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9602
9603         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9604         
9605         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9606         fields from mb, not rmb. Fixes #71017.
9607
9608         * marshal.c (emit_ptr_to_str_conv): Add support for 
9609         ByValTStr -> string conversion. Fixes #71015.
9610
9611         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9612
9613         * mempool.c (mono_mempool_contains_addr): New helper function.
9614
9615 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9616
9617         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9618         HasSematics encoded fields.
9619         
9620         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9621         invalid string marshalling.
9622
9623         * metadata.c: Fix warnings.
9624         
9625 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9626
9627         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9628         profiler support.
9629
9630 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9631
9632         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9633         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9634         tests.
9635
9636 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9637
9638         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9639         so methods containing these can be AOTed.
9640
9641 2005-01-03  Martin Baulig  <martin@ximian.com>
9642
9643         * loader.c (find_method): Removed the hack for generic instances.
9644         (method_from_memberref): If our parent is a generic instance, pass
9645         its generic type definition to find_method() and then inflate the
9646         method.
9647         (mono_get_method_constrained): Pass the generic type definition to
9648         find_method() and inflate the method later.
9649
9650         * class-internals.h (MonoStats): Added `generic_class_count'.
9651
9652         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9653         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9654
9655         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9656         generic type definitions.
9657
9658 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9659
9660         * loader.c icall.c: Fix warnings.
9661
9662 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9663
9664         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9665         blittable types. Fixes #70864.
9666
9667 2004-12-29  Martin Baulig  <martin@ximian.com>
9668
9669         * icall.c
9670         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9671
9672         * reflection.c (mono_method_get_object): Create a
9673         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9674         call mono_get_inflated_method().
9675
9676         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9677
9678 2004-12-27  Martin Baulig  <martin@ximian.com>
9679
9680         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9681         (MonoMethodInflated): Added `inflated' field.
9682
9683         * class.c (mono_class_inflate_generic_method): Don't really
9684         inflate the method here; just set the `is_inflated' flag in the
9685         MonoMethod.
9686         (mono_class_get_inflated_method): Actually inflate the method here
9687         if it's not already inflated; we use the MonoMethodInflated's new
9688         `inflated' field as a cache.
9689
9690 2004-12-26  Martin Baulig  <martin@ximian.com>
9691
9692         * class.c
9693         (inflate_generic_class): Moved some code out of inflate_generic_type().
9694         (mono_class_inflate_generic_method): If we're already inflated,
9695         inflate the context and use the declaring method; ie. make sure
9696         the declaring method of an inflated method is always the generic
9697         method definition.
9698         (mono_class_create_from_typedef): Create
9699         `class->generic_container->context->gclass'.
9700
9701 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9702
9703         * metadata-internals.h, marshal.c, reflection.c: More
9704         MonoGHashTable->GHashTable.
9705
9706         * domain-internals.h, class.c: Change MonoGHashTable's into
9707         GHashTables for some cases where no gc stuff is used
9708
9709         All users: update apis
9710
9711 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9712
9713         * metadata.c (builtin_types): Make this `const'. Makes this get
9714         put into the shareable section.
9715         (mono_metadata_init): Casts to make gcc happy.
9716
9717 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9718
9719         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9720
9721 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9722
9723         * icall.c: Added an internal call to retrieve the position and length
9724         of assembly-level declarative security attributes (RequestMinimum, 
9725         RequestOptional and RequestRefuse). This is used by the Assembly class
9726         to re-create the corresponding permission sets.
9727
9728 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9729
9730         * marshal.c: fix the stelemref wrapper to be type correct
9731         (and faster).
9732
9733 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9734
9735         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9736         to do key & 0x7fffffff. Hashtable already does this. It just
9737         results in longer code.
9738
9739 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9740
9741         * appdomain.c: Bump corlib version.
9742         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9743         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9744         * reflection.c|h: Add functions to get declarative security infos
9745         (blob position and length) for assemblies, classes and methods.
9746
9747 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9748
9749         * reflection.c: sort the constant table (bug #70693).
9750
9751 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9752
9753         * object-internals.h, threads.c, domain.c: add accessors for
9754         the MonoThread and MonoDomain tls keys.
9755
9756 2004-12-18  Martin Baulig  <martin@ximian.com>
9757
9758         * class.c (inflate_generic_type): If we're inflating a generic
9759         instance, set `ngclass->context->container = context->container';
9760         ie. the container we inflated into.
9761
9762         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9763         inflate_generic_type() changes.
9764
9765 2004-12-17  Martin Baulig  <martin@ximian.com>
9766
9767         * class-internals.h
9768         (MonoGenericClass): Replaced `MonoType *generic_type' with
9769         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9770         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9771         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9772
9773 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9774
9775         * exception.c (mono_exception_from_token): New helper function.
9776
9777 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9778
9779         * assembly.c (mono_assembly_load_with_partial_name): Call 
9780         mono_assembly_loaded before invoking the preload hooks. Fixes
9781         #70564.
9782
9783         * object-internals.h (MonoThread): Change culture_info and 
9784         ui_culture_info into an array.
9785
9786         * threads.c: Cache culture info objects from more than one appdomain.
9787
9788         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9789         current UI culture.
9790
9791 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9792
9793         * threads.h threads.c appdomain.c: Clear the culture_info field of
9794         all threads during unloading if they point to an object in the dying
9795         appdomain.
9796
9797 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9798
9799         * culture-info.h (TextInfoEntry): New struct
9800         * object-internals.h: sync with managed
9801         * locales.c: fill the `text_info_data' field
9802         * culture-info-tables.h: update
9803
9804 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9805
9806         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9807         collector.
9808
9809 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9810
9811         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9812         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9813
9814 2004-12-12  Martin Baulig  <martin@ximian.com>
9815
9816         * mono-debug-debugger.c (write_type): If we're an enum and the
9817         builtin types have already been initialized, call mono_class_init().
9818
9819 2004-12-11  Martin Baulig  <martin@ximian.com>
9820
9821         * metadata.c (mono_metadata_load_generic_params): Added
9822         `MonoGenericContainer *parent_container' argument; automatically
9823         compute `container->is_method'; pass the correct owner to
9824         get_constraints().      
9825
9826         * reflection.c (compare_genericparam): Sort the GenericParam table
9827         according to increasing owners. 
9828
9829 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
9830
9831         * profiler.c: allow disabling the default profiler.
9832
9833 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9834
9835         * decimal.c, icall.c: allow disabling System.Decimal support.
9836
9837 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9838
9839         * reflection.c: Add support for null attribute arguments.
9840
9841 2004-12-09  Martin Baulig  <martin@ximian.com>
9842
9843         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9844         names to get rid of compiler warnings.
9845
9846 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9847
9848         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9849         mono_marshal_load_type_info (). Fixes #69625.
9850         (mono_marshal_get_ptr_to_struct): Likewise.
9851
9852 2004-12-08  Martin Baulig  <martin@ximian.com>
9853
9854         * mono-debug.h: Bumped version number to 47.
9855
9856         * mono-debug-debugger.c
9857         (mono_debugger_event_handler, mono_debugger_event): Take two
9858         guint64 arguments insteed of a gpointer and a guint32.  
9859
9860 2004-12-08  Martin Baulig  <martin@ximian.com>
9861
9862         * debug-mono-symfile.h
9863         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9864         `address' to `native_offset'.
9865
9866 2004-12-08  Martin Baulig  <martin@ximian.com>
9867
9868         * class.c (mono_class_create_from_typespec): Only inflate if we
9869         either have `context->gclass' or `context->gmethod'.
9870
9871 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9872
9873         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9874
9875         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9876
9877         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9878
9879         * reflection.c (mono_assembly_get_object): Remove the workaround put
9880         in for the release.
9881         
9882         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9883
9884         * appdomain.c: Bump corlib version.
9885
9886         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9887         be visible in other appdomains.
9888
9889 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9890
9891         * threads.c: Interlocked inc and dec for longs were messed up,
9892         use a KISS based impl for this. Fixes 70234
9893
9894 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9895
9896         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9897
9898 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9899
9900         * icall.c: fix to follow policy not to allow struct
9901         arguments in icalls.
9902
9903 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9904
9905         * process.c: make the patch that handles spaces in file paths work
9906         on mono/windows too.
9907
9908 2004-12-06  Martin Baulig  <martin@ximian.com>
9909
9910         * class.c (mono_class_create_generic): Call
9911         mono_class_setup_supertypes() if we're dynamic.
9912         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9913
9914 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9915
9916         * object-internals.h: Add new fields to MonoThread.
9917
9918         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9919
9920         * icall.c threads-types.h threads.c: Add new icalls.
9921
9922         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9923
9924         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9925         managed side.
9926
9927         * appdomain.c: Bump corlib version.
9928
9929         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9930         internal assemblies. Fixes #69181.
9931
9932 2004-12-05  Martin Baulig  <martin@ximian.com>
9933
9934         * class.c (mono_class_inflate_generic_signature): Make this a
9935         no-op if `context' is NULL or we don't have any type parameters;
9936         also copy `sentinelpos'.        
9937
9938 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9939
9940         * image.c: Add unbox_wrapper_cache.
9941
9942         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9943
9944         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9945         function generator.
9946         
9947         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9948         Fixes #70173.
9949
9950         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9951         
9952 2004-12-04  Martin Baulig  <martin@ximian.com>
9953
9954         * loader.c (mono_method_get_signature_full): New public function;
9955         like mono_method_get_signature(), but with an additional
9956         `MonoGenericContext *' argument.
9957
9958         * class.c (mono_class_inflate_generic_signature): Formerly known
9959         as inflate_generic_signature(); make this public.
9960
9961 2004-12-04  Martin Baulig  <martin@ximian.com>
9962
9963         * metadata.c
9964         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9965         instead of a `MonoGenericContainer *'.  
9966         (mono_metadata_parse_array_full): Likewise.
9967         (mono_metadata_parse_signature_full): Likewise.
9968         (mono_metadata_parse_method_signature_full): Likewise.
9969         (mono_metadata_parse_generic_inst): Likewise.
9970         (mono_metadata_parse_generic_param): Likewise.
9971         (mono_metadata_parse_mh_full): Likewise.
9972         (mono_type_create_from_typespec_full): Likewise.
9973
9974 2004-12-03  Martin Baulig  <martin@ximian.com>
9975
9976         * class-internals.h (MonoGenericContainer): Replaced the
9977         `MonoGenericContext * pointer with a `MonoGenericContext'
9978         structure and made it the first element.
9979
9980 2004-12-03  Martin Baulig  <martin@ximian.com>
9981
9982         * class.c
9983         (inflate_generic_type): Set the `context->container' when creating
9984         a new MonoGenericContext.
9985         (mono_class_inflate_generic_method): Likewise.
9986         (mono_class_create_from_typespec): Just use `context->container'
9987         to get the container.
9988
9989         * loader.c (method_from_methodspec): Set `context->parent' from
9990         `context->container' - and if that's a method container, use its
9991         parent.  Also set the `context->container' when creating a new
9992         MonoGenericContext.
9993         (mono_get_method_from_token): Use just `context->container' to get
9994         the container.
9995
9996         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9997         `gclass->context->container'.
9998
9999         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
10000         the `context->container' when creating a new MonoGenericContext.
10001
10002 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
10003
10004         * reflection.c (compare_genericparam): Sort params with identical
10005         owner by their number. Fixes gen-111 on sparc.
10006
10007 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10008
10009         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
10010         around the domain changes.
10011
10012         * appdomain.c (mono_domain_unload): Handle the case when the thread
10013         calling Unload is itself being aborted during unloading. Fixes #70022.
10014
10015         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
10016
10017         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
10018         checkpoint_func as an icall so it gets a wrapper.
10019         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
10020         in the cross-appdomain wrappers too.
10021
10022         * threads.c (mono_thread_has_appdomain_ref): Make this public.
10023
10024         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
10025
10026         * reflection.c: Fix some memory leaks.
10027         
10028 2004-12-02  Martin Baulig  <martin@ximian.com>
10029
10030         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
10031
10032         * metadata.c (generic_class_cache): New static hashtable.
10033         (mono_metadata_lookup_generic_class): New public method.
10034
10035 2004-12-02  Martin Baulig  <martin@ximian.com>
10036
10037         * class.c (mono_class_create_from_typedef): Call
10038         mono_class_setup_parent() and mono_class_create_mono_type() before
10039         parsing the interfaces.
10040
10041 2004-12-02  Martin Baulig  <martin@ximian.com>
10042
10043         * metadata.c (generic_inst_cache): New static hashtable.
10044         (mono_metadata_lookup_generic_inst): New public function.
10045         (mono_metadata_inflate_generic_inst): New public function.
10046         (mono_metadata_parse_generic_inst): New public function.
10047         (do_mono_metadata_parse_generic_class): Use the new
10048         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
10049         since this'll also use the cache.
10050
10051         * reflection.c (mono_reflection_bind_generic_method_parameters):
10052         Use mono_metadata_lookup_generic_inst() to use the new cache.
10053
10054         * class.c (inflate_mono_type): Use
10055         mono_metadata_inflate_generic_inst() to inflate a generic
10056         instance; this'll also use the new cache.
10057
10058         * loader.c (method_from_methodspec): Use
10059         mono_metadata_parse_generic_inst() and
10060         mono_metadata_inflate_generic_inst() rather than parsing it
10061         manually, so we can use the new cache.
10062
10063 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10064
10065         * threads.c (wait_for_tids): Do not incorrectly free threads when 
10066         the wait times out.
10067
10068 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
10069
10070         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
10071         iter->args based on whether parameters are passed in registers (i.e.
10072         MONO_ARCH_REGPARMS is defined)
10073
10074 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
10075
10076         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
10077         the exception message. Fixes #70070.
10078         (method_from_methodspec): Fix warnings.
10079
10080 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10081
10082         * process.c: (complete_path) return the path quoted
10083
10084 2004-12-01  Martin Baulig  <martin@ximian.com>
10085
10086         * class-internals.h (MonoGenericInst): New structure.
10087         (MonoGenericClass): Replaced `type_argc', `type_argv' and
10088         `is_open' with `MonoGenericInst *inst'.
10089         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
10090         `is_open' with `MonoGenericInst *inst'.
10091
10092 2004-11-30  Martin Baulig  <martin@ximian.com>
10093
10094         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
10095
10096         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
10097         to `generic_class_cache'.
10098
10099         * metadata.c
10100         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
10101         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
10102         (mono_generic_inst_is_valuetype): Renamed to
10103         mono_generic_class_is_valuetype().
10104
10105         * class-internals.h
10106         (MonoGenericInst): Renamed to MonoGenericClass.
10107         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10108         (MonoClass): Renamed `generic_inst' to `generic_class'.
10109         (MonoGenericContext): Renamed `ginst' to `gclass'.
10110
10111         * object-internals.h
10112         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10113
10114         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10115         mono_reflection_generic_class_initialize().
10116
10117         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10118         now known as "System.Reflection.MonoGenericClass".
10119         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10120
10121 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10122
10123         * class-internals.h: Added a flag field to MonoClass to cache the
10124         declarative security attributes actions associated with the class.
10125         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10126         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10127         applicable to the JITted method.
10128         * reflection.c|h: Added functions to extract (as flags) which security
10129         actions are available (declaratively) for a method, class or assembly.
10130         * metadata.c|h: Added functions to search the declarative security
10131         table in the metadata.
10132         
10133 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10134
10135         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10136         EXPORTEDTYPES are already in the class name cache, so there is no
10137         need to add extra code here to look at them. Just removes a bit of
10138         cruft.
10139
10140         (ves_icall_System_Environment_get_TickCount): No need for #if
10141         WINDOWS. We already have the code in io-layer.
10142
10143 2004-11-28  Martin Baulig  <martin@ximian.com>
10144
10145         * loader.c
10146         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10147         Fixes gen-112.cs.
10148
10149 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10150
10151         * assembly.c (do_mono_assembly_open): Instead of having a
10152         conditional WITH_BUNDLE, incorporate support for bundles here, by
10153         having a global `bundles' variable holding a pointer to the actual
10154         bundles. 
10155
10156         (mono_register_bundled_assemblies): New API call used by the
10157         bundle code. 
10158
10159         See mkbundle.1 for details.
10160         
10161 2004-11-27  Martin Baulig  <martin@ximian.com>
10162
10163         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10164         the vtable for generic methods.
10165
10166 2004-11-26  Martin Baulig  <martin@ximian.com>
10167
10168         * metadata.c
10169         (mono_metadata_generic_method_hash): New public function.
10170         (mono_metadata_generic_method_equal): Likewise.
10171
10172         * class-internals.h
10173         (MonoGenericContainer): Added `GHashTable *method_hash'.
10174
10175         * reflection.c (ReflectionMethodBuilder): Added
10176         `MonoGenericContainer *generic_container'.
10177         (reflection_methodbuilder_to_mono_method): Don't create a new
10178         MonoGenericContainer each time we're called.
10179         (mono_reflection_bind_generic_method_parameters): Use
10180         `container->method_hash' to cache the results so we don't create a
10181         different method if we're called several times with the same
10182         arguments.
10183
10184         * loader.c (method_from_methodspec): Use the new
10185         `container->method_hash' here, too.
10186
10187 2004-11-26  Martin Baulig  <martin@ximian.com>
10188
10189         * class.c (inflate_generic_signature): Correctly compute
10190         `res->has_type_parameters'.
10191         (mono_class_vtable): Use the `has_type_parameters' flag to
10192         determine whether we're a generic method.
10193
10194         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10195
10196 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10197
10198         * object.c (mono_runtime_run_main): Fix a small memory leak.
10199
10200 2004-11-25  Martin Baulig  <martin@ximian.com>
10201
10202         * class.c (set_generic_param_owner): Fixed the loop.
10203
10204 2004-11-25  Martin Baulig  <martin@ximian.com>
10205
10206         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10207         generic methods.
10208
10209 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10210
10211         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10212         names. Fixes #69787.
10213
10214 2004-11-24  Martin Baulig  <martin@ximian.com>
10215
10216         * class.c (mono_class_create_generic_2): If we don't have a
10217         `ginst->parent', inflate `gklass->parent' to get our parent.
10218
10219 2004-11-24  Martin Baulig  <martin@ximian.com>
10220
10221         * reflection.c (compare_genericparam): Correctly sort the
10222         GenericParam table; fixes #69779.
10223
10224 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10225
10226         * reflection.c: When writing a PE file, don't create a huge
10227         buffer in memory. Just write the arrays we have to the file.
10228         This reduces memory usage.
10229
10230         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10231         globally.
10232
10233 2004-11-17  Martin Baulig  <martin@ximian.com>
10234
10235         * class.c (mono_class_init): Don't setup `class->parent' for
10236         dynamic instances; moved this to mono_class_generic_2().
10237         (mono_class_create_generic): Also set `klass->inited' for dynamic
10238         generic instances.
10239         (mono_class_create_generic_2): Don't do anything for dynamic
10240         generic instances.  Set `klass->parent' here and also call
10241         mono_class_setup_parent() here. 
10242
10243         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10244         `MonoType *parent' argument; set `ginst->parent' before calling
10245         mono_class_create_generic_2(), so we set the correct parent.
10246
10247 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10248
10249         * reflection.c: allow getting attributes from ModuleBuilder
10250         (used by ikvm).
10251
10252 2004-11-17  Martin Baulig  <martin@ximian.com>
10253
10254         * class.c (mono_class_create_from_typedef): If a type parameter is
10255         inherited from an outer class, set its owner to that class.
10256
10257 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10258
10259         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10260           for (int*) written size. This fixes bug #69592.
10261
10262 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10263
10264         * icall.c: Added IsAuthenticodePresnet internal call.
10265         * image.c|h: New function that check a MonoImage for an Authenticode
10266         signature in the certificate PE data directory.
10267         * security.c|h: New internal call to ask the runtime if an 
10268         Authenticode signature seems referenced in the PE header.
10269
10270 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10271
10272         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10273
10274         * reflection.c (mono_image_create_pefile): Free the assembly streams
10275         after writing out the assembly file.
10276
10277         * object.c (mono_runtime_run_main): Fix small memory leak.
10278
10279         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10280         property access modifiers. Fixes #69389.
10281
10282 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10283
10284         * domain.c, object.c, object-internals.h, domain-internals.h,
10285         object.h, marshal.c: keep dynamic code info per domain.
10286
10287 2004-11-15  Martin Baulig  <martin@ximian.com>
10288
10289         * class.c (mono_type_get_name_recurse): Put type arguments in
10290         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10291         see bug #68387.
10292
10293 2004-11-15  Martin Baulig  <martin@ximian.com>
10294
10295         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10296         (mono_class_setup_vtable): When computing `the_cname' for a
10297         generic instance, don't include the namespace since we'd otherwise
10298         add it twice.
10299
10300 2004-11-15  Martin Baulig  <martin@ximian.com>
10301
10302         * class.c (mono_class_create_generic): Changed return type to void.
10303         (mono_class_create_generic_2): New public function; setup
10304         `class->method', `class->field' and `class->interfaces' here
10305         instead of in mono_class_init().
10306
10307         * class.h (mono_class_create_generic): Moved to class-internals.h.
10308
10309 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10310
10311         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10312         rather than writing to memory, write to this file. Right now,
10313         we are just writting into a buffer, and copying that. However
10314         we can avoid the buffer later.
10315
10316         (mono_dynamic_stream_reset): new function
10317
10318         * icall.c, object-internals.h: update for the above.
10319
10320 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10321
10322         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10323         have been using gc'd memory. First it is slower, unlikely
10324         the comment in the source code said, secondly, it increases
10325         our footprint to do it in the gc.
10326
10327         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10328         the method so that it does not have to copy to managed code.
10329
10330 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10331
10332         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10333
10334 2004-11-12  Martin Baulig  <martin@localhost>
10335
10336         * reflection.c (mono_image_create_token): Allow generic method
10337         definitions here, since they may appear in an `.override'; see
10338         gen-98/gen-99 for an example.
10339
10340 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10341
10342         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10343         #69365.
10344
10345         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10346         descriptive.
10347
10348 2004-11-11  Martin Baulig  <martin@ximian.com>
10349
10350         * class.c (mono_class_setup_vtable): In an explicit interface
10351         implementation, the method name now includes the arity.
10352
10353 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10354
10355         * object.c (mono_array_full_copy): Fix warning.
10356
10357 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10358
10359         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10360         mono_class_get_method_from_name() instead.
10361         
10362         * class-internals.h: Added two new types of wrappers. 
10363         Added MonoRemotingTarget enum. Added new trampoline function type, which
10364         takes an additional MonoRemotingTarget value as parameter, so it is
10365         possible to request a trampoline for a specific target.
10366         
10367         * class.c: Added new mono_class_get_method_from_name() method.
10368         
10369         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10370         general remoting sinks and one specific for cross domain calls.
10371         
10372         * debug-helpers.c: Added new wrapper names.
10373         
10374         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10375         of a remote class.
10376         
10377         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10378         
10379         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10380         with several other methods (mono_marshal_get_xappdomain_dispatch,
10381         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10382         and others) can generate a fast remoting wrapper for cross domain calls.
10383         More information can be found in docs/remoting.
10384         Other changes: Removed mono_find_method_by_name, and used
10385         mono_class_get_method_from_name instead.
10386         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10387         is stored in the remoting invoke hashtable.
10388         
10389         * marshal.h: published the new method for getting the xdomain wrapper,
10390         and also added a method for getting the adequate wrapper for a given
10391         method and target.
10392         
10393         * object-internals.h, object.c: Added a couple of methods for capying and
10394         cloning arrays.
10395         Modified mono_install_remoting_trampoline, which takes the new remoting
10396         trampoline that has a remoting target as parameter.
10397         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10398         will return the most suitable vtable for the target.
10399         Added mono_remote_class_vtable, which returns the vtable of a remote class
10400         (which can be the normal remoting vtable or the xdomain vtable).
10401         
10402         * threads.c: the xdomain invoke and dispatch wrappers must also be
10403         protected against interruptions.
10404
10405 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10406
10407         * icall.c: use memmove in BlockCopyInternal when the source and
10408         destination arrays are the same.
10409
10410 2004-11-09  Martin Baulig  <martin@ximian.com>
10411
10412         * class-internals.h (MonoGenericContainer): Removed `method' and
10413         `signature', replaced them with `is_method' and `is_signature'
10414         flags.  Added `context'.
10415
10416         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10417         instead of a `MonoGenericContainer *'.
10418
10419         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10420         for dynamic type parameters.
10421         (mono_metadata_load_generic_params): Setup `container->context'.
10422
10423         * reflection.c (mono_reflection_setup_generic_class): Setup
10424         `tb->generic_container->context'.
10425         (do_mono_reflection_bind_generic_parameters): Use
10426         mono_class_inflate_generic_type() to correctly inflate types,
10427         rather than using our own hack just for MONO_TYPE_VAR.
10428
10429 2004-11-09  Martin Baulig  <martin@ximian.com>
10430
10431         * class.c (mono_class_inflate_generic_method): Small fix; don't
10432         crash here.
10433
10434         * icall.c
10435         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10436         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10437         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10438         (ves_icall_Type_BindGenericParameters): Likewise.
10439         (ves_icall_Type_get_IsGenericInstance): Likewise.
10440         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10441         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10442         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10443         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10444
10445 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10446
10447         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10448         assembly versions and public key tokens. Fixes #69113.
10449
10450 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10451
10452         * metadata.c: fix bug introduced with the type cache changes
10453         on 2004-11-06.
10454
10455 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10456
10457         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10458         the MonoClass pointer instead of the token in exception clauses.
10459         * reflection.c: updates for the above and make the code not depend
10460         on the structure of MonoExceptionClause.
10461
10462 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10463
10464         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10465         Add support for dynamic assemblies. Fixes #69114.
10466
10467         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10468
10469 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10470
10471         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10472         since most only those methods use it. the code member of
10473         MonoMethodPInvoke was dead, so that can be removed too. Also,
10474         remove inline_count (again, not used), and move slot so that it
10475         can share bits with some other flags. This saves 8 bytes in the
10476         structure and gives us about 50 kb back for mcs helloworld.cs
10477
10478         * *.[ch]: Do naming changes for the above.
10479
10480         * loader.c (mono_method_get_header): Lazily init the header
10481         on first access.
10482         (mono_get_method_from_token): don't init the header here
10483         (mono_free_method): the header may never be allocated
10484
10485         Overall, this saves 150 kb of unmanaged allocations
10486         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10487         memory at runtime.
10488         
10489         * loader.c, loader.h (mono_method_get_header): new accessor.
10490
10491         * *.[ch]: use the above method. Prepares us to lazily load
10492         the header.
10493
10494         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10495         three warnings, which are actual bugs (see 69206).
10496
10497         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10498         unused. Saves a cool 4 bytes / method.
10499
10500 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10501
10502         * metadata.c (builtin_types): Add types for System.Object here.
10503         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10504         for a class or valuetype from klass->this_arg or klass->byval_arg.
10505
10506         On mcs for a hello world, this gets us down from 21836 MonoType's
10507         to 14560.
10508
10509         (mono_metadata_free_type): Account for the above change.
10510
10511 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10512
10513         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10514         exception instead of asserting if name is null.
10515         (ves_icall_System_AppDomain_GetData): Ditto.
10516
10517 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10518
10519         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10520         EnumBuilder.
10521
10522         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10523         Return NULL when the domain does not have entry_assembly set.
10524
10525         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10526         Add a 'resource_modules' argument.
10527         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10528
10529         * reflection.c (mono_reflection_create_runtime_class): Move setting
10530         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10531         for enums too.
10532
10533         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10534         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10535         Throw an ArgumentNullException if 'ptr' is null.
10536
10537         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10538         assemblies here. Fixes #69020.
10539
10540 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10541
10542         * reflection.c (build_compressed_metadata): Fix the previous patch for
10543         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10544         the stack.
10545
10546 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10547
10548         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10549         the cultures is false. Fixes #69090.
10550
10551         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10552         detected by valgrind.
10553         
10554         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10555         TypeResolve multiple times for the same type. Fixes #65577.
10556
10557 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10558
10559         * marshal.c: Avoid using ldftn to call managed functions. It is
10560         much slower than just a call.
10561
10562         * reflection.c (mono_module_get_object): free the basename we
10563         allocate here from glib.
10564         
10565         * reflection.c (ensure_runtime_vtable): make sure to free
10566         overrides.  Also, we were allocating an array of MonoMethod not an
10567         array of MonoMethod*.
10568
10569         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10570
10571         * image.c (mono_image_close): free image->guid here.
10572
10573 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10574
10575         * reflection.c: Fix some spec conformance issues with the PE file
10576         structures so mcs compiled apps run on the Net 2.0 beta.
10577
10578 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10579
10580         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10581         Implement this. Fixes #67264.
10582
10583         * debug-helpers.h debug-helpers.c marshal.c: Move 
10584         mono_find_method_by_name to debug-helpers.c.
10585
10586 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10587
10588         * object.c (mono_release_type_locks): type_initialization_hash is
10589         a GHashTable.
10590
10591         * reflection.c object.c object-internals.h: Fix warnings.
10592
10593         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10594         without accessors. Fixes #61561.
10595
10596         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10597         application base from the root domain if not set. Fixes #65641.
10598         (mono_runtime_init): Fix warning.
10599
10600 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10601
10602         * appdomain.c: call mono_thread_pool_init.
10603         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10604         of worker threads based on the number of CPUs and the environment
10605         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10606         for non-windows (windows) systems.
10607
10608 2004-10-27  Chris Toshok  <toshok@ximian.com>
10609
10610         * mono-debug-debugger.c (write_class): don't call mono_class_init
10611         here, as even with the check for (!klass->init_pending), we get
10612         into a situation where we're hitting cycles in class
10613         initialization.  Fixes #68816.
10614
10615 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10616
10617         * image.c: Avoid overwriting values in the loaded_images_hash when an
10618         assembly is loaded multiple times. Fixes #61152.
10619
10620         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10621         so multiple satellite assemblies for the same name can be loaded.
10622         Fixes #68259.
10623
10624         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10625         not NULL.
10626
10627         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10628         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10629
10630         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10631         pending finalizers are not invoked after the appdomain has been 
10632         unloaded. Fixes #67862.
10633
10634 2004-10-22  Martin Baulig  <martin@ximian.com>
10635
10636         * mono-debug-debugger.c
10637         (mono_debugger_runtime_invoke): Don't box valuetypes.
10638
10639 2004-10-22  Chris Toshok  <toshok@ximian.com>
10640
10641         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10642         don't hide private methods.
10643
10644 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10645
10646         * icall.c: Allows the runtime to "share" (when known) the public key
10647         token of an assembly. This avoid the need to recalculate the token 
10648         (from the public key) in managed code.
10649
10650 2004-10-21  Chris Toshok  <toshok@ximian.com>
10651
10652         * debug-helpers.c (append_class_name): argh, revert last patch.
10653         
10654 2004-10-21  Chris Toshok  <toshok@ximian.com>
10655
10656         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10657         not '/', so that it matches what the debugger uses to look up
10658         methods.
10659
10660 2004-10-21  Martin Baulig  <martin@ximian.com>
10661
10662         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10663         public method; this is called each time an exception is thrown and
10664         allows the debugger to use exception catch points.
10665
10666 2004-10-21  Martin Baulig  <martin@ximian.com>
10667
10668         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10669         the stack pointer and the exception object in some struct and pass
10670         that to the debugger.
10671
10672 2004-10-21  Chris Toshok  <toshok@ximian.com>
10673
10674         * mono-debug-debugger.c (do_write_class): add instance/static
10675         event support.  We don't expose "raise" or "other" yet.
10676         (event_is_static): new method.
10677
10678 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10679
10680         * mono-debug-debugger.c
10681         (mono_debugger_handle_exception): Remove
10682         bogus return value for fussy compilers.
10683
10684 2004-10-20  Martin Baulig  <martin@ximian.com>
10685
10686         * mono-debug-debugger.c
10687         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10688         (mono_debugger_handled_exception): Likewise.
10689
10690 2004-10-20  Martin Baulig  <martin@ximian.com>
10691
10692         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10693         MONO_DEBUGGER_EVENT_EXCEPTION.
10694
10695         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10696         public function to send the debugger a notification for an
10697         exception and inform it about a catch/finally clause.
10698
10699 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10700
10701         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10702         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10703         fix 2.95 build. 
10704
10705         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10706
10707 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10708
10709         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10710         marshalled as [In,Out]. Fixes #58325.
10711
10712 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10713
10714         * reflection.c (mono_method_body_get_object): Implement some fields.
10715
10716 2004-10-12  Martin Baulig  <martin@ximian.com>
10717
10718         * reflection.c (mono_reflection_bind_generic_parameters): Small
10719         fix, correctly retrieve our parent from a generic instance.
10720
10721 2004-10-12  Martin Baulig  <martin@ximian.com>
10722
10723         * metadata.c (mono_metadata_generic_param_equal): We always have
10724         an owner.
10725
10726         * class.c
10727         (mono_class_from_generic_parameter): We need to have an owner.
10728         (my_mono_class_from_generic_parameter): Likewise.
10729
10730         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10731         mono_reflection_create_generic_class() and added a new
10732         mono_reflection_setup_generic_class().  
10733         (mono_reflection_initialize_generic_param): If we're a nested
10734         generic type and inherited from the containing class, set our
10735         owner to the outer class.
10736
10737 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10738
10739         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10740
10741         * reflection.c (mono_method_body_get_object): New function to create
10742         a MethodBody object.
10743
10744         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10745
10746 2004-10-11  Martin Baulig  <martin@ximian.com>
10747
10748         * metadata.c (_mono_metadata_type_equal): Renamed to
10749         do_mono_metadata_type_equal() and made static.
10750
10751 2004-10-11  Martin Baulig  <martin@ximian.com>
10752
10753         * appdomain.c: Bump corlib version number to 28.
10754
10755 2004-10-10  Martin Baulig  <martin@ximian.com>
10756
10757         * class-internals.h
10758         (MonoGenericInst): Added `MonoGenericContainer *container'.
10759         (MonoGenericMethod): Likewise.
10760         (MonoGenericContext): Likewise.
10761         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10762
10763         * metadata.c
10764         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10765         (do_mono_metadata_parse_generic_inst): Likewise.
10766         (mono_metadata_parse_type_full): New public method.  This is the actual
10767         mono_metadata_parse_type() implementation - with an additional
10768         `MonoGenericContainer *' argument.
10769         (mono_metadata_parse_array_full): Likewise.
10770         (mono_metadata_parse_signature_full): Likewise.
10771         (mono_metadata_parse_method_signature_full): Likewise.
10772         (mono_metadata_parse_mh_full): Likewise.
10773         (mono_type_create_from_typespec): Likewise.
10774         (mono_metadata_interfaces_from_typedef_full): New public method;
10775         this is similar to the other _full() methods, but we take a
10776         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10777         (mono_metadata_parse_generic_param): Take an additional
10778         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10779         from that container.
10780         (mono_metadata_generic_param_equal): New static method to compare
10781         two type parameters.
10782         (_mono_metadata_type_equal): New static method; takes an
10783         additional `gboolean signature_only' argument - if true, we don't
10784         compare the owners of generic parameters.
10785         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10786         with a TRUE argument - do a signature-only comparision.
10787
10788         * loader.c: Use the new _full() methods and pass the
10789         MonoGenericContainer to them.
10790
10791         * object-internals.h (MonoReflectionTypeBuilder): Added
10792         `MonoGenericContainer *generic_container' field.
10793         (MonoReflectionMethodBuilder): Likewise.
10794
10795 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10796
10797         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10798         case initial images of dynamic assemblies.
10799
10800         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10801
10802         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10803
10804         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10805         length of event->other array.
10806         (typebuilder_setup_events): Ditto.
10807
10808         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10809         'assembly_by_name' and add an 'assemblies' list.
10810
10811         * assembly.h assembly.c: Add a new search hook for determining whenever
10812         an assembly is already loaded. Use this instead of searching in the
10813         loaded_assemblies list.
10814
10815         * domain.c appdomain.c: Implement the new search hook so loaded 
10816         assemblies are now scoped by appdomain. Fixes #67727.
10817
10818 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10819
10820         * threads.c (mono_thread_attach): Initialize synch_lock field so
10821         mono_thread_detach works again.
10822
10823         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
10824         'lib' too. Fixes #63130.
10825
10826 2004-10-06  Jackson Harper  <jackson@ximian.com>
10827
10828         * culture-info-tables.h: regenerated.
10829
10830 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
10831
10832         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10833         implemented by other interfaces in the result. Fixes #65764.
10834         
10835         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10836         Handle unloadable modules without crashing.
10837
10838         * image.c (load_modules): Revert the previous patch since modules must
10839         have a fixed index inside the array.
10840         
10841         * image.c (load_modules): Don't include native modules in the modules
10842         array.
10843
10844 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10845
10846         * reflection.h: Add param_defaults field.
10847
10848         * reflection.c: Add support for parameter defaults in dynamic methods.
10849         Fixes #64595.
10850
10851         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10852         an empty string when a type has no namespace. Fixes #64230.
10853
10854 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10855
10856         * tabledefs.h: Added "internal" security actions to support non-CAS
10857         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10858         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10859
10860 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10861
10862         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10863         constructor of abstract class. Fixes #61689.
10864
10865 2004-10-04  Martin Baulig  <martin@ximian.com>
10866
10867         * class-internals.h (MonoGenericContainer): New type.
10868         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10869         `MonoGenericContainer *generic_container'.
10870         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10871         `MonoGenericContainer *generic_container'.
10872
10873         * metadata.c (mono_metadata_load_generic_params): Return a
10874         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10875         removed the `num' argument.
10876
10877 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10878
10879         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10880         for dynamic images.
10881
10882         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10883         machine fields.
10884
10885         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10886
10887         * reflection.c: Save pe_kind and machine values into the generated
10888         image file.
10889
10890         * appdomain.c: Bump corlib version number.
10891
10892         * object-internals.h: Reorganize layout of LocalBuilder.
10893
10894         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10895         New helper function.
10896
10897         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10898         created MonoType for dynamic types. Fixes #66180.
10899
10900 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10901
10902         * threadpool.c: the ares hashtable needs a critical section around it.
10903         this prevents some nasty segfaults
10904
10905 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10906
10907         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10908         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10909         bug 67324).
10910         
10911 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10912
10913         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10914         
10915 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10916
10917         * image.c: Always canonicalize image file names, to avoid loading
10918         the same assembly twice when referenced using a relative path.
10919
10920 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10921
10922         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10923
10924         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10925
10926         * marshal.c: Fix warnings.
10927
10928 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10929
10930         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10931         attempting to marshal the delegate_trampoline as the method_addr.
10932         This patch has a static hashtable of marshalled delegates so that 
10933         we can map delegate_trampoline addresses back to delegates.  This
10934         allows a delegate passed to managed code to be passed back into native
10935         code.  Fixes #67039
10936
10937 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10938
10939         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10940
10941         * reflection.c (method_encode_code): Align method headers properly.
10942         Fixes #66025.
10943
10944 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10945
10946         * marshal.c: In the runtime invoke wrapper, reset the abort
10947         exception if it is cached. This avoids the automatic rethrowal of 
10948         the exception after the catch of the wrapper. Also check for pending
10949         interruptions before calling the managed method. This is done using
10950         the new method emit_thread_force_interrupt_checkpoint, since the
10951         normal checkpoint method is ignored when running the invoke wrapper.
10952         * object.c: If the abort exception is rethrown, set the abort_exc
10953         field of the thread, so it will be rethrown aftere every catch.
10954         * threadpool.c: Only run an interruption checkpoint if what has been
10955         requested is a stop of the thread (aborts will be ignored).
10956         * threads.c: By default, a thread will now never be interrumped while
10957         running the runtime invoke wrapper (this ensures that runtime_invoke
10958         will always return to the caller if an exception pointer is provided).
10959         There is a new special method mono_thread_force_interruption_checkpoint()
10960         to force an interruption checkpoint even if running a protected
10961         wrapper, which is used by the same runtime invoke wrapper to do a check
10962         at a safe point.
10963
10964 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10965
10966         * object.c, object-internals.h: Implemented mono_release_type_locks,
10967         which releases the cctor locks held by a thread.
10968         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10969         by a thread. Added mono_thread_exit() method to be used to safely stop
10970         a thread.
10971
10972 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10973
10974         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10975         Move null check before dereference.  Avoid indexing beyond the end
10976         of the 'modules' array.
10977
10978 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10979
10980         * metadata-internals.h (MonoImage): Add module_count field.
10981         * image.c (load_modules): Set image->module_count.
10982         (mono_image_load_file_for_image): Use image->module_count.
10983         * reflection.c (mono_image_load_module): Append to image->modules array 
10984         of dynamic assembly.
10985         (mono_module_get_object): Fix loop to actually increment index.
10986         Use image->module_count.
10987         * assembly.c (mono_assembly_load_references): Use image->module_count.
10988         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10989         Likewise.
10990
10991 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10992
10993         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10994         Avoid assert on generic types.
10995
10996 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10997
10998         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10999
11000         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
11001
11002         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
11003         function to convert a MarshalSpec structure to its managed counterpart.
11004
11005         * reflection.c: Fix warnings.
11006         
11007         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
11008         field.
11009
11010         * icall.c (mono_create_icall_signature): Fix build.
11011
11012 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
11013
11014         * icall.c: Add MakePointType icall.
11015
11016         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
11017         warnings.
11018
11019 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11020
11021         * threadpool.c: reuse allocated slots in the queue.
11022
11023 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
11024
11025         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
11026
11027         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
11028
11029         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
11030         previous change.
11031
11032         * tabledefs.h: Add constants for pinvoke attributes BestFit and
11033         ThrowOnUnmappableChar.
11034
11035         * icall.c (ves_icall_Type_GetPacking): New icall.
11036
11037 2004-09-24  Martin Baulig  <martin@ximian.com>
11038
11039         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
11040
11041 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11042
11043         * appdomain.c:
11044         (mono_domain_set): allow setting a domain that is being unloaded.
11045         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
11046         being unloaded.
11047
11048 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11049
11050         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
11051         the GetCustomAttributes icall.
11052
11053 2004-09-23  Martin Baulig  <martin@ximian.com>
11054
11055         * object-internals.h (MonoReflectionGenericParam): Replaced
11056         'has_ctor_constraint', `has_reference_type' and `has_value_type'
11057         with `guint32 attrs'.
11058
11059 2004-09-23  Martin Baulig  <martin@ximian.com>
11060
11061         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
11062
11063 2004-09-23  Martin Baulig  <martin@ximian.com>
11064
11065         * object-internals.h (GenericParameterAttributes): New enum.
11066
11067 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11068
11069         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
11070         
11071         * class.c (init_events): Fill out event->other field.
11072
11073         * class.c: Fix warnings.
11074
11075         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11076
11077 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
11078
11079         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
11080         walk which doesn't supply the IL offset.
11081
11082 2004-09-22  Martin Baulig  <martin@ximian.com>
11083
11084         * reflection.c (mono_reflection_setup_internal_class): If we're
11085         System.ValueType, System.Object or System.Enum, set
11086         `klass->instance_size' and create the vtable.
11087         (mono_reflection_create_internal_class): If we're an enum type,
11088         get the base class from our current corlib.
11089
11090 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
11091
11092         * reflection.h (MonoResolveTokenError): New type.
11093
11094         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
11095         icall.
11096
11097         * icall.c: Add an 'error' argument to the ResolveToken icalls.
11098
11099 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
11100
11101         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
11102         Support also calling constructors, but only for already allocated objects.
11103
11104 2004-09-17  Geoff Norton <gnorton@customerdna.com>
11105
11106         * reflection.c (type_get_qualified_name): If the klass is null
11107         return the typename to avoid a NullRefEx.
11108         (encode_cattr_value): Get the qualified name of the boxed type,
11109         not the underlying enumtype.  Fixes #62984.
11110
11111 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11112
11113         * marshal.c: Fix problems with previous checkin.
11114
11115 2004-09-21    <vargaz@freemail.hu>
11116
11117         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11118         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11119
11120         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11121
11122 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11123
11124         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11125         should only return a type for pointers, arrays, and passbyref types.
11126         Fixes bug #63841.
11127
11128 2004-09-21  Martin Baulig  <martin@ximian.com>
11129
11130         * domain.c (mono_debugger_check_runtime_version): New public
11131         function.
11132
11133         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11134
11135 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11136
11137         * reflection.c: Added missing sort to the declarative security 
11138         attributes table. MS implementation stops seeing the attributes if the
11139         token number regress in the table (as shown by ildasm and permview).
11140
11141 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11142
11143         * object-internals.h (MonoReflectionModule): Add 'token' field.
11144         
11145         * reflection.c (mono_reflection_get_token): Add support for Module
11146         and Assembly.
11147         (mono_module_get_object): Set 'token' field.
11148         (mono_module_file_get_object): Set 'token' field.
11149
11150         * icall.c: Add new Assembly and Module icalls.
11151
11152         * appdomain.c: Bump corlib version.
11153
11154 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11155
11156         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11157         tokens of metadata objects.
11158
11159         * reflection.h reflection.c (mono_reflection_get_token): New function
11160         to obtain the token of a metadata object.
11161
11162         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11163
11164 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11165
11166         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11167         
11168         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11169
11170 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11171
11172         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11173         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11174         AssemblyBuilder to access the permissions set in the class lib.
11175         * reflection.c: Added security attributes encoding step in 
11176         mono_image_build_metadata.
11177         * tabledefs.h: Added new security actions defined in 2.0:
11178         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11179
11180 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11181
11182         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11183         macro parameter.
11184
11185 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11186  
11187         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11188           finalized. There where random SIGSEVs at program termination, when
11189           an object being finalized was trying to do a string comparison and
11190           the current culture was already finalized.
11191  
11192 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11193
11194         * threads.c: call thread_cleanup before finishing the thread if we get
11195         there.
11196
11197 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11198
11199         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11200         assemblies from the parent. Fixes #65665.
11201
11202 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11203
11204         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11205         modifiers.
11206
11207 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11208
11209         * reflection.h: add prototype for mono_get_dbnull_object
11210         * reflection.c: add prototypes for get_default_param_value_blobs 
11211         and mono_get_object_from_blob for fussier compilers
11212
11213 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11214  
11215         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11216         false deadlock checks in class initialization.
11217  
11218 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11219
11220         * image.c (mono_image_addref): Fix comment.
11221
11222         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11223         possible.
11224
11225 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11226
11227         * reflection.c (mono_param_get_objects): Modified to return
11228         ParameterInfo.DefaultValue object.
11229
11230         (get_default_param_value_blobs):
11231         (mono_get_object_from_blob):
11232         (mono_get_dbnull_object): New helper routines. 
11233
11234         * object.c (mono_get_constant_value_from_blob): New helper routine
11235         carved out from get_default_field_value ()
11236
11237         * object-internals.h (mono_get_constant_value_from_blob): Added
11238         function declaration.
11239
11240 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11241
11242         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11243         referenced assemblies. Fixes #62135.
11244
11245         * exception.h exception.c (mono_get_exception_file_not_found2): New
11246         helper function.
11247
11248 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11249
11250         * class.h class.c: Add mono_type_get_underlying_type ().
11251
11252 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11253
11254         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11255         Fix GetTypes() to support dynamically created assemblies.
11256
11257 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11258
11259         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11260         
11261         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11262         previous patch.
11263
11264         * reflection.h reflection.c loader.c: Allow dynamic construction of
11265         pinvoke methods. Fixes #65571.
11266         
11267         * reflection.c (mono_reflection_get_type): Revert previous change since
11268         it causes regressions.
11269
11270 2004-09-08  Martin Baulig  <martin@ximian.com>
11271
11272         * class.c (class_compute_field_layout): Don't call
11273         mono_class_layout_fields() for open generic instances.
11274
11275 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11276         * threads.c appdomain.c: fix typo in GC macro
11277
11278 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11279
11280         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11281         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11282
11283 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11284
11285         * image.c (mono_image_close): Applied patch from 
11286         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11287         assembly is loaded multiple times from data.
11288         
11289         * image.c (mono_image_open): Fix warning.
11290
11291 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11292
11293         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11294         once. Fixes #58334.
11295         
11296         * reflection.c (mono_reflection_create_runtime_class): Initialize
11297         klass->nested_classes. Fixes #61224.
11298
11299 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11300
11301         * threads.c: sched_yield() on exit, to allow threads to quit.
11302
11303 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11304
11305         * object.c (mono_unhandled_exception): Remove leftover debug code.
11306
11307 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11308
11309         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11310
11311 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11312
11313         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11314         
11315         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11316
11317 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11318
11319         * marshal.c (emit_marshal_array): Null terminate string arrays.
11320         
11321         * marshal.c (raise_auto_layout_exception): Fix warning.
11322
11323         * reflection.c (mono_param_get_objects): Initialize the default value
11324         with DBNull.Value, not null. Fixes #62123.
11325
11326 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11327
11328         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11329         throw an exception with a cute explanation.
11330
11331 2004-09-06  Dick Porter  <dick@ximian.com>
11332
11333         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11334         Close the new process's thread handle, as we don't use it.  The
11335         handle stays around forever otherwise.
11336
11337 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11338
11339         * object.c (arith_overflow): Fix warning.
11340
11341         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11342         calling conventions in method refs. Fixes #65352.
11343
11344         * reflection.c: Fix warnings.
11345
11346 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11347
11348         * icall.c: Add a new icall for Array.Clear
11349
11350 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11351
11352         * object.c: When allocating an array, we have to throw
11353         an overflow exception if any of the lengths are < 0.
11354
11355 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11356
11357         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11358         properly. Also move implementation of string array marshalling to 
11359         managed code. Fixes #42316.
11360
11361 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11362
11363         * assembly.c: provide more information when loading an assembly fails.
11364
11365 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11366
11367         * filewatcher.c: don't expect the development fam package to be
11368         installed.
11369
11370 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11371
11372         * marshal.c: Make a copy of the signature cookie since it will be
11373         freed by the caller.
11374         
11375         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11376
11377         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11378
11379         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11380         marshal specs.
11381
11382         * marshal.c: More refactoring.
11383         
11384         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11385         smaller functions.
11386
11387 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11388
11389         * object.c: In mono_message_invoke, fill the output parameter array after
11390           calling the managed method (it was done before the call). This fixes
11391           bug #59299.
11392
11393 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11394
11395         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11396         as well.
11397
11398 2004-09-02  Martin Baulig  <martin@ximian.com>
11399
11400         * class.c (mono_class_instance_size): Don't allow generic type
11401         definitions or open generic instances.
11402         (mono_class_array_element_size): If we're a value type, call
11403         mono_class_instance_size() on the original class.
11404
11405         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11406         handle generic instances.
11407
11408         * mono-debug-debugger.c (write_type): Handle generic instances
11409         like classes.
11410
11411 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11412
11413         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11414         the allocation request fails. Fixes #65089.
11415
11416         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11417         
11418         * object.c (mono_runtime_free_method): New function to free a dynamic
11419         method.
11420
11421         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11422         delegate trampoline.
11423
11424         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11425         with hasthis as dynamic,
11426
11427         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11428
11429         * domain.c (mono_jit_info_table_remove): New function to remove an
11430         entry from the jit info table.
11431
11432         * class-internals.h (MonoMethod): Add 'dynamic' field.
11433
11434         * loader.c: Fix warnings.
11435
11436 2004-09-01  Martin Baulig  <martin@ximian.com>
11437
11438         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11439         instead of mono_debugger_lock() because the latter one is a no-op
11440         unless running in the debugger.
11441
11442 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11443
11444         * class.c (class_compute_field_layout): Classes with auto-layout or
11445         reference fields are not blittable.
11446         
11447 2004-09-01  Dick Porter  <dick@ximian.com>
11448
11449         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11450         mono_image_get_filename() to get the assembly location.
11451
11452         * icall.c:
11453         * metadata.h: Fix compile warnings
11454
11455 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11456
11457         * class.c (class_compute_field_layout): System.Object is blittable.
11458
11459         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11460         as in/out. Fixes #59909.
11461
11462 2004-09-01  Martin Baulig  <martin@ximian.com>
11463
11464         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11465         mono_metadata_generic_inst_is_valuetype() if we're a generic
11466         instance to check whether our underlying type is a reference type.
11467
11468 2004-09-01  Martin Baulig  <martin@ximian.com>
11469
11470         * metadata.c (mono_type_size): If we're a generic instance, call
11471         mono_class_value_size() for value types.
11472
11473 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11474
11475         * marshal.c: Implement more custom marshalling functionality. Fixes
11476         #64915.
11477
11478 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11479
11480         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11481
11482 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11483
11484         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11485
11486         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11487
11488         * icall.c: Fix some warnings.
11489
11490         * threads.c (abort_appdomain_thread): Fix unref errors.
11491         (mono_thread_current): Fix THREAD_DEBUG define.
11492
11493 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11494
11495         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11496
11497         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11498
11499 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11500
11501         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11502         string arrays.
11503
11504 2004-08-28  Martin Baulig  <martin@ximian.com>
11505
11506         * metadata.c
11507         (mono_metadata_generic_inst_is_valuetype): New public function.
11508
11509         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11510         mono_metadata_generic_inst_is_valuetype() if we're a generic
11511         instance to check whether our underlying type is a valuetype.
11512
11513 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11514
11515         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11516         #63768.
11517
11518 2004-08-25  Martin Baulig  <martin@ximian.com>
11519
11520         * loader.c (mono_get_method_from_token): Abstract methods can also
11521         be generic and thus have type parameters.
11522
11523         * metadata-internals.h
11524         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11525
11526         * reflection.c (mono_image_get_generic_param_info): Don't create a
11527         metadata row, just add an entry to the `gen_params' array.
11528         (build_compressed_metadata): Sort the `gen_params' array and then
11529         actually create the metadata.
11530
11531 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11532
11533         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11534
11535 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11536
11537         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11538
11539 2004-08-24  Martin Baulig  <martin@ximian.com>
11540
11541         * class.cs (mono_class_is_subclass_of): Like an interface, a
11542         generic instance also derives from System.Object.
11543
11544 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11545
11546         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11547         custom modifiers to be in any order. Fixes #61990.
11548
11549 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11550
11551         * object.c: Register mono_object_new_fast icall.
11552         
11553         * object.c (mono_class_get_allocation_ftn): Return to calling
11554         mono_object_new_fast, since it seems faster to compute the object 
11555         size in unmanaged code than passing it as a parameter.
11556
11557         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11558
11559         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11560         this function with Boehm as the oom handler, so we don't have to check
11561         the result of GC_malloc.
11562
11563         * object.c: Remove checks for oom.
11564
11565         * object.h object.c (mono_class_get_allocation_ftn): New function to
11566         return the icall which can be used to allocate an instance of a given
11567         class. 
11568
11569         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11570
11571         * class-internals.h: Add 'enabled' field.
11572
11573 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11574
11575         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11576
11577 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11578         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11579         value 0x0010.
11580
11581 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11582
11583         * appdomain.c: use the Tls function for appdomain too,
11584         at Zoltan's request. Actually return in mono_context_get
11585
11586         * appdomain.c, profiler.c, threads.c: use __thread
11587
11588 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11589
11590         * appdomain.c threads.c: Call GC_CreateThread on windows.
11591
11592         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11593         multiple libraries since this don't work on windows.
11594
11595 2004-08-18  Martin Baulig  <martin@ximian.com>
11596
11597         * class-internals.h
11598         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11599         MonoMethodHeader.
11600
11601         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11602         MonoMethodNormal since we also need it for abstract and interface
11603         methods.
11604
11605         * reflection.c
11606         (build_compressed_metadata): Sort the GenericParam table.
11607         (mono_image_create_token): Added `gboolean create_methodspec'
11608         argument; this is false when generating a MethodImpl token.
11609         (reflection_methodbuilder_to_mono_method): Abstract and interface
11610         methods may also have generic parameters.
11611
11612 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11613
11614         * appdomain.c: thread local alloc
11615
11616 2004-08-17  Martin Baulig  <martin@ximian.com>
11617
11618         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11619
11620         * icall.c
11621         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11622         argument.
11623
11624         * class.c (mono_type_get_full_name): New public function.
11625         (mono_type_get_name): Don't include the type arguments.
11626
11627 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11628
11629         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11630         for inclusion into the mono executable.
11631
11632 2004-08-16  Martin Baulig  <martin@ximian.com>
11633
11634         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11635         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11636
11637 2004-08-14  Martin Baulig  <martin@ximian.com>
11638
11639         * class.c (dup_type): Also copy the `byref' field.
11640
11641 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11642
11643         * reflection.c (create_dynamic_mono_image): Revert the last change 
11644         since it breaks bootstrap.
11645
11646 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11647
11648         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11649
11650         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11651         not free them with g_free.
11652
11653 2004-08-11  Martin Baulig  <martin@ximian.com>
11654
11655         * reflection.c (mono_reflection_setup_internal_class): Also call
11656         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11657
11658 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11659
11660         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11661         called during default (first) AppDomain creation. Keep track of
11662         Evidence when loading assemblies.
11663
11664 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11665
11666         * opcodes.c, opcodes.h: reduce runtime relocations.
11667
11668 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11669
11670         * culture-info.h, locales.c: fixes and chages to sue the new
11671         optimized format of the locale data.
11672         * culture-info-tables.h: regenerated.
11673
11674 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11675         
11676         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11677
11678 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11679
11680         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11681         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11682         * domain-internals.h: icall declaration.
11683         * icall.c: icall registration.
11684         * object-internals.h: New fields in MonoAssembly for CAS.
11685
11686 2004-08-05  Duncan Mak  <duncan@ximian.com>
11687
11688         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11689         CEE_LDELEM_ANY.
11690
11691 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11692
11693         * reflection.c: fix to deal with object[] arrays in custom ctors
11694         (bug #62550).
11695
11696 2004-08-05  Martin Baulig  <martin@ximian.com>
11697
11698         * class.c (mono_class_array_element_size): Added support for
11699         generic instances and correctly handle "recursive" types.
11700
11701 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11702
11703         * assembly.c: Fix warnings.
11704
11705 2004-08-04  Martin Baulig  <martin@ximian.com>
11706
11707         * class.c
11708         (mono_type_get_name_recurse): Added `gboolean include_arity'
11709         argument specifying whether or not we should include the generic
11710         arity in the type name.
11711         (_mono_type_get_name): New static function.
11712         (mono_class_setup_vtable): If we're a generic instance, don't
11713         include the generic arity in the names of explicit method
11714         implementations.        
11715
11716 2004-08-03  Martin Baulig  <martin@ximian.com>
11717
11718         * class.c (mono_type_get_name_recurse): Enclose the generic type
11719         arguments in `<', '>'.
11720
11721 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11722
11723         * gc.c: make GC warning messages use the trace API, they are just
11724         noise to most of the users.
11725
11726 2004-08-03  Martin Baulig  <martin@ximian.com>
11727
11728         * debug-mono-symfile.c (read_string): Correctly read the string.
11729
11730 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11731
11732         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11733         
11734         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11735         icalls.
11736         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11737
11738 2004-07-30  Martin Baulig  <martin@ximian.com>
11739
11740         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11741         Reflect latest symbol writer changes.   
11742
11743 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11744
11745         * object.c: always create an object if null is passed
11746         to Invoke() where a valuetype is expected.
11747
11748 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11749
11750         * marshal.c (mono_marshal_init): make managed
11751         signatures match native ones better for 64bits.
11752
11753 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11754
11755         * appdomain.c: hack to build correctly the private bin path on windows.
11756         Fixes bug #61991.
11757
11758 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11759
11760         * assembly.c: Load mscorlib from the correct framework directory
11761           (mono/<version>/mscorlib.dll).
11762         * appdomain.h: Added prototypes for new functions.
11763         * internals.h: Added some prototypes.
11764         * domain.c: When initializing the runtime, get from the executable and
11765           the configuration files the runtime version that the app supports.
11766           Added support methods for reading app.exe.config. Added list of versions
11767           supported by the JIT. Added two new methods: mono_init_from_assembly,
11768           which initializes the runtime and determines the required version from
11769           the provided exe file, and mono_init_version, which initializes
11770           the runtime using the provided version.
11771         * icall.c: Get machine.config from version-specific directory.
11772         * reflection.c: When generating an image, embed the version number
11773           of the current runtime.
11774
11775 2004-07-28  Dick Porter  <dick@ximian.com>
11776
11777         * socket-io.c
11778         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11779         returned sockaddr size before creating the remote address object.
11780         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11781         61608.
11782
11783 2004-07-28  Dick Porter  <dick@ximian.com>
11784
11785         * locales.c (string_invariant_compare_char): Fix invariant char
11786         compares between upper and lower cases.  Fixes bug 61458.
11787
11788 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11789         
11790         * marshal.c: actually cache stelem.ref wrappers.
11791         
11792 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11793
11794         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11795         sections and remove the mono_cli_rva_map () function.
11796
11797 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11798
11799         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11800         by Geoff Norton (<gnorton@customerdna.com>).
11801
11802 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11803
11804         * class.c: fix class loads for pointer types (typeof(int) !=
11805         typeof(int*)).
11806
11807 2004-07-27  Martin Baulig  <martin@ximian.com>
11808
11809         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11810         reading the debugging information from an external ".mdb" file.
11811
11812 2004-07-24  Martin Baulig  <martin@ximian.com>
11813
11814         * reflection.c (mono_image_get_type_info): Only write a class
11815         layout entry if we actually have a size or a packing size.
11816
11817 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11818
11819         * reflection.c (type_get_fully_qualified_name): 
11820         insert cast to get type checking of ?: with non-gcc compilers
11821
11822 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11823
11824         * rand.c: use g_getenv for both lookups of
11825         MONO_EGD_SOCKET
11826
11827 2004-07-17  Martin Baulig  <martin@ximian.com>
11828
11829         * reflection.c (mono_reflection_bind_generic_method_parameters):
11830         Set `gmethod->reflection_info'.
11831
11832 2004-07-17  Martin Baulig  <martin@ximian.com>
11833
11834         * class.c (mono_class_create_from_typedef): Insert the newly
11835         created class into the hash table before computing the interfaces
11836         since we could be called recursively.
11837
11838 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11839
11840         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11841         function to implement stelem.ref in managed code
11842         * class-internals.h, debug-helpers.c: a new wrapper type
11843         for the above.
11844
11845 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11846
11847         * gc.c: allow GC handles to work even when no GC is compiled in.
11848         Fix part of bug #61134 (GetAddrOfPinnedObject).
11849
11850 2004-07-13  Peter Williams  <peter@newton.cx>
11851  
11852         * process.c (complete_path): Make sure we don't attempt to execute
11853         directories.
11854  
11855 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11856
11857         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11858           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11859           and will add/subtract the hour if needed
11860
11861 2004-07-12  Martin Baulig  <martin@ximian.com>
11862
11863         * reflection.c (mono_field_get_object): If we have
11864         `field->generic_info', take the attributes from
11865         `field->generic_info->generic_type'.    
11866
11867 2004-07-12  Martin Baulig  <martin@ximian.com>
11868
11869         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11870         This function must be called before initializing the runtime.
11871         (mono_debug_init_1): New function; call this after initializing
11872         the runtime, but before loading the assembly.  It tells the
11873         debugger to load corlib and the builtin types.
11874
11875         * mono-debug-debugger.c: Did some larger changes in the debugging
11876         code; support recursive class declarations, make sure we actually
11877         add all classes.
11878
11879 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11880
11881         * debug-helpers.c: undo my previous patch and fixed the real issue in
11882         ../mini/exceptions-x86.c
11883
11884 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11885
11886         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11887         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11888         called from other .cctors.
11889
11890 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11891
11892         * loader.c: Removed the mono_loader_wine_init hack now that we are
11893         doing a managed version of Windows.Forms.
11894
11895 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11896
11897         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11898         threadpool.c, threads.c: remove static data from rootset.
11899
11900 2004-07-09  Dick Porter  <dick@ximian.com>
11901
11902         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11903         Don't do any more processing if the matched length was 0.  It was
11904         increasing the size of the string before.  Fixes bug 61167.
11905
11906 2004-07-09  Dick Porter  <dick@ximian.com>
11907
11908         * socket-io.h:
11909         * socket-io.c
11910         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11911         Add support for SO_PEERCRED if its available.
11912
11913 2004-07-09  Peter Bartok <pbartok@novell.com>
11914         * loader.c: winelib.exe.so error message is now only displayed if
11915         MONO_DEBUG is set. To help us avoid questions when people are trying
11916         out the new Managed.Windows.Forms.
11917
11918 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11919
11920         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11921         for isinst and castclass wrappers.
11922
11923         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11924         to libmetadata from the JIT, so they could be used by the marshalling
11925         code and the interpreter.
11926
11927         * marshal.c: Register marshalling related JIT icalls here instead of
11928         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11929         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11930
11931         * metadata.h: Remove unneeded marshalling conversions.
11932
11933         * opcodes.c: Update for new opcodes.
11934         
11935 2004-07-08  Martin Baulig  <martin@ximian.com>
11936
11937         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11938         (mono_debug_get_domain_data): Make this function static.
11939
11940 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11941
11942         * gc.c, object.h: add nice GC handle API for embedders.
11943
11944 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11945
11946         * reflection.c: more changes for the new api
11947
11948         * object.c: When we reflect on a field w/ a constant value, it
11949         will not have a memory location, so we must access metadata. Also,
11950         allow easier reading of strings so that we can read them from
11951         the constant data.
11952
11953         * class.c (mono_class_layout_fields): no need for literal fields here.
11954
11955         * class-internals.h: api changes for const fields
11956
11957         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11958
11959 2004-07-06  Martin Baulig  <martin@ximian.com>
11960
11961         * mono-debug.h: Increment version number to 44.
11962
11963         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11964         now a gpointer, rewrote this whole method.
11965
11966         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11967         function.  Add information about the wrapper in a new "misc table".
11968
11969         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11970         for the new misc table.
11971
11972 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11973
11974         * metadata-internals.h image.c: Add a cache for helper signatures.
11975
11976         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11977
11978 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11979
11980         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11981         delegates from a delegate. Fixes #61033.
11982         
11983         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11984         marshalling of stringbuilder arrays. Fixes #59900.
11985
11986 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11987
11988         * icall.c: Add EnumBuilder:setup_enum_type icall.
11989
11990 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11991
11992         * icall.c: Added a new icall for the property version of
11993         OffsetOfStringData.
11994
11995 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11996
11997         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11998         it has a constant size across platforms.
11999
12000         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
12001         stack trace.
12002
12003 2004-06-29  Martin Baulig  <martin@ximian.com>
12004
12005         * mono-debug.c (mono_debug_add_method): Protect the whole function
12006         in mono_debugger_lock(), not just parts of it.
12007
12008 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12009
12010         * reflection.c: make sure padding bytes in heaps are zeroed.
12011
12012 2004-06-24  David Waite  <mass@akuma.org>
12013
12014         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
12015         image.c, loader.c, locales.c, marshal.c, metadata.c,
12016         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
12017         string-icalls.c, threads.c: change to C90-style comments from C99 /
12018         C++ -style
12019
12020 2004-06-24  Dick Porter  <dick@ximian.com>
12021
12022         * threads.c
12023         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
12024         return createdNew.  Fixes bug 60412.
12025
12026         * threads-types.h: 
12027         * icall.c: Add createdNew parameter to CreateMutex icall
12028
12029 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12030
12031         * reflection.c, object-internals.h: save default value in params.
12032
12033 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12034
12035         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
12036         no need to build a new path combining that with the application base.
12037         Fixes bug #60442.
12038
12039 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
12040
12041         * reflection.c: fixed minor standard compliance issues.
12042
12043 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12044
12045         * reflection.c: fixed issue with encoding some custom attributes
12046         (arrays in properties and fields, bug #60411).
12047
12048 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12049
12050         * reflection.c: fix start address when copying the public key token.
12051
12052 2004-06-23  Martin Baulig  <martin@ximian.com>
12053
12054         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
12055         the `exc' object in a static object to put it into the GC's root set.
12056
12057 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
12058
12059         * reflection.c: make mono_reflection_setup_internal_class ()
12060         callable a second time to setup a new parent class.
12061
12062 2004-06-23  Dick Porter  <dick@ximian.com>
12063
12064         * threads.c: Check for WAIT_IO_COMPLETION return values.
12065
12066 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
12067
12068         * appdomain.c: Removed the g_free on the public key token. Now copy 
12069         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
12070         * assembly.c: Added public key token string value when loading 
12071         assemblies. Fix bug #60439.
12072         * icall.c: Added missing informations (like public key) in 
12073         GetReferencedAssemblies. Fix #60519.
12074         * image.h: Changed definition for public key token from const char*
12075         public_tok_value to guchar public_key_token [17];
12076         * reflection.c: Updated for changes to public key token.
12077
12078 2004-06-22  Lluis Sanchez Gual
12079
12080         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
12081         for the field in base classes.
12082
12083 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12084
12085         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
12086         mark headers as not supported, they are installed only for use by the
12087         debugger.
12088
12089 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
12090
12091         * *.c, *.h: avoid namespace pollution in public headers.
12092
12093 2004-06-21  Martin Baulig  <martin@ximian.com>
12094
12095         * exception.c (mono_get_exception_security): It's in
12096         "System.Security", not in "System".
12097
12098         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
12099         the exception classes.
12100
12101 2004-06-21  Martin Baulig  <martin@ximian.com>
12102
12103         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
12104         Protect the exception object from being finalized.
12105
12106 2004-06-21  Martin Baulig  <martin@ximian.com>
12107
12108         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12109         public function.
12110
12111 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12112
12113         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12114         if it was not loaded before. Fix parts of #60439.
12115
12116 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12117
12118         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12119         code that was broken since Ben's change: wrappers are now
12120         dependent on the method signature only again.
12121
12122 2004-06-21  Martin Baulig  <martin@ximian.com>
12123
12124         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12125         added interface support.
12126
12127 2004-06-21  Martin Baulig  <martin@ximian.com>
12128
12129         * class.c (mono_vtable_get_static_field_data): New public method.
12130
12131 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12132
12133         * filewatcher.c : Windows build fix to be compliant with API changes.
12134
12135 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12136
12137         * class.h, class.c: more accessors.
12138         * metadata.h, metadata.c: prepare for hiding MonoType and
12139         MonoMethodSignature: people should use the accessors from now on
12140         outside of the tree.
12141
12142 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12143
12144         * *.c, *.h: more API cleanups.
12145
12146 2004-06-18  Jackson Harper  <jackson@ximian.com>
12147
12148         * assembly.c: Trace loading assemblies.
12149         * loader.c: Trace loading native libraries.
12150         * mono-config.c: Trace loading config files.
12151         
12152 2004-06-18  Dick Porter  <dick@ximian.com>
12153
12154         * locales.c: Tell ICU the lengths of strings, it can cope with
12155         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12156
12157 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12158
12159         * image.c: swapped name/filename;
12160
12161 2004-06-18  Martin Baulig  <martin@ximian.com>
12162
12163         * mono-debug-debugger.c (write_class): Write the parent class at
12164         the end of the header.
12165
12166 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12167
12168         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12169
12170 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12171
12172         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12173         (bundle_obj): New conditional define.
12174         (BUILT_SOURCES): Remove.
12175         ($(bundle_srcs)): Make parallel-make safe.
12176         (libmonoruntime_la_LIBADD): Make unconditional.
12177         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12178         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12179
12180 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12181
12182         * culture-info-tables.h: It was inconsistent with the latest
12183           supp info files.
12184
12185 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12186
12187         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12188         be loaded.
12189
12190         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12191         with gcc 2.95.
12192
12193 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12194
12195         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12196         cleaned up public header threads.h.
12197
12198 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12199
12200         * Makefile.am, *.c, *.h: more API cleanups.
12201
12202 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12203
12204         * Makefile.am: removed monosn from compilation.
12205         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12206         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12207         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12208         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12209         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12210         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12211
12212 2004-06-15  Jackson Harper  <jackson@ximian.com>
12213
12214         * assembly.c: Make locales lower case when searching the GAC for
12215         assemblies. gacutil will always make locales lowercase when
12216         installing so this effectively makes them case insensitive.
12217         
12218 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12219
12220         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12221         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12222           parameter which allows to choose whether the wait can be interrupted or 
12223           not. Also added the method mono_monitor_enter(), which locks the monitor
12224           using an infinite wait and without allowing interruption.
12225           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12226           interrupted.
12227         * object.h: Added new fields in MonoThread. suspend_event holds the event
12228           used to susped/resume the thread. synch_lock is the lock object to use for
12229           modifying the thread state.
12230         * threads.c: Use the new synch_lock object for locking, instead of "this",
12231           which can generate deadlocks.
12232           Moved thread state change in Thread.Sleep and Thread.Join from managed
12233           to unmanaged code. This avoids a deadlock when the thread was suspended
12234           just after acquiring the thread lock.
12235           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12236           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12237           which is not fully implemented in the io-layer.
12238         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12239
12240 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12241
12242         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12243         threads-types.h: more API cleanups.
12244
12245 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12246
12247         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12248         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12249         threadpool.c, threads.c: first pass at the exported API cleanup.
12250
12251 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12252
12253         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12254
12255 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12256
12257         * icall.c: added internalGetHome.
12258
12259 2004-06-14  Dick Porter  <dick@ximian.com>
12260
12261         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12262         possible to return successfully when '.' or '..' were the only
12263         entries in a directory, but were skipped.  The MonoIOStat was not
12264         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12265         Fixes bug 59574.
12266
12267 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12268
12269         * reflection.c: make binaries run on .Net 1.1 by default.
12270
12271 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12272
12273         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12274
12275 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12276
12277         * marshal.c: keep track of struct size with explicit layout
12278         (bug #59979).
12279
12280 2004-06-12  Martin Baulig  <martin@ximian.com>
12281
12282         * mono-debug-debugger.c: Comment out a debugging g_message().
12283
12284 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12285
12286         * reflection.c, reflection.h: do not free custom attrs that are cached.
12287         * icall.c: use braces to make code clearer.
12288
12289 2004-06-11  Martin Baulig  <martin@ximian.com>
12290
12291         * class.h (MonoInflatedField): New type.
12292         (MonoClassField): Replaced `MonoType *generic_type' with
12293         `MonoInflatedField *generic_info'.
12294
12295         * icall.c
12296         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12297
12298 2004-06-11  Martin Baulig  <martin@ximian.com>
12299
12300         * reflection.c (mono_image_create_method_token): Correctly encode
12301         varargs methods.
12302
12303 2004-06-11  Martin Baulig  <martin@ximian.com>
12304
12305         * metadata.c (mono_metadata_parse_method_signature): When parsing
12306         a MethodDef which has VarArgs, also set sentinelpos if we don't
12307         have any parameters.
12308
12309 2004-06-11  Martin Baulig  <martin@ximian.com>
12310
12311         * verify.c (mono_method_verify): In CEE_CALL, use
12312         mono_method_get_signature() to get the method's signature, unless
12313         we're a PInvoke method.
12314
12315 2004-06-10  Jackson Harper  <jackson@ximian.com>
12316
12317         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12318         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12319         logical name as the supplied path is just a prefix to the gac not
12320         the direct path to it.
12321         
12322 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12323
12324         * reflection.c: make the token for a created method match
12325         the token of the MethodBuilder it was created from
12326         (IKVM requires this behaviour now).
12327
12328 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12329
12330         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12331         reflection.c, socket-io.c: leak fixes.
12332
12333 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12334
12335         * icall.c: handle sentinel pos in vararg methods in position different
12336         from 0.
12337
12338 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12339
12340         * culture-info-tables.h: freshly generated.
12341
12342 2004-06-09  Martin Baulig  <martin@ximian.com>
12343
12344         * loader.c (mono_get_method_constrained): Call `mono_class_init
12345         (constrained_class)'.   
12346
12347 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12348
12349         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12350         any methods. Fixes #59629.
12351
12352 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12353
12354         * culture-info-tables.h: reflecting locale-builder updates.
12355
12356 2004-06-08  Dick Porter  <dick@ximian.com>
12357
12358         * object.h:
12359         * locales.c: Fixed compile warnings, including a real bug in
12360         CompareInfo_internal_compare.
12361         
12362 2004-06-08  Dick Porter  <dick@ximian.com>
12363
12364         * locales.c
12365         (ves_icall_System_Globalization_CompareInfo_internal_index):
12366         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12367         Double-check the resuls of usearches, because ICU currently
12368         ignores most of the collator settings here.  Fixes bug 59720.
12369         
12370 2004-06-08  Dick Porter  <dick@ximian.com>
12371
12372         * locales.c
12373         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12374         Fix memory leak and segfault-causing typo.  No idea how this one
12375         lasted so long without being noticed.
12376
12377 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12378
12379         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12380         any methods. Fixes #59629.
12381
12382 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12383
12384         * assembly.c:
12385         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12386         own the critical section before). Removed dead code (that's done
12387         in the preload hook).
12388
12389         (mono_assembly_load_with_partial_name): call the preload hook.
12390
12391 2004-06-08  Martin Baulig  <martin@ximian.com>
12392
12393         * metadata.c (mono_metadata_signature_alloc): Default
12394         `sentinelpos' to -1.
12395
12396         * reflection.c (mono_image_get_array_token): Likewise.
12397
12398 2004-06-08  Martin Baulig  <martin@ximian.com>
12399
12400         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12401
12402         * metadata.c (mono_metadata_parse_method_signature): When parsing
12403         a MethodDef which has VarArgs, set sentinelpos.
12404
12405         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12406         `gint16' since we're using -1 for non-varargs methods.
12407
12408         * reflection.c
12409         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12410         (method_encode_signature): Added varargs support.
12411         (method_builder_encode_signature): Likewise.
12412         (mono_image_get_varargs_method_token): New static method.
12413         (mono_image_create_method_token): New public method; this is
12414         called via an icall instead of mono_image_create_token() when
12415         calling a varargs method.       
12416
12417 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12418
12419         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12420
12421 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12422
12423         * culture-info-tables.h : Reflecting the latest locale-builder that
12424           fixed empty array representation ({} to {0}).
12425
12426 2004-06-07  Jackson Harper  <jackson@ximian.com>
12427
12428         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12429         looking up extra gac paths. This allows MONO_GAC_PATH to act
12430         exactly like a prefix.
12431         
12432 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12433
12434         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12435         type name before modifying it. Fixes #59405.
12436
12437 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12438
12439         * culture-info.h: added fields for "all datetime patterns".
12440         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12441           _construct_datetime_format ()): fill xxx_patterns fields.
12442         * object.h: added fields for "all datetime patterns" to
12443           MonoDateTimeFormatInfo.
12444         * culture-info-tables.h: reflecting locale-builder updates.
12445
12446 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12447
12448         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12449         the event has no add and remove methods. Fixes #59629.
12450
12451 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12452
12453         * object.c: Fixed possible integer overflow when allocating large
12454         strings.
12455
12456 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12457
12458         * culture-info-tables.h: reflecting locale-builder updates.
12459
12460 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12461
12462         * culture-info-tables.h: reflecting locale-builder updates.
12463
12464 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12465
12466         * culture-info-tables.h: reflecting locale-builder updates.
12467
12468 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12469
12470         * threads.c: Made Thread.Sleep abortable.
12471
12472 2004-06-02  Martin Baulig  <martin@ximian.com>
12473
12474         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12475
12476         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12477
12478 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12479
12480         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12481
12482 2004-05-30  Jackson Harper  <jackson@ximian.com>
12483
12484         * reflection.c: Do not hardcode assembly versions or public key
12485         tokens anymore. All of this except the corlib section was dead
12486         code anyways.
12487         
12488 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12489
12490         * object.c (mono_runtime_invoke_array): Automatically create boxed
12491         objects for byref valuetypes if needed. Fixes #59300.
12492         
12493         * object.c (mono_method_return_message_restore): Handle 
12494         MONO_TYPE_OBJECT as well.
12495
12496 2004-05-28  Jackson Harper  <jackson@ximian.com>
12497
12498         * reflection.c: The modified type encoding was causing build
12499         problems. Reverted for now.
12500         
12501 2004-05-28  Jackson Harper  <jackson@ximian.com>
12502
12503         * reflection.c/h: Take an assembly ref so that we dont create
12504         fully qualified names when encoding types in the same assembly as
12505         the custom attribute being emitted.
12506         * appdomain.c: Increment version number.
12507         
12508 2004-05-26  Duncan Mak  <duncan@ximian.com>
12509
12510         * icall.c
12511         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12512         Set the full version number (major, minor, build, revision).
12513
12514 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12515
12516         * marshal.c (emit_struct_conv): increment src/dst after blit
12517         (mono_marshal_get_managed_wrapper,
12518         mono_marshal_get_native_wrapper): make sure we have marshalling
12519         info before marshalling params (info computation affects
12520         blittable)
12521
12522         * class.c (class_compute_field_layout): correctly deal with
12523         blittable
12524         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12525         value types (as per what windows dows by default)
12526         (mono_class_setup_mono_type): System.ValueType is blittable
12527         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12528         blittable
12529
12530         * marshal.c (mono_marshal_load_type_info): flag types  as
12531         non-blittable if the native layout doesn't match the managed
12532         layout
12533
12534 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12535
12536         * appdomain.c: don't add stuff in the private search path that is
12537         above the application base. If application base is not set, there's
12538         no private search path.
12539
12540 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12541
12542         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12543         byref struct arguments in native->managed marshalling.
12544
12545 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12546
12547         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12548         cache methods using signature (special case for methods
12549         that are value type or string class)
12550         
12551         * image.c (mono_image_close): clean up allocated GSList's
12552         in runtime_invoke_cache.
12553
12554 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12555
12556         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12557         there's no MONO_CFG_DIR environment variable defined.
12558
12559 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12560
12561         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12562
12563 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12564
12565         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12566           is interrumped.
12567         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12568           before waiting for it, and call CloseHandle after the wait to unref it.
12569           This will make sure that handles are not disposed too early.
12570
12571 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12572
12573         * appdomain.c:
12574         * appdomain.h:
12575         * icall.c: removed
12576         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12577         needed now.
12578
12579         * object.c: se the application_base only for the domain that runs
12580         Main. Fixes bug #59216,
12581
12582 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12583
12584         * appdomain.c:
12585         * object.c: only the domain in which Main is run have
12586         SetupInformation.ConfigurationFile set, so moved a few lines from
12587         appdomain.c to object.c.
12588
12589 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12590
12591         * appdomain.c: we tried to load [name].(dll|exe), but according
12592         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12593         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12594         There's a test case attached to bug #58922.
12595
12596 2004-05-27  Dick Porter  <dick@ximian.com>
12597
12598         * icall.c:
12599         * file-io.c: Implemented icalls for locking and unlocking regions
12600         in a file.
12601         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12602         FALSE on error (fixes both compiler warning and real bug.)
12603
12604 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12605
12606         * culture-info-tables.h: reflecting locale-builder updates.
12607
12608           (Added missing ChangeLog entry for 05/26)
12609
12610 2004-05-27  Jackson Harper  <jackson@ximian.com>
12611
12612         * locales.c: Fix some cut and paste errors.
12613         
12614 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12615
12616         * mono-config.c: set the correct path for config. directory on windows.
12617
12618 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12619
12620         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12621           on win32.
12622
12623 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12624
12625         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12626         from pinvoke functions.
12627         
12628         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12629
12630 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12631
12632         * culture-info-tables.h: reflecting locale-builder updates.
12633
12634 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12635
12636         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12637         #59086.
12638
12639 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12640
12641         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12642         * icall.c: Modified icalls for RNG.
12643         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12644         Windows (CryptoAPI).
12645
12646 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12647
12648         * locales.c: Fix build.
12649
12650 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12651
12652         * culture-info-tables.h: reflecting locale-builder updates.
12653
12654 2004-05-25  Jackson Harper  <jackson@ximian.com>
12655
12656         * locales.c: When creating the current culture use the $LANGs
12657         specific culture. So DateTimeFormat and NumberFormat entries are created.
12658         
12659 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12660
12661         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12662         a char array as parameter.
12663
12664 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12665
12666         * image.c: In mono_image_open(), always use an absolute path name to
12667           look for already loaded images.
12668
12669 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12670
12671         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12672         missing in the windows build (like older cygwin include files).
12673
12674 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12675
12676         * icall.c: Fixed check for possible integer overflow in Buffer_
12677         BlockCopy icall. Replaced comments style // by /* */.
12678
12679 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12680
12681         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12682         
12683         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12684         check after MONO_VTADDR. Fixes pinvoke2.exe.
12685
12686         * marshal.h marshal.c metadata.h: Add beginnings of support for
12687         ftnptr -> delegate marshalling.
12688
12689 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12690
12691         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12692         * threads.c: Fix warnings.
12693
12694 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12695
12696         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12697         * icall.c: Registered icalls for Suspend and Resume.
12698         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12699           Thread.Abort.
12700         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12701         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12702         * process.c: Use WaitForSingleObjectEx.
12703         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12704           checkpoints.
12705         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12706           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12707           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12708           background threads. Added basic support for Abort in Windows.
12709           Start new threads using a managed delegate invoke wrapper. This wrapper
12710           has an interruption checkpoint that is needed since an interruption
12711           can be requested before the thread leaves the unmanaged code that starts 
12712           the thread.
12713         * marshal.c: Added interruption checkpoint after every native call, and
12714           also before managed calls for wrappers called from unmanaged code to
12715           go into managed code.
12716         * object.h: Added new field in MonoThread to keep track of interruption
12717           requests.
12718
12719 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12720
12721         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12722         calls.
12723
12724 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12725
12726         * appdomain.c:
12727         * assembly.c:
12728         * gc.c:
12729         * locales.c:
12730         * mono-config.c:
12731         * rand.c: getenv -> g_getenv (windows!)
12732
12733         * process.c: complete_path is also used on non-windows platforms.
12734
12735 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12736
12737         * icall.c: new signature for Process_Start.
12738
12739         * process.[ch]: new signature for Process_Start. If we're on windows
12740         and UseShellExecute is false, we have to search for the program by
12741         ourselves if we don't get a full path.
12742
12743 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12744
12745         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12746         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12747
12748 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12749
12750         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12751         Fixes bug #58373.
12752
12753 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12754
12755         * process.c: use double quotes to quote program name and arguments on
12756         windows. Fixes bug #58575.
12757
12758 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12759
12760         * file-io.c: don't return "." and ".." when using windows Find*File.
12761
12762 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12763
12764         * marshal.c: Don't pass wrappers to message init because method 
12765         addressed used to lookup metadata. part of remoting[2|3] fix.
12766
12767 2004-05-15  Jackson Harper  <jackson@ximian.com>
12768
12769         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12770         path is essentially the same as MONO_PATH except that it points to
12771         GACs instead of lib directories.
12772         * loader.h: The user gac is gone so we dont need function to
12773         enable/disable it.
12774         * mono-config.c: user gac option is now gone.
12775         
12776 2004-05-15  Jackson Harper  <jackson@ximian.com>
12777
12778         * culture-info.h: Make defines more consistent, add calendar data
12779         to the culture info table.
12780         * culture-info-tables.h: Add basic calendar data. Basically
12781         everyone gets default gregorian until all the data is
12782         updated.
12783         * locales.c: Use the new consistent defines. Set calendar data for
12784         culture info objects.
12785         * object.h: add a field for calendar data to CultureInfo
12786         
12787 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12788
12789         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12790         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12791         a signature.
12792         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12793         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12794         an extra param that is the pointer of the method to invoke. The IL for
12795         the invoke method is no longer specific to the method, but to the
12796         signature of the method. Thus, we can share the same code for multiple
12797         methods. This reduces the number of methods that have to be compiled.
12798
12799 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12800
12801         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12802
12803         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12804
12805         * icall.c: Optimize Buffer.BlockCopy.
12806
12807 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12808
12809         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12810         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12811         quote). Changed them to "MMMM yyyy".
12812
12813 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12814
12815         * rand.c
12816         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12817
12818 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12819
12820         * reflection.h: Updated after changes to managed structures.
12821
12822         * appdomain.c: Bump corlib version.
12823
12824 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12825
12826         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
12827         windows.
12828
12829 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12830
12831         * Makefile.am: link to ../os/libmonoos.la on windows.
12832
12833         * assembly.c:
12834                 -If MONO_DEBUG, warn about non-existing directories in
12835                 MONO_PATH.
12836                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12837                 compile time variable.
12838                 -Removed init_default_path and call mono_set_rootdir from
12839                 libmonoos.a instead (windows only).
12840
12841         * assembly.h: declare mono_assembly_getrootdir().
12842
12843         * domain.c:
12844         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12845
12846         * loader.c: s/getenv/g_getenv/
12847
12848 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12849
12850         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12851
12852         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12853
12854         * metadata.h: Add new marshalling conversions.
12855
12856         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12857         function.
12858
12859         * reflection.c (mono_reflection_get_type): Lookup the type in all
12860         modules of a multi-module assembly. Fixes #58291.
12861
12862 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12863
12864         * threads.c: Before aborting a background, set the StopRequested
12865         state.  This avoids throwing the Abort exception.
12866         In mono_thread_manage, don't continue with the shutdown until all
12867         aborted threads have actually stopped.
12868
12869 2004-05-10  Jackson Harper  <jackson@ximian.com>
12870
12871         * locales.c: Remove the modifier from culture names.
12872         
12873 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12874
12875         * Makefile.am: monosn is not installed any more. It has been deprecated
12876         in favor of sn.
12877
12878 2004-05-07  Jackson Harper  <jackson@ximian.com>
12879
12880         * locales.c
12881         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12882         Fix array construction, add bailout if the length is 0.
12883
12884 2004-05-07  Dick Porter  <dick@ximian.com>
12885
12886         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12887         machine doesn't have a DNS entry.  Patch by Urs Muff
12888         (umuff@quark.com), fixes bug 57928.
12889
12890 2004-05-06  Jackson Harper  <jackson@ximian.com>
12891
12892         * reflection.c: Handle null PublicTokens properly. alloc mem for
12893         assembly names culture so we dont crash when freeing it.
12894         
12895 2004-05-06  Jackson Harper  <jackson@ximian.com>
12896
12897         * assembly.c: Check the usergac when loading with partial names.
12898         
12899 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12900
12901         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12902         does nothing for now (not required for Linux/Windows) but the class
12903         library can call it (and a newer or modified runtime could need it).
12904         * icall.c: Registred icall.
12905
12906 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12907
12908         * loader.c: prints a message on module loading error we set MONO_DEBUG
12909         environment variable.
12910
12911 2004-05-05  Jackson Harper  <jackson@ximian.com>
12912
12913         * appdomain.c: Handle PublicKeyToken=null properly.
12914         
12915 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12916
12917         * environment.c|h: Added icall ves_icall_System_Environment_
12918         GetOSVersionString to get the current OS version as a string.
12919         * icall.c: Registred icall.
12920
12921 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12922
12923         * object.c: in mono_object_get_virtual_method(), take into account that
12924         non-virtual methods don't have a slot in the vtable. Check needed when
12925         the object is a proxy.
12926
12927 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12928
12929         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12930         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12931
12932         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12933
12934         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12935         passed when a valuetype is expected.
12936
12937         * object.c (mono_unhandled_exception): Only set the exit code if the
12938         exception happens in the main thread. Fixes thread5.exe.
12939
12940         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12941         invalid names. Fixes #58047.
12942
12943 2004-05-03  Jackson Harper  <jackson@ximian.com>
12944
12945         * assembly.c: This line was committed accidently and is unneeded.
12946         
12947 2004-05-03  Jackson Harper  <jackson@ximian.com>
12948
12949         * icall.c: Add new icall for Assembly::LoadWithPartialName
12950         * assembly.c/.h: new function that probes the GAC to load partial
12951         assembly names by Paolo Molaro.
12952         
12953 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12954
12955         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12956         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12957         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12958         full type name.
12959
12960 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12961
12962         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12963         * reflection.c: fix bug when parsing a full type name and Version is not
12964         the last thing in the string.
12965
12966 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12967
12968         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12969         crashes when it is freed.
12970
12971 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12972
12973         * assembly.c: print the compat warning to stderr.
12974
12975 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12976
12977         * assembly.c (mono_assembly_load_references): Add a compatibility
12978         hack to run old applications that might be still referencing the
12979         3300-based assemblies, only do this for System.xxx.
12980
12981 2004-05-01  Jackson Harper  <jackson@ximian.com>
12982
12983         * appdomain.c: If the culture is neutral we set it to "".
12984         
12985 2004-04-29  Jackson Harper  <jackson@ximian.com>
12986
12987         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12988
12989 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12990  
12991         * string-icalls.c: added low overhead function for copying chars
12992         * icall.c: added needed icall for the above function
12993  
12994 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12995
12996         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12997         Environment.GetLogicalDrives.
12998
12999 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
13000
13001         * rand.c: try and talk to egd or prngd
13002         for random bytes if opening devices fail.
13003
13004 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
13005
13006         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
13007         alignment for the type using the native alignment of its members 
13008         instead of using klass->min_align.
13009
13010         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
13011
13012 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13013
13014         * file-io.c:
13015         * socket-io.c: added check for sys/aio.h.
13016
13017 2004-04-28  Dick Porter  <dick@ximian.com>
13018
13019         * threads.c: Don't abort a thread thats already aborting, when
13020         terminating everything.
13021
13022 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13023
13024         * icall.c: added 2 new async calls for Socket.
13025
13026         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
13027         IO on *nix systems.
13028
13029         * threadpool.c: removed unused variable.
13030
13031 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
13032
13033         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
13034
13035 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13036
13037         * locales.c: put back string_invariant_tolower () and
13038         string_invariant_toupper ().
13039
13040 2004-04-26 David Waite <mass@akuma.org>
13041
13042         * file-io.h:
13043         * socket-io.h:
13044         * threads.h:
13045         * unicode.h: remove comma from end of enumeration declarations
13046
13047 2004-04-26 David Waite <mass@akuma.org>
13048
13049         * debug-mono-symfile.h:
13050         * decimal.c:
13051         * mono_debug.h:
13052         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
13053
13054
13055 2004-04-26  Jackson Harper  <jackson@ximian.com>
13056
13057         * appdomain.c: Increment version number.
13058         
13059 2004-04-26  Jackson Harper  <jackson@ximian.com>
13060
13061         * appdomain.c: Set assembly references public token value when
13062         PublicKeyToken is specified, not the hash_value. Free public token
13063         values when free assembly name data. Previously the public key
13064         token was hex decoded, however we are using hex encoded public key
13065         tokens, so this is not neccasary.
13066         * assembly.c: Lookup assemblies in the gac if their public token
13067         value is set. Add function to allow enabling user gac
13068         lookups. Specify whether or not the assembly was loaded from the
13069         GAC. Compare full assembly names when checking the cache for
13070         assemblies (Temporarily disabled see comment in code). Remove
13071         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
13072         specifies trace-loader they get extra info to stdout on the
13073         loading of assemblies.
13074         * image.h: Add a field for an assembly references public token
13075         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
13076         whether an assembly has been loaded from the GAC.
13077         * image.c: Remove a corlib -> mscorlib name mapping.
13078         * loader.h: Add function to enable/disable the user gac.
13079         * mono-config.c: Check if the usergac is enabled in the config
13080         file.
13081         * icall.c: New icall to determine whether or not an assembly has
13082         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
13083         * tabldefs.h: Add constant for assemblyref flag that specifies a
13084         full public key is used instead of a public token.
13085         * reflection.c: Remove mscorlib -> corlib mappings. Set
13086         PublicTokenValue instead of hash value. This value is a hex
13087         string so it does not need to be expanded.
13088
13089 2004-04-26  Martin Baulig  <martin@ximian.com>
13090
13091         * mono-debug-debugger.c (mono_debugger_initialize): Set
13092         `mono_debugger_initialized' before calling mono_debug_lock().
13093
13094 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
13095
13096         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
13097           InternalToUpper/InternalToLower.
13098         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
13099           removed invariant culture shortcut.  This is now done in managed code.
13100         * locales.c: (string_invariant_toupper/tolower) removed.
13101
13102 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13103
13104         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
13105         Added Poll internal call.
13106
13107         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13108         call for Poll. Select was too heavy for polling a single socket.
13109
13110         * threadpool.[ch]: added mono_threadpool_cleanup.
13111         * threads.c: use it. Don't use Thread_Abort on windows.
13112
13113 2004-04-23  Martin Baulig  <martin@ximian.com>
13114
13115         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13116
13117 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13118
13119         * icall.c: Registred new icalls for key pair protection and added an
13120         icall for Environment.GetFolderPath on Windows.
13121         * security.c|h: Added new icalls for key pair protection.
13122
13123 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13124
13125         * socket-io.c: don't display the non-supported family warning for known
13126         families. Now this is not displayed on windows when checking support
13127         for IPv4/IPv6.
13128
13129 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13130
13131         * class.c: don't display the layout warning for static fields.
13132
13133 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13134
13135         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13136         * locales.c, locales.h: Added new icalls for culture-specific
13137         Char.ToLower and Char.ToUpper.
13138
13139 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13140
13141         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13142         by David Waite.
13143
13144 2004-04-20  Martin Baulig  <martin@ximian.com>
13145
13146         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13147         of the type name before passing it to mono_reflection_type_from_name().
13148
13149 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13150
13151         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13152         encodings here. Fixes #56965.
13153
13154 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13155
13156         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13157         fix test on strstr result not that I can see anything that
13158         relies on the result.
13159
13160 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13161
13162         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13163         Fixes #57081.
13164
13165         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13166
13167         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13168         function to determine which marshalling to use for strings. Fixes
13169         #56965.
13170
13171         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13172
13173         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13174
13175 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13176
13177         * icall.c: #include mono-config.h
13178
13179 2004-04-15  Jackson Harper  <jackson@ximian.com>
13180
13181         * culture-info-tables.h: Fix date formats for en-US culture.
13182         
13183 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13184
13185         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13186         ThreadPool.SetMinThreads.
13187         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13188         ThreadPool.SetMinThreads.
13189
13190 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13191
13192         * mono-config.c: also load the .config file in the directory
13193         where the assembly was found.
13194
13195 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13196
13197         * assembly.c: load per-assembly config files.
13198         * icall.c: decrapified code to get the config dir and moved to
13199         mono-config.c.
13200         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13201         per-assembly config files. When doing a dll map lookup give precedence
13202         to the per-assembly data.
13203
13204 2004-04-14  Martin Baulig  <martin@ximian.com>
13205
13206         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13207         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13208         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13209
13210         * mono-debugger-debugger.c: While the debugger is locked, remember
13211         whether the symbol tables have changes and send one single
13212         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13213
13214 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13215
13216         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13217
13218         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13219         function.
13220
13221         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13222         account when marshalling string arrays. Fixes #56965.
13223
13224 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13225
13226         * icall.c: Add new icalls mapping for security.
13227         * security.c|h: Add internal calls for WindowsIdentity,
13228         WindowsImpersonationContext and WindowsPrincipal.
13229
13230 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13231
13232         * class.c: Added comment to ensure the System.MonoDummy class
13233         is removed when no longer necessary
13234
13235 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13236
13237         * appdomain.c: Pass arguments to the bootstraping exceptions to
13238         minimize JITed methods at boot
13239
13240         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13241         second string to be null.
13242
13243         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13244         Change the protocol to minimize the JIT methods at startup.  Now
13245         it Returns the internal codepage, if the value of "int_code_page"
13246         is 1 at entry, and we can not compute a suitable code page
13247         number, returns the code page as a string.
13248
13249 2004-04-13  Jackson Harper  <jackson@ximian.com>
13250
13251         * culture-info-tables.h: Fix number of decimal digits for all
13252         english locales.
13253
13254 2004-04-13  Jackson Harper  <jackson@ximian.com>
13255
13256         * icall.c: Clairfy out of sync error message. It is not always
13257         your corlib that is out of sync.
13258
13259 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13260
13261         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13262         properties when only the set accessor is overriden. Fixes #55874.
13263
13264 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13265
13266         * assembly.c (mono_assembly_load_references): Make this thread safe.
13267         Fixes #56327.
13268
13269 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13270
13271         * monosn.c: Add missing initialization calls.
13272
13273 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13274
13275         * locales.c:
13276         ves_icall_System_Globalization_CultureInfo_construct_number_format
13277         Fix g_assert so it compiles on fussier compilers re int/ptr
13278         mismatch
13279
13280 2004-04-08  Dick Porter  <dick@ximian.com>
13281
13282         * socket-io.h:
13283         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13284         53992.  Also rearrange the code so that the internal calls return
13285         an error value and exceptions are thrown from managed code.
13286
13287         * icall.c: Add type info to the socket icalls.
13288
13289 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13290
13291         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13292         owes me a beer.
13293
13294 2004-04-07  Martin Baulig  <martin@ximian.com>
13295
13296         * class.c (mono_class_from_generic_parameter): Don't default
13297         `klass->parent' to `mono_defaults.object_type'.
13298
13299 2004-04-07  Martin Baulig  <martin@ximian.com>
13300
13301         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13302         `param->pklass->reflection_info'.       
13303
13304 2004-04-07  Jackson Harper  <jackson@ximian.com>
13305
13306         * culture-info-tables.h: Fix date separator symbol.
13307         
13308 2004-04-07  Martin Baulig  <martin@ximian.com>
13309
13310         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13311         from System.Type to System.MonoType.
13312
13313 2004-04-07  Martin Baulig  <martin@ximian.com>
13314
13315         * reflection.h
13316         (MonoReflectionGenericParam): Added `has_reference_type' and
13317         `has_value_type' fields.
13318
13319         * reflection.c (mono_image_get_generic_param_info): Encode the
13320         correct flags if we have the `class' or `struct' constraint.
13321
13322 2004-04-07  Martin Baulig  <martin@ximian.com>
13323
13324         * reflection.h
13325         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13326
13327 2004-04-07  Jackson Harper  <jackson@ximian.com>
13328
13329         * appdomain.c: Revert extra patches, just wanted to bump the
13330         version number.
13331         
13332 2004-04-07  Jackson Harper  <jackson@ximian.com>
13333
13334         * Makefile.am: Add culture-info private headers.
13335         * icall.c: Add new icalls for contructing locales.
13336         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13337         * locales.h: Declare new culture info construction methods.
13338         * object.h: Add new fields used to avoid the CultureMap to
13339         MonoCultureInfo.
13340         * culture-info.h: Definition of structs used in the culture info
13341         tables.
13342         * culture-info-tables.h: Autogenerated tables that contain culture
13343         info data. This file was generated with the locale-builder tool.
13344         * appdomain.c: Incement corlib version number.
13345         
13346 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13347
13348         * appdomain.c: (mono_runtime_init) move mono_thread_init
13349         to before mono_object_new calls so critical sections
13350         are initialized before use.
13351
13352 2004-04-07  Martin Baulig  <martin@ximian.com>
13353
13354         * icall.c
13355         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13356         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13357         (ves_icall_MonoGenericParam_initialize): Removed.
13358         (monogenericparam_icalls): Removed.
13359         (generictypeparambuilder_icalls): Added new table for
13360         System.Reflection.Emit.GenericTypeParameterBuilder.
13361
13362         * reflection.c
13363         (mono_reflection_define_generic_parameter): Removed.
13364         (mono_reflection_initialize_generic_parameter): This is now called
13365         from GenericTypeParameterBuilder's .ctor.
13366
13367 2004-04-06  Martin Baulig  <martin@ximian.com>
13368
13369         * class.c (mono_class_init): Don't inflate nested classes in a
13370         generic instance.
13371         (mono_type_get_name_recurse): Include the generic arguments for
13372         generic instances and generic type declarations.
13373         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13374         (_mono_class_get_instantiation_name): Removed.
13375         (mono_class_create_generic): Always use `gklass->name' as our name.
13376
13377         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13378
13379         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13380         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13381         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13382         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13383         closed generic methods here.
13384
13385         * reflection.c
13386         (mono_reflection_generic_inst_get_nested_types): Removed.
13387         (inflate_mono_method): Copy the generic parameters from the
13388         MonoMethodHeader into out MonoGenericMethod.
13389
13390 2004-04-06  Martin Baulig  <martin@ximian.com>
13391
13392         * row-indexes.h
13393         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13394
13395         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13396
13397         * reflection.c (build_compressed_metadata): If we have any entries
13398         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13399         set the header version to 1.1.
13400
13401 2004-04-06  Martin Baulig  <martin@ximian.com>
13402
13403         * class.c (mono_class_init): If we're a generic instance,
13404         initialize our nested classes, too.
13405         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13406         suffix. 
13407
13408 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13409
13410         * process.c: quote the argument passed to the shell on windows.
13411
13412 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13413
13414         * threads.c (mono_alloc_special_static_data): Allow this to be
13415         called during startup.
13416
13417 2004-04-02  Martin Baulig  <martin@ximian.com>
13418
13419         * icall.c
13420         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13421
13422 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13423
13424         * icall.c: Fix build.
13425
13426 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13427
13428         * Makefile.am: Added security.c|h.
13429         * icall.c: Added icall for get_UserName;
13430         * security.c: New file for security related icalls. Added function
13431         get_UserName for System.Environment (fix #56144).
13432         * security.h: New. Header file for security.c
13433
13434 2004-04-02  Dick Porter  <dick@ximian.com>
13435
13436         * icall.c: Deleted the icalls that were obsoleted some time ago
13437         by the ICU string code, and which were mixed into the icall
13438         rearranging.  Fixes bug 55969.
13439
13440         * string-icalls.h: 
13441         * string-icalls.c: Deleted the code that those icalls reference.
13442
13443 2004-04-01  Martin Baulig  <martin@ximian.com>
13444
13445         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13446
13447         * class.c (mono_class_from_generic_parameter): Don't set 
13448         TYPE_ATTRIBUTE_INTERFACE.
13449         (my_mono_class_from_generic_parameter): Likewise.
13450
13451 2004-04-01  Martin Baulig  <martin@ximian.com>
13452
13453         * loader.c (find_method): Added an optional `MonoClass *ic'
13454         argument to search in a specific interface.
13455         (mono_get_method_constrained): New public function.
13456
13457 2004-04-01  Martin Baulig  <martin@ximian.com>
13458
13459         * reflection.c (mono_image_get_generic_field_token): Use the
13460         `handleref' cache here.
13461
13462 2004-04-01  Martin Baulig  <martin@ximian.com>
13463
13464         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13465
13466         * reflection.c (create_generic_typespec): Use the `typespec' hash
13467         here, not the `typeref' one.    
13468
13469 2004-04-01  Martin Baulig  <martin@ximian.com>
13470
13471         * class.c (mono_class_inflate_generic_type): Moved the
13472         functionality into a new static inflate_generic_type() which
13473         returns NULL if it didn't do anything.  Only increment the
13474         `mono_stats.inflated_type_count' if we actually inflated
13475         something.
13476         (mono_class_get_full): Check the classes type to see whether we
13477         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13478
13479 2004-04-01  Jackson Harper  <jackson@ximian.com>
13480
13481         * reflection.c: Set culture for assembly references.
13482         
13483 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13484
13485         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13486
13487 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13488
13489         * assembly.c:
13490         (do_mono_assembly_open): the critical section also covers
13491         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13492
13493 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13494
13495         * threads.c:
13496         (mono_manage_threads): abort the background threads when finishing.
13497         Fixes bug #47232.
13498
13499 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13500
13501         * gc.c: only close the done_event handle if there was no timeout.
13502         C-ified comments.
13503
13504 2004-03-30  Martin Baulig  <martin@ximian.com>
13505
13506         * icall.c (icall_entries): It's called "System.Activator", not
13507         "System.Activation".    
13508
13509 2004-03-30  Martin Baulig  <martin@ximian.com>
13510
13511         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13512         (mono_class_create_from_typespec): Likewise.
13513
13514 2004-03-30  Martin Baulig  <martin@ximian.com>
13515
13516         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13517         `has_ctor_constraint' and `initialized'.
13518
13519 2004-03-30  Martin Baulig  <martin@ximian.com>
13520
13521         * reflection.c (encode_new_constraint): New static function to add
13522         the constructor constraint attribute to a type parameter.
13523         (encode_constraints): Call encode_new_constraint() if necessary.
13524
13525         * reflection.h
13526         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13527
13528         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13529         
13530 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13531
13532         * reflection.c, icall.c: add support for pinning variables. 
13533
13534 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13535
13536         * marshal.c (mono_marshal_get_managed_wrapper):
13537         init bool local with zero rather than null.
13538
13539 2004-03-29  Martin Baulig  <martin@ximian.com>
13540
13541         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13542         the "official" behavior here.
13543         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13544
13545 2004-03-29  Martin Baulig  <martin@ximian.com>
13546
13547         * icall.c: Reflect latest API changes.
13548
13549 2004-03-29  Martin Baulig  <martin@ximian.com>
13550
13551         * loader.c (mono_get_method_from_token): Also call
13552         mono_metadata_load_generic_params () for abstract and interface
13553         methods; replace the type arguments in the method signature with
13554         the ones which are loaded from the metadata.
13555
13556 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13557
13558         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13559         of the lock is not the current thread. MS.NET don't do it, in spite of
13560         what the documentation says. See bug #56157.
13561
13562 2004-03-28  Martin Baulig  <martin@ximian.com>
13563
13564         * class.c (mono_class_init): Don't call init_properties() and
13565         init_events() for generic instances; set `prop->parent' when
13566         inflating properties.
13567
13568         * reflection.c (mono_generic_inst_get_object): Call
13569         `mono_class_init (ginst->klass)'.
13570         (mono_type_get_object): Only create a MonoGenericInst if your
13571         generic type is a TypeBuilder.
13572         (do_mono_reflection_bind_generic_parameters): Only set
13573         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13574
13575 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13576
13577         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13578         Fixes #56091.
13579
13580 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13581
13582         * icall.c: added Kill_internal icall.
13583         * process.[ch]: added Kill_internal icall.
13584
13585 2004-03-25  Martin Baulig  <martin@ximian.com>
13586
13587         * class.h (MonoStats): Added `generic_instance_count',
13588         `inflated_method_count', `inflated_type_count' and
13589         `generics_metadata_size'.       
13590
13591 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13592
13593         * reflection.c: no warnings now.
13594
13595 2004-03-25  Martin Baulig  <martin@ximian.com>
13596
13597         * class.c (mono_class_get_full): New public function; does a
13598         mono_class_get(), but also takes a `MonoGenericContext *'.
13599
13600         * loader.c (mono_field_from_memberref): Renamed to
13601         `field_from_memberref', made static and added `MonoGenericContext *'
13602         argument.
13603         (mono_field_from_token): Added `MonoGenericInst *' argument.
13604         (method_from_memberef): Likewise.
13605         (mono_get_method_from_token): Likewise.
13606         (mono_get_method_full): New public function; does a
13607         mono_get_method(), but also takes a `MonoGenericContext *'.
13608
13609         * verify.c (mono_method_verify): Get the method's generic context
13610         and pass it to mono_field_from_token(), mono_get_method_full() and
13611         mono_class_get_full().
13612
13613 2004-03-25  Martin Baulig  <martin@ximian.com>
13614
13615         * class.c (mono_class_inflate_generic_type): Take a
13616         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13617         `MonoGenericMethod *'.
13618
13619 2004-03-25  Martin Baulig  <martin@ximian.com>
13620
13621         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13622         instead of the MonoGenericMethod here.
13623
13624 2004-03-25  Martin Baulig  <martin@ximian.com>
13625
13626         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13627         each time we create a new MonoGenericInst, we also create a new
13628         context which points back to us.
13629
13630         * class.c (inflate_method): Use `ginst->context' instead of
13631         creating a new context.
13632
13633         * loader.c (method_from_memberref): Use
13634         `klass->generic_inst->context' instead of creating a new context.
13635
13636 2004-03-25  Martin Baulig  <martin@ximian.com>
13637
13638         * class.h (MonoGenericContext): New struct.
13639         (MonoGenericMethod): Removed `generic_inst'.
13640
13641         * class.c (mono_class_inflate_generic_method): Take a
13642         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13643
13644 2004-03-25  Martin Baulig  <martin@ximian.com>
13645
13646         * loader.h (MonoMethodInflated): New typedef.
13647
13648         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13649         `generic_param_count' consume just 30 bits, added `is_inflated'
13650         and `has_type_parameters' flags (one bit each).
13651
13652         * class.c (mono_class_inflate_generic_method): Create a
13653         MonoMethodInflated instead of a MonoMethodNormal and set
13654         `is_inflated' in the method signature.
13655
13656         * class.h (MonoGenericMethod): Removed `generic_method'.
13657
13658 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13659
13660         * image.c: Make sure the name of a MonoImage is always an absolute path.
13661           This fixes bug #54415.
13662
13663 2004-03-24  Martin Baulig  <martin@ximian.com>
13664
13665         * class.c (mono_class_setup_vtable): If we're a generic instance,
13666         use our generic type's vtable size.
13667
13668 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13669
13670         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13671         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13672         problems.
13673
13674 2004-03-23  Martin Baulig  <martin@ximian.com>
13675
13676         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13677         `MonoEvent *events'.
13678
13679         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13680         (typebuilder_icalls): Added "get_event_info"; calls
13681         mono_reflection_event_builder_get_event_info(). 
13682
13683         * reflection.c (mono_reflection_generic_inst_initialize): Added
13684         `MonoArray *events'.
13685         (mono_reflection_event_builder_get_event_info): New function.
13686
13687 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13688
13689         * object.h: add mono_type_initialization_init
13690
13691         * object.c (mono_runtime_class_init): 
13692         implement class constructor synchronization rules
13693         to cope with threading issues.  
13694         add mono_type_initialization_init
13695
13696         * appdomain.c (mono_runtime_init): call 
13697         mono_type_initialization_init
13698
13699         * class.h: removing initializing field from MonoVTable
13700
13701 2004-03-23  Martin Baulig  <martin@ximian.com>
13702
13703         * class.c (my_mono_class_from_generic_parameter): Use
13704         `param->name' if it's not NULL. 
13705
13706 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13707
13708         * class.c: do not insert non-virtual methods in the vtable.
13709         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13710         that means the method is non-virtual. This never would have
13711         happened before.
13712
13713 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13714
13715         * profiler.c: Added lock for accessing coverage_hash.
13716
13717 2004-03-22  Martin Baulig  <martin@ximian.com>
13718
13719         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13720         `method->method->signature->generic_param_count != 0' to make it
13721         work for interface methods.
13722
13723 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13724
13725         * process.c: quote the string passed to the shell using g_shell_quote.
13726
13727 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13728
13729         * threads.c:
13730         (mono_threads_manage): don't remove the finalizer thread and self
13731         from the threads hash table so that mono_thread_manage can be called
13732         more than once.
13733
13734 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13735
13736         * process.c: quote the arguments when UseShellExecute is true. Fixes
13737         bug #55790.
13738
13739 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13740
13741         * threads.c: set mono_thread_detach as a cleanup routine for every
13742         thread. This way it's always executed upon thread termination, either
13743         aborted or finished normally. No more xsp hangs!
13744
13745 2004-03-17  Martin Baulig  <martin@ximian.com>
13746
13747         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13748         `int count_nested' and a `MonoType **nested'.
13749
13750         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13751         most of the functionality into a new static
13752         do_mono_reflection_bind_generic_parameters() and don't take a
13753         `MonoType *nested_in' argument any more.  Don't compute nested
13754         types here.
13755         (mono_reflection_generic_inst_get_nested_types): New public method
13756         to get nested types.
13757
13758         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13759         we're a nested class.
13760
13761         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13762         mono_reflection_generic_inst_get_nested_types() to compute the
13763         nested types.
13764
13765 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13766
13767         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13768         descriptive error message under windows.
13769         
13770 2004-03-17  Martin Baulig  <martin@ximian.com>
13771
13772         * class.c (dup_type): Added `const MonoType *original' argument;
13773         copy the attrs from the original type.
13774
13775 2004-03-17  Martin Baulig  <martin@ximian.com>
13776
13777         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13778         `m->generic_inst_cache' here.
13779
13780 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13781
13782         * exception.h exception.c: Add stack_overflow_exception.
13783
13784 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13785
13786         * threadpool.c:
13787         (overlapped_callback): call SetEvent *after* invoking the callback.
13788         No need to call CloseHandle.
13789
13790 2004-03-16  Martin Baulig  <martin@ximian.com>
13791
13792         * reflection.c (mono_image_get_fieldref_token): Take a
13793         `MonoReflectionField *' instead of a `MonoClassField *' and a
13794         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13795
13796 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13797
13798         * appdomain.c: don't add the culture to the filename we're looking for
13799         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13800
13801 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13802
13803         * locales.c: don't ignore symbols when doing case insensitive compares.
13804         Thanks Dick! Fixes bug #54046.
13805
13806         * threads.c: surround 'threads' usage with enter/leave in
13807         mono_thread_manage.
13808
13809 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13810
13811         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13812         implicitly marshalled as [Out]. Fixes #55450.
13813
13814         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13815         an exception.
13816
13817 2004-03-16  Martin Baulig  <martin@ximian.com>
13818
13819         * class.c (mono_class_from_generic_parameter): Use the actual
13820         parameter name. 
13821
13822 2004-03-16  Martin Baulig  <martin@ximian.com>
13823
13824         * reflection.c (type_get_signature_size): New static function.
13825         Compues the size of the type in a method signature.
13826         (method_get_signature_size): New static function; calls
13827         type_get_signature_size() to compute the actual size of the
13828         method's signature.
13829         (method_encode_signature): Use method_get_signature_size() to get
13830         the signature's size rather than using `nparams * 10'.
13831
13832 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13833
13834         * file-io.h: define here WapiOverlapped on windows. I don't want the
13835         regular OVERLAPPED one.
13836
13837         * file-io.c:
13838         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13839         Disabling AIO on windows.
13840
13841 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13842
13843         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13844         bug #55385.
13845
13846 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13847
13848         * appdomain.c: upgraded corlib version.
13849
13850         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13851         and BeginWrite. Allow opening files for asynchrnous operations.
13852
13853         * file-io.h: new struct that maps FileStreamAsyncResult.
13854         * icall.c: added new icalls.
13855         * process.[ch]: support setting child process environment variables
13856         and use the SHELL or COMSPEC when UseShellExecute is true.
13857
13858         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13859         callback for async. IO is here and also BindHandle.
13860
13861         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13862         from here.
13863
13864 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13865
13866         * reflection.c (create_custom_attr): Allow len == 0.
13867
13868         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13869         computation on big-endian machines.
13870
13871 2004-03-13  Martin Baulig  <martin@ximian.com>
13872
13873         * class.h (MonoGenericInst): Added `int count_ifaces'.
13874
13875         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13876         `ginst->count_ifaces' instead `klass->interface_count' since we
13877         may get called before the vtable is created.
13878
13879         * loader.c (mono_method_get_param_names): If we're a generic
13880         instance, return and don't initialize the class.
13881
13882         * reflection.c (mono_reflection_setup_generic_class): Don't call
13883         ensure_runtime_vtable().
13884         (mono_reflection_bind_generic_parameters): Set
13885         `ginst->count_ifaces'.
13886
13887 2004-03-11  Jackson Harper <jackson@ximian.com>
13888
13889         * icall.c:
13890         * unicode.c:
13891         * unicode.h: Remove unused System.Char icalls.
13892         
13893 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13894
13895         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13896         code when we P/Invoke the first library in Windows.Forms, instead
13897         of when we first open the assembly.
13898
13899         * assembly.c: Drop the lookup from here.
13900
13901 2004-03-10  Martin Baulig  <martin@ximian.com>
13902
13903         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13904         class for properties, fields and events.  Finally fixes #54945.
13905
13906 2004-03-10  Martin Baulig  <martin@ximian.com>
13907
13908         * metadata.c (mono_metadata_class_equal): New static function;
13909         checks whether two generic instances or two generic parameters are
13910         equal.
13911         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13912         compare classes.        
13913
13914 2004-03-10  Martin Baulig  <martin@ximian.com>
13915
13916         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13917
13918         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13919         argument and write it into the `reflection_info' field.
13920
13921         * icall.c
13922         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13923         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13924
13925 2004-03-09  Jackson Harper  <jackson@ximian.com>
13926
13927         * char-conversions.h: use 8 bits for numeric data its all we need
13928         * icall.c: numeric data is only 8 bits now.
13929
13930 2004-03-09  Martin Baulig  <martin@ximian.com>
13931
13932         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13933
13934         * class.c (init_properties, init_events): Initialize the new
13935         `parent' field.
13936
13937         * reflection.c (typebuilder_setup_properties): Likewise.
13938         (typebuilder_setup_events): Likewise.
13939
13940         * reflection.h (MonoEventInfo): Replaced `parent with
13941         `declaring_type' and `reflected_type'.
13942
13943         * icall.c (ves_icall_get_property_info): Distinguish between
13944         declaring and reflected type.
13945         (ves_icall_get_event_info): Likewise.
13946
13947 2004-03-09  Martin Baulig  <martin@ximian.com>
13948
13949         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13950         (ves_icall_Type_GetField): Correctly set field->klass.
13951
13952 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13953
13954         * loader.h: Fix warning.
13955
13956 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13957
13958         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13959         library routine if present.  Notice that it will still continue
13960         executing even if its missing, for those working on the Gtk#
13961         edition of Windows.Forms.
13962
13963         * assembly.c (do_mono_assembly_open): If loading the
13964         System.Windows.Forms call mono_loader_wini_init.
13965
13966 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13967
13968         * class.h: Added MonoRemoteClass struct.
13969         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13970         function for MonoStrings.
13971         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13972         Added internal call for getting the proxy type.
13973         * marshal.c: Get the type of transparent proxies from its remote_class.
13974         Added methods that generate the IL for type checks and casts:
13975         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13976         mono_marshal_get_proxy_cancast.
13977         * marshal.h: Declaration of the previous new methods.
13978         * object.c: Added new moethods for creating and updating MonoRemoteClass
13979         instances: mono_remote_class, mono_upgrade_remote_class, 
13980         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13981         * verify.c: FIx transparent_proxy_fields layout.
13982         * appdomain.c: Bump corlib version.
13983
13984 2004-03-04  Jackson Harper  <jackson@ximian.com>
13985
13986         * icall.c: Add icall to access char conversion tables.
13987         * char-conversions.h: Character conversion tables.
13988         * Makefile.am: Add char-conversions.h private header file.
13989         
13990 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13991
13992         * appdomain.c (unload_thread_main): Increase unloading timeout to
13993         10 sec as a temporary workaround for Nant problems.
13994
13995 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13996
13997         * gc.c: Add checks for GC_enable and GC_disable.
13998
13999         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
14000         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
14001         (bug #54988).
14002         
14003 2004-02-27  Martin Baulig  <martin@ximian.com>
14004
14005         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14006         `MonoReflectionType *' instead of a `MonoType *'.
14007
14008 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
14009
14010         * gc.c (run_finalize): Avoid finalizing the object representing the
14011         finalizer thread.
14012         (finalizer_thread): Fix warning.
14013
14014 2004-02-25  Martin Baulig  <martin@ximian.com>
14015
14016         * class.c (_mono_class_get_instantiation_name): Added `int offset'
14017         argument for nested types.
14018         (mono_class_create_generic): Added support for nested generictypes.
14019
14020         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
14021         `GList *nested'.
14022
14023         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
14024
14025         * reflection.c (method_encode_signature): Increase the minimum
14026         value of `size' from 10 to 11.
14027         (mono_reflection_bind_generic_parameters): Take `int type_argc'
14028         and `MonoType **types' arguments instead of the `MonoArray
14029         *types'; added `MonoType *nested_in'.  Recursively instantiate
14030         nested classes. 
14031
14032 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
14033
14034         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
14035         stack_overflow_ex members which are used by exception handling.
14036
14037         * appdomain.c (mono_runtime_init): Initialize the new members.
14038
14039         * gc.c (mono_gc_enable): New helper function.
14040         * gc.c (mono_gc_disable): New helper function.
14041
14042 2004-02-23  Martin Baulig  <martin@ximian.com>
14043
14044         * icall.c: I must have been really stupid - make it actually work
14045         this time ;-)
14046
14047 2004-02-23  Martin Baulig  <martin@ximian.com>
14048
14049         * loader.c (method_from_memberref): Only inflate the method if
14050         it's in another klass.
14051
14052 2004-02-23  Martin Baulig  <martin@ximian.com>
14053
14054         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
14055         (mono_class_init): If we're a generic instance and an interface,
14056         compute `class->interface_id'; also create `class->interfaces'
14057         here and inflate them.
14058
14059         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
14060         `ginst->is_open'.
14061         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
14062
14063         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
14064
14065 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
14066
14067         * reflection.c (method_encode_code): Improved the error message
14068         generated by the exception.
14069
14070 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14071
14072         * icall.c: Martin did not do what he said in the ChangeLog for
14073         2004-02-18, but put back the changes for properties and events.
14074         Commenting those changes out again and adding comment to bug #54518.
14075         
14076         * process.c: removed warning.
14077
14078 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
14079
14080         * marshal.c (emit_struct_conv): Print an error message instead of
14081         asserting when a type does not have the StructLayout attribute.
14082
14083 2004-02-20  Martin Baulig  <martin@ximian.com>
14084
14085         * reflection.c (mono_type_get_object): Also use the cache for
14086         generic instances.
14087         (mono_reflection_bind_generic_parameters): Always compute
14088         `ginst->ifaces'.        
14089
14090 2004-02-20  Martin Baulig  <martin@ximian.com>
14091
14092         * class.h (MonoGenericMethod): Removed `klass'.
14093
14094         * class.c (mono_class_inflate_generic_method): Added `MonoClass
14095         *klass' argument.
14096
14097 2004-02-20  Martin Baulig  <martin@ximian.com>
14098
14099         * reflection.c (method_encode_methodspec): Actually use the
14100         uninflated signature for the memberref.
14101
14102 2004-02-20  Martin Baulig  <martin@ximian.com>
14103
14104         * class.h (MonoGenericMethod): Removed `declaring'.
14105
14106         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14107         is NULL, compute it here.
14108
14109 2004-02-20  Martin Baulig  <martin@ximian.com>
14110
14111         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14112
14113         * metadata.c (mono_metadata_generic_inst_hash): New method.
14114         (mono_metadata_generic_inst_equal): New method.
14115
14116         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14117         `klass->image->generic_inst_cache' cache to avoid creating
14118         duplicate MonoGenericInst's.
14119
14120         * class.c (mono_class_inflate_generic_type): Use the cache.
14121
14122 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14123
14124         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14125
14126 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14127
14128         * icall.c: added Socket.WSAIoctl icall.
14129
14130         * socket-io.[ch]: implemented
14131         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14132
14133 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14134
14135         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14136
14137 2004-02-18  Urs C Muff  <umuff@quark.com>
14138
14139         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14140         this work on PPC and other big-endian architectures.
14141
14142         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14143         fields with an underscore to make sure they're only accessed by
14144         the read32() macro.
14145
14146 2004-02-18  Martin Baulig  <martin@ximian.com>
14147
14148         * icall.c: Put the klass->refclass changes back for methods and
14149         fields, but not for properties and events.  We're currently not
14150         distinguishing between DeclaringType and ReflectedType for
14151         properties and events, that's what caused the regressions.
14152
14153 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14154
14155         * object.c:
14156         (mono_async_result_new): the handle can be NULL.
14157
14158         * threadpool.c: Use an event instead of a semaphore, don't initialize
14159         it until needed. This saves quite a few semaphores from being created
14160         when using the threadpool.
14161
14162 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14163
14164         * object.c (mono_string_is_interned_lookup): Fix interning of long
14165         strings. Fixes #54473.
14166
14167         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14168
14169         * icall.c: Revert the klass->refclass changes since they introduce
14170         regressions (bug #54518).
14171
14172 2004-02-18  Martin Baulig  <martin@ximian.com>
14173
14174         * class.c (mono_class_init): If we're a generic instance and don't
14175         come from a TypeBuilder, inflate our members here.
14176         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14177         (mono_class_create_generic): New public method.
14178         (mono_class_initialize_generic): Removed.
14179         (get_instantiation_name): Renamed to
14180         _mono_class_get_instantiation_name() and made it public.
14181
14182 2004-02-18  Martin Baulig  <martin@ximian.com>
14183
14184         * class.c (mono_class_inflate_generic_type): Clear the new
14185         instance's `nginst->klass' when inflating a generic instance.
14186         (mono_class_is_subclass_of): Added (basic) support for generic
14187         instances.
14188
14189 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14190
14191         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14192         MonoMempool to hold compiled native code.
14193
14194 2004-02-17  Martin Baulig  <martin@ximian.com>
14195
14196         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14197         `properties'.
14198
14199         * reflection.c (mono_reflection_generic_inst_initialize): Added
14200         `MonoArray *properties' argument.
14201
14202         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14203
14204 2004-02-17  Martin Baulig  <martin@ximian.com>
14205
14206         * icall.c (ves_icall_Type_GetFields): Renamed to
14207         ves_icall_Type_GetFields_internal() and added a
14208         `MonoReflectionType *rtype' argument; pass it to
14209         mono_field_get_object() to set the field's "reflected" type.
14210         (ves_icall_Type_GetConstructors): Likewise.
14211         (ves_icall_Type_GetEvents): Likewise.
14212         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14213         argument; pass it to mono_method_get_object() to set the method's
14214         "reflected" type.       
14215
14216 2004-02-17  Martin Baulig  <martin@ximian.com>
14217
14218         * class.h (MonoDynamicGenericInst): New type.
14219         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14220
14221         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14222         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14223         (ves_icall_MonoGenericInst_GetFields): New interncall.
14224
14225         * class.c (mono_class_from_generic): Don't call
14226         mono_class_initialize_generic() if this is a dynamic instance;
14227         ie. it's being created from a TypeBuilder.
14228         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14229         `class->byval_arg.type'.
14230
14231         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14232         to `inflate_method' and made static.
14233         (mono_reflection_inflate_field): Removed.
14234         (mono_reflection_generic_inst_initialize): New public method.
14235
14236         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14237         `ctors' and `fields'; added `initialized'.
14238
14239 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14240
14241         * debug-helpers.c (mono_method_full_name): Fix output for empty
14242         namespaces.
14243
14244 2004-02-12  Martin Baulig  <martin@ximian.com>
14245
14246         * class.h (MonoClassField): Added `MonoType *generic_type'.
14247
14248         * reflection.c (mono_image_get_fieldref_token): Added support for
14249         instantiated generic types.
14250         (field_encode_inflated_field): Removed.
14251         (mono_image_get_inflated_field_token): Removed.
14252         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14253
14254         * reflection.h (MonoReflectionInflatedField): Removed.
14255
14256 2004-02-12  Martin Baulig  <martin@ximian.com>
14257
14258         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14259         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14260
14261         * reflection.c (mono_image_get_methodspec_token): Take a
14262         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14263         (mono_image_create_token): Check whether we have a
14264         `method->signature->gen_method' and call
14265         mono_image_get_methodspec_token() if appropriate.
14266         (inflated_method_get_object): Removed.
14267         (mono_reflection_bind_generic_method_parameters): Return a
14268         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14269         (mono_reflection_inflate_method_or_ctor): Likewise.
14270
14271         * reflection.h (MonoReflectionInflatedMethod): Removed.
14272
14273 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14274
14275         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14276         for custom valuetype marshalling.
14277
14278         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14279
14280 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14281
14282         * icall.c: fixed WSAGetLastError_internal name.
14283
14284 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14285
14286         * threads.c (mono_thread_attach): Allow this to be called multiple
14287         times for a thread.
14288         
14289         * threads.c (build_wait_tids): Do not wait for ourselves.
14290
14291         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14292         appdomain list is empty.
14293
14294         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14295         memory returned by mono_string_builder_to_utf16, since it points into
14296         managed memory. Thanks to Bernie Solomon for noticing this.
14297
14298         * icall.c: Add AppDomainSetup icalls.
14299
14300         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14301
14302         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14303         types.
14304
14305         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14306         custom attributes to the method_aux struct. Also fix array indexes etc.
14307
14308         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14309         
14310 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14311
14312         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14313         (both static and runtime) and reduce startup time.
14314
14315 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14316
14317         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14318         AsAny marshalling conversion instead of crashing.
14319
14320         * marshal.c: Fix warnings.
14321
14322 2004-02-09  Martin Baulig  <martin@ximian.com>
14323
14324         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14325
14326         * reflection.h (MonoReflectionInflatedMethod): Removed the
14327         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14328
14329         * reflection.c (method_encode_methodspec): Removed the `method'
14330         argument; we get it from `gmethod->declaring'.
14331         (inflated_method_get_object): Removed the `declaring' argument.
14332
14333 2004-02-09  Martin Baulig  <martin@ximian.com>
14334
14335         * class.h (MonoGenericMethod): New type.
14336         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14337         `generic_method'.
14338
14339         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14340         a `MonoGenericMethod *gen_method' one.
14341
14342         * class.c (mono_class_inflate_generic_type): Take an additional
14343         `MonoGenericMethod * argument.  This is only non-NULL if we're
14344         inflating types for a generic method.   
14345         (mono_class_inflate_generic_signature): Renamed to
14346         inflate_generic_signature() and made static; take a
14347         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14348         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14349         instead of a `MonoGenericInst *' one.
14350         (mono_class_inflate_generic_method): Likewise.
14351
14352         * reflection.c (encode_generic_method_sig): Take a
14353         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14354         (method_encode_methodspec): Likewise.
14355         (inflated_method_get_object): Likewise. 
14356
14357         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14358         field with a `MonoGenericMethod *gmethod' one.  
14359
14360 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14361
14362         * class.h (mono_class_has_parent): add parens to expansion
14363         so you can ! this.
14364
14365 2004-02-08  Martin Baulig  <martin@ximian.com>
14366
14367         * image.h (MonoImage): Removed `generics_cache'.
14368
14369         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14370         instead of a `MonoType *' argument; removed the `inflate_methods'
14371         argument.  Don't inflate methods here.
14372
14373         * loader.c (find_method): If it's a generic instance, call
14374         mono_class_init() on the `sclass->generic_inst->generic_type'.
14375
14376         * metadata.c (mono_type_size): Make this work on uninitialized
14377         generic instances; call it on the `ginst->generic_type's class.
14378
14379         * reflection.c (mono_reflection_bind_generic_parameters): Call
14380         mono_class_from_generic() to create the `ginst->klass'.
14381
14382 2004-02-08  Martin Baulig  <martin@ximian.com>
14383
14384         * class.h (MonoClass): Changed type of `generic_inst' from
14385         `MonoType *' to `MonoGenericInst *'.
14386
14387 2004-02-08  Martin Baulig  <martin@ximian.com>
14388
14389         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14390         mono_type_get_object(), this is now creating a `MonoGenericInst'
14391         for MONO_TYPE_GENERICINST.
14392         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14393         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14394
14395         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14396         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14397         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14398         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14399         and reflected type.
14400
14401         * reflection.h (MonoReflectionInflatedMethod): Removed
14402         `declaring_type' and `reflected_type'.
14403
14404 2004-02-08  Martin Baulig  <martin@ximian.com>
14405
14406         * class.h (MonoGenericInst): Added `MonoType *parent' and
14407         `MonoType **ifaces'.
14408
14409         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14410         `parent' and `interfaces'.
14411
14412         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14413         `MonoType *' argument and return a `MonoType *'.
14414
14415         * icall.c
14416         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14417         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14418
14419 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14420
14421         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14422         valuetype marshalling.
14423
14424 2004-02-06  Martin Baulig  <martin@ximian.com>
14425
14426         * class.c
14427         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14428         (my_mono_class_from_generic_parameter): Likewise.
14429
14430 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14431
14432         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14433         contents of the symbol files lazily.
14434
14435         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14436
14437         * threads.h threads.c icall.c: New icalls for getting and setting the
14438         threads name.
14439
14440 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14441
14442         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14443         Raise an exception when the domain is not found.
14444
14445 2004-02-03  Martin Baulig  <martin@ximian.com>
14446
14447         * reflection.c (mono_image_get_methodspec_token): Use the
14448         uninflated signature; fixes gen-33.
14449
14450 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14451
14452         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14453         the finalizer code can use thread functionality.
14454
14455         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14456         the finalizer thread.
14457
14458         * threads.c: Make some functions more robust.
14459
14460         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14461
14462         * metadata.h: Add new marshalling conventions.
14463
14464         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14465         stringbuilder marshalling. Fixes #53700.
14466
14467         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14468
14469         * reflection.c (mono_image_get_type_info): Save declarative security
14470         info.
14471
14472         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14473         unmanaged fields as well.
14474
14475         * appdomain.c: Bump corlib version.
14476
14477 2004-02-01  Martin Baulig  <martin@ximian.com>
14478
14479         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14480         method type arguments.  
14481
14482 2004-01-30  Duncan Mak  <duncan@ximian.com>
14483
14484         * marshal.h: Add prototype for
14485         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14486         and
14487         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14488         fix the build.
14489
14490 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14491
14492         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14493         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14494
14495 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14496
14497         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14498         custom marshalling of valuetypes.
14499
14500         * marshal.c: Fix some warnings.
14501
14502 2004-01-29  Martin Baulig  <martin@ximian.com>
14503
14504         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14505         for generic method parameters.
14506
14507         * reflection.c (method_encode_methodspec): Write the uninflated
14508         signature into the methodspec table.
14509         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14510         is always the uninflated method.
14511         (reflection_methodbuilder_to_mono_method): Copy the generic
14512         parameters from the MethodBuilder into `header->gen_params'.
14513
14514 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14515
14516         * class.c (mono_class_from_generic_parameter): Fix warning.
14517
14518 2004-01-27  Martin Baulig  <martin@ximian.com>
14519
14520         * class.c (mono_class_from_generic_parameter): Don't create
14521         `klass->methods' here.  
14522
14523 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14524
14525         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14526         extension since it does not work with libraries named lib<FOO>.dll.so.
14527
14528 2004-01-25  Martin Baulig  <martin@ximian.com>
14529
14530         * class.c (mono_class_inflate_generic_type): Added support for
14531         MONO_TYPE_GENERICINST.
14532
14533         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14534         inflate methods on open constructed types.      
14535
14536 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14537
14538         * object.c: fire ProcessExit event in the root AppDomain after running
14539         Main. Fixes bug #53299.
14540
14541 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14542
14543         * socket-io.c: include the new socket-wrappers.h header.
14544         Use the wrappers instead of the unix socket functions to make the code
14545         more clear.
14546
14547 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14548
14549         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14550
14551         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14552         Fixes #22532.
14553
14554 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14555
14556         * reflection.c (mono_image_create_pefile): Handle the case when the
14557         entry point is not a MethodBuilder.
14558
14559         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14560         field to ReflectionMethod since it is not allways a builder.
14561
14562         * reflection.c (type_get_fully_qualified_name): New helper function to
14563         return the fully qualified name of a type.
14564
14565         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14566         type name for custom marshallers.
14567
14568         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14569
14570         * class.c (mono_class_setup_vtable): If a parent class already 
14571         implements an interface, use the implementing methods from that class.
14572         Fixes #53148.
14573
14574 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14575
14576         * threadpool.c: just return instead of ExitThread to allow for thread
14577         clean up earlier.
14578
14579 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14580
14581         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14582         when closing resource modules.
14583
14584         * reflection.c (mono_image_create_pefile): Handle the case when the
14585         entry point is not a MethodBuilder.
14586
14587         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14588         field to ReflectionMethod since it is not allways a builder.
14589
14590 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14591
14592         * marshal.c (mono_marshal_get_managed_wrapper): 
14593         mono_marshal_alloc takes native int so CONV_I
14594         the arg for 64bits.
14595
14596 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14597
14598         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14599         tokens in the cattr table. Fixes #53108.
14600
14601 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14602
14603         * loader.c: don't trim ".dll" before looking up in the config file.
14604         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14605
14606 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14607
14608         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14609         Return the module which contains the resource as well.
14610         (ves_icall_System_Reflection_Module_Close): New icall.
14611
14612         * appdomain.c: Bump corlib version number.
14613
14614         * image.c (mono_image_addref): New public function.
14615
14616         * assembly.c: Call mono_image_addref.
14617
14618         * reflection.c (mono_module_get_object): Increase reference count of 
14619         the image.
14620
14621         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14622         Fixes #22532.
14623
14624         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14625         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14626         proper exceptions on DllImport problems.
14627
14628 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14629
14630         * class.c, metadata.c: eliminate CSIZE macro.
14631
14632 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14633
14634         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14635         * object.h: Added async_callback field in MonoAsyncResult.
14636         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14637         * verify.c: Added async_callback in MonoAsyncResult layout.
14638
14639 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14640
14641         * reflection.c (mono_reflection_get_custom_attrs): Add support
14642         for Modules.
14643
14644 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14645
14646         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14647         marshalling.
14648         (mono_marshal_method_from_wrapper): Add null pointer check.
14649
14650 2004-01-16  Martin Baulig  <martin@ximian.com>
14651
14652         * debug-mono-symfile.h: Set version number to 36 and reflect
14653         latest symbol writer changes.
14654
14655 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14656
14657         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14658         multi-dimensional arrays.
14659         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14660         (mono_class_from_mono_type): Use bounded_array_class_get.
14661         
14662         * class.c (mono_bounded_array_class_get): New function which takes
14663         a 'bounded' bool argument to distinguish vectors from one dimensional
14664         arrays.
14665
14666         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14667         bounded_array_class_get if the array has bounds.
14668
14669         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14670         Search modules loaded using AssemblyBuilder:AddModule as well.
14671
14672 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14673
14674         * appdomain.c: increased corlib version.
14675         * filewatcher.c: removed g_print.
14676         * icall.c:
14677         (get_property_info): only allocate what is actually requested.
14678         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14679
14680 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14681
14682         * Makefile.am: added filewatcher.[ch]
14683         * filewatcher.[ch]: FileSystemWatcher runtime support.
14684         * icall.c: added new FSW icalls.
14685
14686 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14687
14688         * string-icalls.c: fix stringbuilder regression as suggested by
14689         Iain McCoy <iain@mccoy.id.au>.
14690
14691 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14692
14693         * process.c (process_read_stringtable_block): Recognize '007f' as
14694         a language neutral stringtable block.
14695
14696 2004-01-12  Patrik Torstensson
14697
14698         * object.h (MonoStringBuilder) : Changed layout to support our
14699         new stringbuilder class.
14700         * marshal.c: Change marshalling to support the new layout of 
14701         string builder.
14702         * appdomain.c: increased version number because new layout of
14703         string builder.
14704
14705 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14706
14707         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14708         assembly name as an string instead of an AssemblyName, since it is
14709         easier to extract info from it.
14710
14711         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14712         the culture subdirectories too. Fixes #52231.
14713
14714 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14715
14716         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14717         It takes 2 new parameters with an optional name for the method to look
14718         for and case ignoring info.
14719
14720         * threadpool.c: removed unused variable.
14721
14722 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14723
14724         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14725         It takes 2 new parameters with an optional name for the property to look
14726         for and case ignoring info.
14727         Fixes bug #52753.
14728
14729 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14730
14731         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14732         Fix #52451.
14733
14734 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14735
14736         * appdomain.c:
14737         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14738         Fixes bug #52630.
14739
14740 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14741
14742         * reflection.c: Add support for more than one unmanaged resource.
14743
14744         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14745         in field->def_value, as done in all other cases.
14746
14747         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14748         TypeBuilders.
14749
14750         * reflection.c (mono_reflection_create_runtime_class): Remove 
14751         errorneous assignment to klass->element_class, since it is already
14752         done in mono_reflection_setup_internal_class.
14753
14754 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14755
14756         * gc.c: added missing LeaveCriticalSection.
14757         * icall.c: indented a couple of lines.
14758         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14759         if we call EndInvoke inside a callback. Fixes bug #52601.
14760
14761 2004-01-07  Martin Baulig  <martin@ximian.com>
14762
14763         * mono-debug-debugger.h
14764         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14765
14766 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14767
14768         * appdomain.c: Use messages in NotImplementedException.
14769
14770         * exception.c (mono_get_exception_not_implemented): Now this takes
14771         a message argument.
14772
14773         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14774         exception instead of g_asserting an aborting when something is not
14775         implemented.
14776
14777         Add some inline docs.
14778
14779 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14780
14781         * reflection.h: Update after changes to object layout.
14782
14783         * reflection.c: Implement saving of unmanaged aka win32 resources.
14784
14785         * appdomain.c: Bump version number.
14786
14787         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14788         Handle missing domains gracefully.
14789
14790 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14791
14792         * file-io.c : On Windows, there are much more invalid_path_chars.
14793
14794 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14795
14796         * class.h, object.c: prepare for GetType () speedup.
14797
14798 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14799
14800         * profiler.c: workaround for --profile null reference exception on
14801           cygwin. Patch by Patrik Torstensson.
14802
14803 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14804
14805         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14806         make work for unaligned access.
14807
14808 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14809
14810         * class.c: small cleanup (class->fields [i] -> field).
14811         * image.c: check address of metadata is valid.
14812
14813 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14814
14815         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14816         search the list of loaded assemblies.
14817
14818         * reflection.c (mono_reflection_type_from_name): Use 
14819         mono_assembly_loaded instead of mono_image_loaded.
14820
14821         * reflection.c: Fix warnings.
14822
14823 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
14824
14825         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
14826         is dynamic. This is needed since an assembly can contain both dynamic and
14827         non-dynamic images.
14828
14829         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
14830         assembly->dynamic.
14831
14832         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14833
14834         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14835         to store modules loaded using AddModule.
14836
14837         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14838         on Modules.
14839
14840         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14841
14842         * reflection.c (mono_image_fill_export_table_from_module): New function to
14843         fill out the EXPORTEDTYPES table from a module.
14844
14845         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14846         into a separate function. Also handle loaded non-dynamic modules.
14847
14848         * reflection.c (mono_image_basic_init): Fix memory allocation.
14849
14850         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14851
14852         * assembly.c (mono_assembly_load_references): Make this public.
14853
14854 2003-12-19  Martin Baulig  <martin@ximian.com>
14855
14856         * class.c (mono_class_initialize_generic): Made this static, take
14857         a `MonoGenericInst *' instead of a `MonoClass *'.
14858         (mono_class_from_generic): Call mono_class_initialize_generic()
14859         unless we're already initialized or being called from
14860         do_mono_metadata_parse_generic_inst().
14861
14862         * class.h (MonoGenericInst): Added `initialized' and
14863         `init_pending' flags.
14864
14865         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14866         `mono_class_init (gklass)' or mono_class_initialize_generic()
14867         here; set `generic_inst->init_pending' while parsing the
14868         `type_argv'.
14869
14870 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14871
14872         * locales.c: include string.h for memxxx prototypes
14873
14874 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14875
14876         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14877         constructor when accessing literal fields.
14878
14879 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14880
14881         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14882
14883         * reflection.c (assembly_add_resource_manifest): New function to fill
14884         the MANIFESTRESOURCE table.
14885
14886         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14887
14888         * reflection.h: Update to changes in class layout.
14889
14890         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14891         Reenable call to mono_runtime_is_shutting_down ().
14892
14893         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14894         determine if the runtime is shutting down.
14895
14896 2003-12-16  Jackson Harper <jackson@ximian.com>
14897
14898         * icall.c: comment out call to mono_runtime_is_shutting_down to
14899         fix build.
14900         
14901 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14902
14903         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14904         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14905
14906 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14907
14908         * reflection.c: move definition of swap_with_size
14909         to before its first call
14910
14911 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14912
14913         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14914
14915         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14916         icall.
14917
14918         * object.c: Fix warnings.
14919
14920         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14921         members if FlattenHierarchy is set.
14922
14923         * reflection.c (mono_image_add_decl_security): New function to emit
14924         declarative security.
14925
14926         * reflection.h reflection.c: Add support for declarative security.
14927
14928         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14929         
14930 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14931
14932         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14933         
14934         * appdomain.c verify.c: Moved corlib version checking into its own
14935         function in appdomain.c since it needs to create vtables etc.
14936
14937 2003-12-13  Patrik Torstensson <p@rxc.se>
14938
14939         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14940         instead of unwrapped server.
14941
14942 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14943
14944         * verify.c (check_corlib): Fix field index.
14945
14946 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14947
14948         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14949         GetGacPath icall.
14950
14951 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14952
14953         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14954         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14955         cope with sizeof(size_t) != sizeof(guint32).
14956
14957 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14958
14959         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14960         in case of failure.
14961
14962 2003-12-10  Mark Crichton <crichton@gimp.org>
14963
14964         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14965         in managed code.
14966
14967         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14968
14969 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14970
14971         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14972         marked as deleted.
14973
14974 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14975
14976         * verify.c (check_corlib): Handle the case when the version field is 
14977         initialized by a static constructor.
14978
14979 2003-12-08  Patrik Torstensson  <p@rxc.se>
14980
14981     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14982
14983 2003-12-08  Martin Baulig  <martin@ximian.com>
14984
14985         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14986         a MonoReflectionGenericParameter, also take the parameter index
14987         and name as arguments.
14988         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14989         (ves_icall_MonoGenericParam_initialize): New interncall.
14990         (ves_icall_Type_make_byref_type): New interncall.
14991
14992         * reflection.h (MonoReflectionGenericParam): Derive from
14993         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14994         `index' fields.
14995
14996         * reflection.c (mono_reflection_define_generic_parameter): Create
14997         and return a new MonoReflectionGenericParam; don't initialize the
14998         constraints here.
14999         (mono_reflection_initialize_generic_parameter): New public method;
15000         initializes the constraints and creates the `param->pklass'.
15001
15002 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
15003
15004         * reflection.h reflection.c: Use the new fields 'num_types', 
15005         'num_fields' and 'num_methods' to track the number of types etc.
15006
15007         * verify.c (check_corlib): Check corlib version number.
15008
15009 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
15010
15011         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
15012         function works on all methods.
15013
15014 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
15015
15016         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
15017         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
15018         the custom_type_info flag of the transparent proxy.
15019         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
15020         objects that supports IRemotingTypeInfo.
15021         * object.h: Added custom_type_info field in transparent proxy.
15022
15023 2003-12-06  Martin Baulig  <martin@ximian.com>
15024
15025         * class.c (mono_class_create_from_generic): Removed.
15026         (mono_class_from_generic): Check `ginst->klass' before doing
15027         anything else.  This is important to fully support "recursive"
15028         generic types.
15029
15030         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
15031         empty `generic_inst->klass' before doing anything else.
15032
15033 2003-12-06  Dick Porter  <dick@ximian.com>
15034
15035         * verify.c: 
15036         * object.h:
15037         * icall.c:
15038         * locales.c: Use C structs to access class fields.  Don't do a
15039         conversion between MonoString and UChar because both are
15040         platform-endian UTF-16.  Compare now takes startindex and count
15041         parameters.  Add a char overload for IndexOf.  Speed up the
15042         invariant string IndexOf.
15043
15044 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
15045
15046         * Makefile.am (monosn_LDADD): Fix parallel build.
15047
15048 2003-12-04  Martin Baulig  <martin@ximian.com>
15049
15050         * icall.c
15051         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15052         (ves_icall_Type_make_array_type): New interncall.       
15053
15054 2003-12-04  Martin Baulig  <martin@ximian.com>
15055
15056         * locales.c: also change it in the !HAVE_ICU case.
15057
15058 2003-12-04  Dick Porter  <dick@ximian.com>
15059
15060         * icall.c:
15061         * locales.c: construct_compareinfo is now in CompareInfo, not
15062         CultureInfo.
15063
15064 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
15065
15066         * image.c (mono_image_load_file_for_image): Cache loaded images in the
15067         image->files array.
15068
15069         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
15070         table as well.
15071
15072         * assembly.c (mono_assembly_load_references): Only load references
15073         once.
15074
15075         * class.c (mono_class_from_name): Avoid linear search of the 
15076         EXPORTEDTYPE table.
15077
15078         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
15079
15080 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
15081
15082         * image.h (MonoImage): Add 'field_cache' field.
15083
15084         * loader.c (mono_field_from_token): Cache field lookups.
15085         
15086         * reflection.c (mono_module_get_object): Fix name property.
15087
15088         * icall.c (ves_icall_get_enum_info): Update after changes to 
15089         mono_metadata_get_constant_index ().
15090
15091         * icall.c: Get rid of get_type_info icall, use a separate icall for
15092         each type property to avoid needless memory allocations. Fixes #51514.
15093
15094         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
15095         to avoid needless binary searches.
15096
15097         * class.c (class_compute_field_layout): Move the initialization of
15098         field->def_value to mono_class_vtable ().
15099
15100         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
15101         non-corlib types.
15102
15103         * object.c (mono_object_allocate): Make it inline.
15104
15105         * object.c (mono_object_allocate_spec): Make it inline.
15106         
15107 2003-12-02  Dick Porter  <dick@ximian.com>
15108
15109         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15110         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15111
15112 2003-12-01  Dick Porter  <dick@ximian.com>
15113
15114         * threads.c: Fix signature and call in CreateMutex and
15115         CreateEvent.
15116
15117 2003-12-01  Dick Porter  <dick@ximian.com>
15118
15119         * icall.c: 
15120         * locales.c: Implement string compares and searching
15121
15122         * object.h: Add extra Thread field
15123
15124 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15125
15126         * reflection.c (fixup_method): Add support for MonoCMethod.
15127
15128 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15129
15130         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15131
15132         * reflection.c (assembly_name_to_aname): Allow extra characters in
15133         assembly names. Fixes #51468.
15134
15135 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15136
15137         * exception.c (mono_exception_from_name_domain): New helper function.
15138
15139         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15140         exception object in the correct domain.
15141
15142         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15143         formatting + make a copy a the input data.
15144
15145         * loader.c (mono_get_method_from_token): Methods which contain
15146         native code do not have entries in the ImplMap.
15147
15148         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15149         Thanks to Gonzalo for spotting this.
15150         
15151         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15152         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15153
15154         * assembly.h (mono_assembly_load_from): Split the second part of 
15155         assembly loading into a new public function.
15156
15157         * exception.h (mono_get_exception_bad_image_format): New function.
15158
15159 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15160
15161         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15162         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15163         
15164         * icall.c: Add new icall for creating dynamic methods.
15165
15166         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15167
15168         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15169
15170         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15171         create a dynamic method.
15172
15173         * reflection.c (resolve_object): New helper function.
15174
15175         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15176         which manipulate it so they can also work on dynamic methods.
15177
15178         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15179         creating the MonoReflectionMethodAux structure if it is not needed.
15180         
15181         * reflection.h verify.c: Update after changes to object layout.
15182
15183         * reflection.c (method_builder_encode_signature): Fix compilation on
15184         gcc 2.95.x.
15185
15186 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15187
15188         * appdomain.h: Added support for context static fields. Added static_data
15189           field to MonoAppContext and renamed thread_static_fields to a more
15190           generic special_static_fields in MonoAppDomain, since it can now contain
15191           context static fields.
15192         * domain.c: Updated hashtable name.
15193         * object.c: Replaced field_is_thread_static() for a more generic
15194           field_is_special_static() which also checks for context static attribute.
15195           In mono_class_vtable(), added support for static context fields.
15196         * threads.c: Changed methods that manage thread static fields to more
15197           generic methods so they can be reused both for thread and context static
15198           data.
15199         * threads.h: Declared some new methods.
15200
15201 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15202
15203         * reflection.h: Update after changes to the managed types.
15204
15205         * reflection.c (encode_custom_modifiers): New helper function.
15206
15207         * reflection.c (method_encode_signature): Emit custom modifiers.
15208
15209         * reflection.c (field_encode_signature): Emit custom modifiers.
15210
15211 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15212
15213         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15214
15215         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15216         implementation.
15217
15218         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15219         icall.
15220
15221         * object.c (mono_field_get_value_object): New function.
15222
15223         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15224         specific.
15225
15226 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15227
15228         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15229         return a preallocated out-of-memory exception instance.
15230
15231         * object.c (out_of_memory): Use the new function.
15232
15233         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15234         flag is before the custom modifiers. Fixes #49802.
15235
15236 2003-11-16  Martin Baulig  <martin@ximian.com>
15237
15238         * class.c (mono_class_is_open_constructed_type): Implemented the
15239         MONO_TYPE_GENERICINST case.
15240
15241 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15242
15243         * assembly.c (mono_assembly_fill_assembly_name): New function to
15244         fill out the MonoAssemblyName structure.
15245         (mono_assembly_open): Use the new function.
15246
15247         * icall.c (fill_reflection_assembly_name): New helper function.
15248
15249         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15250         new function.
15251
15252         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15253
15254 2003-11-15  Martin Baulig  <martin@ximian.com>
15255
15256         * class.c (mono_class_is_open_constructed_type): New public
15257         function; checks whether a type is an open constructed type,
15258         ie. whether it still contains type parameters.
15259         (mono_class_inflate_generic_type): If we're a type parameter and
15260         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15261         type.
15262
15263         * class.h (MonoGenericInst): Added `guint32 is_open'.
15264
15265         * loader.c (method_from_methodspec): Check whether we're an open
15266         or closed constructed type and set `ginst->is_open'.
15267
15268         * reflection.c (mono_reflection_bind_generic_parameters): Check
15269         whether we're an open or closed constructed type and set
15270         `ginst->is_open'.
15271         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15272         from open constructed types.
15273
15274 2003-11-15  Martin Baulig  <martin@ximian.com>
15275
15276         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15277         a generic instance (instead of a generic type declaration) with
15278         unbound generic parameters, bind them to our actual types.
15279
15280 2003-11-14  Martin Baulig  <martin@ximian.com>
15281
15282         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15283
15284         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15285         an interface type, populate `res->interfaces' with instantiated
15286         versions of all the interfaces we inherit.
15287
15288 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15289
15290         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15291         when MONO_PATH is set but doesn't contain the install dir.
15292
15293 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15294
15295         * icall.c:
15296         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15297         it's also implemented in base classes. Fixes bug #50927.
15298
15299 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15300
15301         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15302         if this method is called from a finalizer. Fixes #50913.
15303
15304 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15305
15306         * threads.c: Implement VolatileRead/VolatileWrite
15307
15308         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15309
15310 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15311
15312         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15313         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15314         2.95.3.
15315
15316         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15317         from Peter Ross (pro@missioncriticalit.com).
15318         
15319 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15320
15321         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15322
15323 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15324
15325         * assembly.c (mono_assembly_load_references): Disable check because it
15326         triggers on older corlibs which lots of people have.
15327
15328 2003-11-12  Jackson Harper  <jackson@ximian.com>
15329
15330         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15331         load corlib.dll if mscorlib.dll is not found.
15332         * assembly.h: Remove corlib name define.
15333         * class.c:
15334         * domain.c:
15335         * image.c: Change corlib name to mscorlib.
15336         
15337 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15338
15339         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15340
15341 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15342
15343         * appdomain.h: Added loader_optimization here to sync with the C#
15344         code, and add disallow_binding_redirects field.
15345
15346 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15347
15348         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15349
15350         * reflection.c (mono_image_build_metadata): Fix crash on modules
15351         with no types.
15352
15353         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15354
15355         * icall.c (ves_icall_get_method_info): Return callingConvention as
15356         well.
15357
15358         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15359         namespaces from the EXPORTEDTYPE table as well.
15360
15361         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15362         from all modules inside the assembly.
15363         
15364 2003-11-11  Martin Baulig  <martin@ximian.com>
15365
15366         * reflection.c (mono_reflection_bind_generic_parameters): Make
15367         this work for interfaces.
15368
15369 2003-11-11  Martin Baulig  <martin@ximian.com>
15370
15371         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15372
15373 2003-11-11  Martin Baulig  <martin@ximian.com>
15374
15375         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15376         "MonoInflatedMethod" and "MonoInflatedCtor".
15377
15378 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15379
15380         * reflection.c (resolution_scope_from_image): Use the assembly table
15381         from the manifest module, since other modules don't have it.
15382
15383         * debug-helpers.c (mono_type_full_name): New helper function.
15384
15385         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15386
15387         * image.c (mono_image_load_file_for_image): New public function which
15388         is a replacement for the load_file_for_image in class.c.
15389
15390         * assembly.c (mono_assembly_load_module): A wrapper for the function
15391         above which does assembly association and reference loading too.
15392
15393         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15394
15395 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15396
15397         * appdomain.c: not all of the attributes for the full assembly name
15398         are required and the order doesn't matter. Fixes bug #50787.
15399
15400 2003-11-10  Dick Porter  <dick@ximian.com>
15401
15402         * locales.c: Use platform-endian UTF16
15403
15404 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15405
15406         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15407         
15408 2003-11-10  Martin Baulig  <martin@ximian.com>
15409
15410         * metadata.c
15411         (mono_metadata_load_generic_params): Make this actually work.
15412
15413         * reflection.c (mono_reflection_bind_generic_parameters): If our
15414         parent is a generic instance, pass all the `types' to it, no
15415         matter whether it has the same number of type parameters or not.
15416
15417 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15418
15419         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15420
15421         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15422         assignment code to this function so it gets called recursively for all
15423         modules.
15424
15425         * image.c (load_modules): Remove the assembly assignment since it is
15426         now done by mono_assembly_load_references.
15427         
15428         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15429         Add 'module' argument.
15430         (mono_module_get_types): New helper function.
15431         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15432
15433 2003-11-08  Martin Baulig  <martin@ximian.com>
15434
15435         * class.c (mono_class_inflate_generic_method): Interface method
15436         don't have a header.
15437
15438         * reflection.c (mono_image_get_methodspec_token): Take an
15439         additional `MonoGenericInst *' argument instead of reading it from
15440         the header; this is necessary to support interfaces.
15441         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15442         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15443         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15444         argument.
15445
15446         * reflection.h (MonoReflectionInflatedMethod): Added
15447         `MonoGenericInst *ginst'.
15448
15449 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15450
15451         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15452
15453 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15454
15455         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15456
15457 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15458
15459         * reflection.c 
15460         (reflection_methodbuilder_from_method_builder):
15461         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15462         initialize a ReflectionMethodBuilder structure.
15463         (mono_image_get_methodbuilder_token):
15464         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15465         tokens which point to types in another module inside the same assembly.
15466
15467         * reflection.c: Use the new helper functions.
15468         
15469         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15470
15471         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15472         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15473
15474         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15475         neccesary.
15476
15477         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15478         current module. Emit the manifest only for the main module.
15479
15480         * reflection.c (mono_image_create_token): Add assertion when a 
15481         memberref needs to be created.
15482
15483         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15484
15485         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15486         larger buffer for the custom attribute blob. Fixes #50637.
15487         
15488 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15489
15490         * threadpool.c: notify listener on async processing handles after
15491         invoking the async callback. Thanks to Zoltan.
15492
15493 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15494
15495         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15496         avoid code duplication.
15497
15498         * reflection.h (MonoDynamicImage): New type which is currently unused,
15499         but will be used through the ref.emit code in place of 
15500         MonoDynamicAssembly.
15501
15502         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15503         object layout.
15504
15505         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15506         a MonoDynamicImage instead of just a MonoImage.
15507         
15508         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15509         icalls to ModuleBuilder but keep their semantics, so they will work
15510         with moduleb->assemblyb. This will change later.
15511         
15512 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15513
15514         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15515         object layout.
15516
15517         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15518         main module, since it is now done by the managed code.
15519
15520 2003-11-03  Martin Baulig  <martin@ximian.com>
15521
15522         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15523         `ginst->klass' here.
15524         (method_encode_methodspec): Don't use the `ginst->generic_method's
15525         klass if it's a generic instance, use `ginst->klass' in this case.
15526
15527 2003-11-03  Martin Baulig  <martin@ximian.com>
15528
15529         * reflection.c (mono_image_get_generic_method_param_info):
15530         Removed, use mono_image_get_generic_param_info() instead.
15531         (mono_image_get_type_info): Write the GenericParam table before
15532         the Method table.  This is neccessary because in the GenericParam
15533         table, type parameters of the class (ie. '!0' etc.) must come
15534         before the ones from its generic methods (ie. '!!0' etc).
15535
15536 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15537
15538         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15539
15540 2003-11-02  Martin Baulig  <martin@ximian.com>
15541
15542         * reflection.c (create_generic_typespec): Take a
15543         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15544         the generic parameters from it.
15545
15546 2003-11-02  Martin Baulig  <martin@ximian.com>
15547
15548         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15549         instead of a `MonoClassField *' since we just need the type.
15550         (create_generic_typespec): New static function.  Creates a
15551         TypeSpec token for a generic type declaration.
15552         (mono_image_get_generic_field_token): New static function.
15553         (mono_image_create_token): If we're a FieldBuilder in a generic
15554         type declaration, call mono_image_get_generic_field_token() to get
15555         the token.
15556
15557 2003-11-02  Martin Baulig  <martin@ximian.com>
15558
15559         * reflection.h
15560         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15561         `MonoReflectionGenericInst *declaring_type' and
15562         `MonoReflectionGenericInst *reflected_type' fields.
15563
15564         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15565         `MonoReflectionGenericInst *declaring_type' and a
15566         `MonoReflectionGenericInst *reflected_type' argument instead of a
15567         single `MonoReflectionGenericInst *type' one.  Set
15568         `res->declaring_type' and `res->reflected_type' from them.
15569         (mono_reflection_inflate_field): Likewise.      
15570
15571 2003-11-02  Martin Baulig  <martin@ximian.com>
15572
15573         * class.c (mono_class_setup_vtable): Don't store generic methods
15574         in the vtable.  
15575
15576 2003-11-02  Martin Baulig  <martin@ximian.com>
15577
15578         * reflection.h (MonoReflectionGenericInst): Added
15579         `MonoReflectionType *declaring_type'.
15580
15581         * reflection.c (mono_reflection_bind_generic_parameters): Use
15582         `if (tb->parent)' instead of `klass->parent'.
15583
15584 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15585
15586         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15587         with an empty ASSEMBLY table.
15588
15589         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15590         variable in the inner and outer loops.
15591
15592 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15593
15594         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15595         argument.
15596
15597         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15598         
15599         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15600         icalls. Instead, do everything in managed code. This is needed since
15601         it is hard to restore the original domain etc. in unmanaged code in the
15602         presence of undeniable exceptions.
15603
15604         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15605         New icalls to push and pop appdomain refs.
15606
15607 2003-10-31  Martin Baulig  <martin@ximian.com>
15608
15609         * class.c (inflate_generic_type): Renamed to
15610         mono_class_inflate_generic_type() and made it public.
15611
15612         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15613         New interncall.
15614
15615         * loader.c (mono_field_from_memberref): Also set the retklass for
15616         typespecs.
15617
15618         * fielder.c (mono_image_get_inflated_field_token): New static
15619         method; creates a metadata token for an inflated field.
15620         (mono_image_create_token, fixup_method): Added support for
15621         "MonoInflatedField".
15622         (fieldbuilder_to_mono_class_field): New static function.
15623         (mono_reflection_inflate_field): New public function.
15624
15625         * reflection.h
15626         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15627         (MonoReflectionInflatedField): New typedef.     
15628
15629 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15630
15631         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15632         for Solaris and other platforms without s6_addr16
15633
15634 2003-10-30  Martin Baulig  <martin@ximian.com>
15635
15636         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15637         argument instead of two.
15638         (mono_class_inflate_generic_signature): Likewise.
15639         (inflate_generic_header): Likewise.
15640         (mono_class_inflate_generic_method): Likewise.  In addition, if
15641         `ginst->klass' is set, it becomes the new `method->klass'.
15642
15643         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15644         field.
15645
15646         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15647         first byte. [FIXME]
15648         (method_encode_methodspec): If we have generic parameters, create
15649         a MethodSpec instead of a MethodRef.
15650         (fixup_method): Added support for "MonoInflatedMethod" and
15651         "MonoInflatedCtor".
15652         (mono_image_create_token): Added support for "MonoInflatedMethod"
15653         and "MonoInflatedCtor".
15654         (inflated_method_get_object): New static function; returns a
15655         managed "System.Reflection.MonoInflatedMethod" object.
15656         (mono_reflection_bind_generic_method_parameters): Return a
15657         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15658         (mono_reflection_inflate_method_or_ctor): Likewise.
15659         (mono_image_get_generic_method_param_info): Initialize unused
15660         fields to zero.
15661         (mono_image_get_generic_param_info): Likewise.
15662
15663         * reflection.h (MonoReflectionInflatedMethod): New public
15664         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15665         "S.R.MonoInflatedCtor" classes.
15666
15667         * loader.c (method_from_memberref): If we're a TypeSpec and it
15668         resolves to a generic instance, inflate the method.
15669
15670 2003-10-28  Dick Porter  <dick@ximian.com>
15671
15672         * object.c (mono_runtime_run_main): Convert command-line arguments
15673         into utf8, falling back to the user's locale encoding to do so.
15674
15675 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15676
15677         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15678         at this time.
15679
15680         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15681
15682         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15683         up icalls at method definition time. Partially fixes #33569.
15684
15685 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15686
15687         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15688         marshalling of arrays. Fixes #50116.
15689
15690         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15691
15692         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15693         points to a vtable in the dying appdomain.
15694
15695         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15696         listeners into unmanaged code inside the lock.
15697
15698         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15699         domains and add some comments.
15700
15701 2003-10-25  Martin Baulig  <martin@ximian.com>
15702
15703         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15704
15705         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15706
15707         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15708         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15709         currently parsing.  Create the generic class and store it in
15710         `generic_inst->klass' before parsing the type arguments.  This is
15711         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15712         for an example.
15713         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15714         to support recursive typespec entries.
15715
15716         * class.c (mono_class_setup_parent): If our parent is a generic
15717         instance, we may get called before it has its name set.
15718         (mono_class_from_generic): Splitted into
15719         mono_class_create_from_generic() and mono_class_initialize_generic().
15720
15721 2003-10-25  Martin Baulig  <martin@ximian.com>
15722
15723         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15724         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15725         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15726         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15727
15728         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15729         (create_typespec): Likewise.
15730         (mono_reflection_bind_generic_parameters): Return a
15731         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15732         (mono_reflection_inflate_method_or_ctor): New public function.
15733
15734         * reflection.h (MonoReflectionGenericInst): New typedef.        
15735
15736 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15737
15738         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15739         inside the domain lock. Fixes #49993.
15740         
15741         * object.c (mono_class_vtable): When typed allocation is used, 
15742         allocate vtables in the GC heap instead of in the mempool, since the
15743         vtables contain GC descriptors which are used by the collector even
15744         after the domain owning the mempool is unloaded.
15745
15746         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15747
15748         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15749         reflect what it does. Also invalidate mempools instead of freeing
15750         them if a define is set.
15751
15752         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15753         of the appdomain.
15754         
15755         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15756         hold the finalizable objects in this domain.
15757
15758         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15759         appdomain.
15760
15761         * appdomain.c (mono_domain_set): New function to set the current
15762         appdomain, but only if it is not being unloaded.
15763
15764         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15765         appdomain which is being unloaded.
15766         
15767         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15768         unloading of the root appdomain.
15769
15770         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15771         icall to execute a method in another appdomain. Intended as a 
15772         replacement for InternalSetDomain, which can confuse the code 
15773         generation in the JIT.
15774
15775         * appdomain.c (mono_domain_is_unloading): New function to determine
15776         whenever an appdomain is unloading.
15777
15778         * appdomain.c (mono_domain_unload): New function to correctly unload
15779         an appdomain.
15780
15781         * assembly.c (mono_assembly_load_references): Check that an assembly
15782         does not references itself.
15783
15784         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15785         domain manually, it asks the finalizer thread to do it, then waits for
15786         the result. Also added a timeout.
15787
15788         * icall.c: Register the new icalls.
15789
15790         * threads.h threads.c: Export the mono_gc_stop_world and 
15791         mono_gc_start_world functions.
15792         
15793         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15794         function to fill out the mempool with 0x2a.
15795
15796 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15797
15798         * reflection.h (MonoReflectionMethodAux): New structure to store
15799         information which is rarely used, thus is not in the MonoMethod
15800         structure.
15801
15802         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15803         store the aux info.
15804
15805         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15806         and marshalling info into the aux structure.
15807
15808         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15809         from the aux structure.
15810
15811         * loader.c (mono_method_get_param_names): Retrieve the param names from
15812         the aux structure.
15813         
15814 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15815
15816         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15817         warning.
15818
15819 2003-10-21  Dick Porter  <dick@ximian.com>
15820
15821         * socket-io.c
15822         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
15823         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
15824
15825 2003-10-21  Martin Baulig  <martin@ximian.com>
15826
15827         * reflection.c (mono_reflection_bind_generic_parameters):
15828         `klass->parent' is NULL for interfaces.
15829
15830 2003-10-21  Martin Baulig  <martin@ximian.com>
15831
15832         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15833
15834 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15835
15836         * exception.c (mono_exception_from_name_msg): New helper function for
15837         creating exceptions and initializing their message field.
15838
15839         * exception.c: Simplify functions using the new helper.
15840
15841         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15842         New function.
15843
15844         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15845         mono_raise_exception, since otherwise gcc doesn't generate the function
15846         epilog for raise_exception, confusing the stack unwinding in the JIT.
15847         Fixes #45043.
15848
15849         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15850         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15851         Fixes #49499.
15852
15853 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15854
15855         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15856         utf8.
15857
15858 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15859
15860         * icall.c: Removed GetUninitializedObject method because
15861           AllocateUninitializedClassInstance does the same.
15862
15863 2003-10-18  Martin Baulig  <martin@ximian.com>
15864
15865         * class.c (inflate_generic_signature): Renamed to
15866         mono_class_inflate_generic_signature() and made it public.
15867         (my_mono_class_from_generic_parameter): New static function; if we
15868         don't already have the generic parameter's MonoClass, create a
15869         very simple one which is just used internally in the runtime and
15870         not passed back to managed code.
15871
15872         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15873
15874         * metadata.h (MonoMethodSignature): Moved the
15875         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15876         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15877
15878         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15879         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15880         interncall on the MonoMethod class, not on MethodInfo.
15881         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15882         calling mono_reflection_bind_generic_method_parameters() directly.
15883
15884         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15885         return the already computed `method->signature'.
15886         (method_from_methodspec): New static function to load a method
15887         from a MethodSpec entry.
15888         (mono_get_method_from_token): Call the new method_from_methodspec()
15889         for MethodSpec tokens.  
15890         (mono_get_method_from_token): If we're a generic method, load the
15891         type parameters.
15892
15893         * reflection.c (mono_image_get_memberref_token): Allow
15894         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15895         table.
15896         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15897         (mono_image_create_token): First check whether it's a generic
15898         method (so we'd need to create a MethodSpec), then do the other
15899         two alternatives.
15900         (mono_reflection_bind_generic_method_parameters): Return a
15901         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15902         called directly from the interncall.
15903
15904 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15905
15906         * reflection.c (load_public_key): Move loading of the public key
15907         into managed code.
15908
15909         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15910
15911         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15912         fields.
15913
15914         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15915         culture, hash_alg and public_key. Fixes #49555.
15916
15917 2003-10-17  Martin Baulig  <martin@ximian.com>
15918
15919         * class.h (MonoGenericInst): Moved this declaration here and added
15920         `MonoMethod *generic_method'.
15921
15922         * icall.c
15923         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15924         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15925
15926         * metadata.c (mono_metadata_type_equal): Two types of
15927         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15928         index; ie. don't compare the address of the `MonoGenericParam'
15929         structure.
15930         (mono_metadata_load_generic_params): Removed the `MonoMethod
15931         *method' argument.
15932
15933         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15934         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15935
15936         * reflection.c (method_encode_signature): Encode the number of
15937         generic parameters.
15938         (encode_generic_method_sig): New static function.
15939         (method_encode_methodspec): New static function; creates an entry
15940         in the MethodSpec table for a generic method.
15941         (mono_image_get_methodspec_token): New static function.
15942         (mono_image_create_token): Call mono_image_get_methodspec_token()
15943         for generic methods.
15944         (mono_reflection_bind_generic_method_parameters): New public
15945         function.  Instantiates a generic method.
15946
15947 2003-10-16  Martin Baulig  <martin@ximian.com>
15948
15949         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15950         *gen_params' here from MonoMethodHeader.
15951
15952         * metadata.c (mono_metadata_parse_method_signature): If we have
15953         generic parameters, initialize `method->gen_params' and then set
15954         the correct `type->data.generic_param' in all the parameters.
15955
15956 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15957
15958         * threads.c (mono_threads_get_default_stacksize): New function to 
15959         return the default stacksize.
15960
15961         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15962         termination of the finalizer thread, since the previous method had
15963         race conditions. Fixes #49628.
15964
15965         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15966         as for the other managed threads.
15967
15968 2003-10-16  Martin Baulig  <martin@ximian.com>
15969
15970         * class.c (inflate_generic_signature): Copy `generic_param_count'
15971         and `gen_params'.
15972
15973         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15974         New interncall.
15975
15976         * metadata.c (mono_metadata_parse_method_signature): Actually set
15977         the `method->generic_param_count' here.
15978         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15979
15980 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15981
15982         * object.h: Add a new field to TypedRef to simplify the implementation
15983         of the REFANY opcodes in the JIT.
15984
15985         * icall.c: Make use of the new field.
15986
15987         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15988         dynamically.
15989
15990 2003-10-15  Martin Baulig  <martin@ximian.com>
15991
15992         * class.c (mono_class_from_gen_param): Renamed to
15993         mono_class_from_generic_parameter() and moved most of the
15994         functionality from mono_reflection_define_generic_parameter()
15995         here; ie. we create a "real" class here.
15996         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15997         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15998         previously been called.
15999
16000         * class.h (MonoGenericParam): Moved the declaration of this struct
16001         here from metadata.h and added `MonoMethod *method'.
16002
16003         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
16004         interncall.
16005
16006         * loader.c (mono_get_method_from_token): If we have any generic
16007         parameters, call mono_metadata_load_generic_params() to read them
16008         from the MONO_TABLE_GENERICPAR.
16009
16010         * metadata.c (mono_metadata_load_generic_params): Added
16011         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
16012
16013         * metadata.h (MonoMethodSignature): Replaced
16014         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
16015         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
16016
16017         * reflection.c (mono_reflection_define_generic_parameter): Moved
16018         most of the functionality into the new
16019         mono_class_from_generic_parameter(); set the `method' field if
16020         we're a method parameter.       
16021
16022 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
16023
16024         * marshal.c (emit_struct_conv): if native size is 0
16025         emit no code.
16026
16027 2003-10-14  Martin Baulig  <martin@ximian.com>
16028
16029         * icall.c: The generics API has changed in the spec since it was
16030         added to System.Type; these modifications make it match the spec
16031         again.
16032         (ves_icall_Type_GetGenericParameters): Renamed to
16033         `ves_icall_Type_GetGenericArguments'.
16034         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
16035         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
16036         `ves_icall_MonoType_get_HasGenericArguments'.
16037         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
16038         `ves_icall_MonoType_get_IsGenericParameter'.
16039         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
16040         this is no interncall anymore.
16041         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
16042         `ves_icall_TypeBuilder_get_IsGenericParameter'.
16043
16044 2003-10-14  Martin Baulig  <martin@ximian.com>
16045
16046         * reflection.c (mono_reflection_bind_generic_parameters): Also
16047         inflate generic methods if we're reading the class from IL.
16048
16049 2003-10-13  Martin Baulig  <martin@ximian.com>
16050
16051         * reflection.c (mono_reflection_define_generic_parameter): This
16052         method isn't called directly from the icall anymore; take a
16053         `MonoReflectionAssemblyBuilder *' so we can use this for type and
16054         method generic parameters.
16055         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
16056         (method_builder_encode_signature): Encode generic parameters.
16057         (mono_image_get_method_info): Write generic params to the
16058         MONO_TABLE_GENERICPARAM table.
16059
16060         * reflection.h (MonoReflectionMethodBuilder): Added
16061         `MonoArray *generic_params'.
16062
16063         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
16064
16065         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
16066         wrapper for mono_reflection_define_generic_parameter().
16067         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
16068
16069 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
16070
16071         * marshal.h: Add missing function to fix build.
16072
16073         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
16074         the SetLastError pinvoke attribute.
16075
16076         * marshal.c (mono_marshal_set_last_error): New helper function called
16077         by the generated code.
16078         
16079         * marshal.c (mono_mb_emit_branch): New helper function.
16080
16081         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
16082
16083         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16084         classes as parameters and return values of delegates. Fixes #29256. 
16085
16086 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
16087
16088         * locales.c: use gint32 in non HAVE_ICU case
16089
16090 2003-10-11  Martin Baulig  <martin@ximian.com>
16091
16092         * mono-debug.c (mono_debug_add_method): Added a workaround for
16093         bug #48591.
16094
16095 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
16096
16097         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
16098         delegates passed to native code must use the STDCALL calling 
16099         convention. Fixes #35987.
16100
16101 2003-10-10  Martin Baulig  <martin@ximian.com>
16102
16103         * class.c (inflate_generic_type): If we're inflating for a generic
16104         type instance (and not for a generic method), return
16105         MONO_TYPE_MVAR unchanged.
16106
16107 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16108
16109         * string-icalls.c: Join ignores null strings in the source array.
16110         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16111         * threads.c: GetAvailableTheads is slightly more accurate.
16112
16113 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16114
16115         * threads.h threads.c : add mono_threads_set_default_stacksize
16116         and pass default to CreateThread calls.
16117
16118 2003-10-09  Dick Porter  <dick@ximian.com>
16119
16120         * icall.c:
16121         * locales.h:
16122         * locales.c: Internal calls for constructing CultureInfo and
16123         related objects from libicu (if its available.)
16124
16125 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16126
16127         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16128
16129 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16130
16131         * threadpool.c: added an argument to async_invoke_thread that is the
16132         item to process, pass the MonoAsyncResult to the thread start function
16133         when creating a new thread. This way we don't need to acquire any lock
16134         when we're creating a new thread. Readded a semaphore for faster
16135         response times (instead of that Sleep i added).
16136
16137 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16138
16139         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16140         get daylight change dates better on Windows, fix handling
16141         of platforms without tm_gmtoff.
16142
16143 2003-10-06  Martin Baulig  <martin@ximian.com>
16144
16145         * class.c (inflate_generic_method): Renamed to
16146         mono_class_inflate_generic_method() and made public.
16147         (mono_class_init): Don't inflate the generic methods here.
16148         (mono_class_from_generic): Added `gboolean inflate_methods'
16149         argument.  Inflate the methods here.
16150
16151         * loader.c (mono_method_get_param_names): Ignore instances of
16152         generic types for the moment.
16153
16154         * reflection.c (fixup_method): Added support for inflated methods.
16155         (mono_image_create_token): Use mono_image_get_methodref_token()
16156         for inflated methods.
16157         (mono_custom_attrs_from_param): Ignore instances of generic types
16158         for the moment.
16159         (mono_reflection_bind_generic_parameters): New public function.
16160         Moved all the functionality from
16161         ves_icall_Type_BindGenericParameters() here and added support for
16162         dynamic types.
16163         (mono_reflection_define_generic_parameter): Initialize
16164         `klass->methods' here.
16165
16166         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16167         functionality into mono_reflection_define_generic_parameter().
16168         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16169         TypeBuilder, return that TypeBuilder.
16170
16171 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16172
16173         * appdomain.c: removed mono_delegate_semaphore.
16174
16175         * threadpool.c:
16176         (mono_thread_pool_add): moved hash table creation inside and the thread 
16177         creation outside of the critical region.
16178         (mono_thread_pool_finish): removed obsolete code.
16179         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16180         continue or exit the thread depending on the queue.
16181
16182 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16183
16184         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16185         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16186         handle more bool marshalling options
16187
16188 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16189
16190         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16191         arrays of structs. Also add a more descriptive error message when
16192         a structure member is marshalled as LPArray.
16193
16194 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16195
16196         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16197         marshalling arrays of complex types. Fixes #29098. Also remove an
16198         usused and incomplete function.
16199
16200 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16201
16202         * gc.c: report heap_size - free_bytes as total memory allocated
16203         (bug#49362).
16204
16205 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16206
16207         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16208         fix timezone handling problems on Windows.
16209         
16210         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16211         asserts when the year is outside the range handled by ms the functions.
16212
16213         * class.c (setup_interface_offsets): If the class is an interface,
16214         fill out its interface_offsets slot.
16215
16216 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16217
16218         * threadpool.c: mark threadpool threads as background.
16219
16220 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16221
16222         * decimal.c - define DECINLINE to nothing if not using GCC
16223
16224 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16225
16226         * assembly.c: More refcount fixes.
16227
16228 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16229
16230         * string-icalls.c: if we're not trimming, return the same string.
16231         When not splitting, don't create a new string.
16232
16233 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16234
16235         * image.c:
16236         (mono_image_open): increment the ref_count inside the critical section.
16237
16238 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16239
16240         * image.c (mono_image_open): Fix reference counting bug.
16241
16242 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16243
16244         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16245         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16246         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16247         mono_lookup_pinvoke_call throws.        
16248
16249 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16250
16251         * reflection.c (mono_reflection_parse_type): Fix #49114.
16252
16253         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16254         temporary workaround for cygwin header problem.
16255
16256         * object.c (mono_object_isinst): Synchronize this with the code
16257         generated by the JIT for casts.
16258
16259 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16260
16261         * reflection.c (encode_type): Fix #38332.
16262
16263 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16264
16265         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16266         the original method from the wrapper method.
16267
16268 2003-09-25  Martin Baulig  <martin@ximian.com>
16269
16270         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16271         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16272         (ves_icall_Type_get_IsGenericInstance): New interncall.
16273
16274 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16275
16276         * object.c: fix cast warning in big endian code.
16277
16278 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16279
16280         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16281         
16282 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16283
16284         * assembly.c: don't call check_env from mono_assembly_load. It's
16285         already done once in mono_assemblies_init and may cause headaches when
16286         multiple threads are loading assemblies.
16287
16288 2003-09-19  Martin Baulig  <martin@ximian.com>
16289
16290         * reflection.c (mono_reflection_define_generic_parameter): Don't
16291         allocate `klass->methods', set `klass->flags' to
16292         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16293
16294 2003-09-18  Martin Baulig  <martin@ximian.com>
16295
16296         * class.c (mono_class_init): Don't create `class->methods' if it's
16297         already initialized.
16298
16299         * metadata.c (mono_metadata_load_generic_params): Make this
16300         actually work.
16301
16302         * reflection.c (mono_reflection_define_generic_parameter): Set
16303         parent class and interfaces from the constraints.
16304
16305         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16306         to keep this struct in sync with the declaration in TypeBuilder.cs.
16307
16308 2003-09-17  Martin Baulig  <martin@ximian.com>
16309
16310         * metadata.h (MonoType): Replaced the data's `int type_param'
16311         field with `MonoGenericParam *generic_param'.
16312         (MonoGenericParam): Added `MonoClass *klass'.
16313
16314         * class.c (mono_class_from_gen_param): Removed the
16315         `MonoImage *image' and `int type_num' arguments.
16316
16317         * metadata.c (mono_metadata_parse_generic_param): New static
16318         method; creates a MonoGenericParam which just contains the index.
16319         (do_mono_metadata_parse_type): Call
16320         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16321         MONO_TYPE_MVAR.
16322
16323         * reflection.c (mono_image_typedef_or_ref): Generic type
16324         parameters may be in the same assembly, but never use a typedef
16325         for them.
16326         (mono_reflection_define_generic_parameter): We're now creating a
16327         "real" class for the type parameter; it's now safe to call
16328         mono_class_from_mono_type() on the class'es type, it'll do the
16329         right thing.
16330
16331 2003-09-16  Martin Baulig  <martin@ximian.com>
16332
16333         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16334         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16335         the `symfile' data structure must be fully initialized before it
16336         gets added to the table.
16337
16338 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16339
16340         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16341
16342         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16343         class init trampolines.
16344
16345 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16346
16347         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16348         to the built-in profiler to turn off time and allocation profiling
16349         respectively.
16350
16351 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16352
16353         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16354         g_direct_equal.
16355
16356         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16357         in human readable form.
16358
16359 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16360
16361         * reflection.c icall.c: Fixed warnings.
16362
16363         * image.c (load_class_names): Use a temporary hash table to hold the
16364         namespaces in order to avoid doing many string comparisons.
16365
16366         * image.h: Fix typo.
16367
16368         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16369         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16370         since the NULL case is short-circuited inside g_hash_table_lookup, 
16371         leading to better performance.  
16372
16373         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16374         obtain the first custom attribute for a given index. Depends on the
16375         CustomAttribute table being sorted by the parent field.
16376
16377         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16378         for better performance.
16379
16380 2003-09-07  Martin Baulig  <martin@ximian.com>
16381
16382         * class.c (mono_class_init): If we're a generic instance, inflate
16383         all our methods instead of loading them from the image.
16384         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16385
16386 2003-09-07  Martin Baulig  <martin@ximian.com>
16387
16388         * mono-debug-debugger.c: Added support for constructors.
16389
16390 2003-09-06  Martin Baulig  <martin@ximian.com>
16391
16392         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16393         New interncall.
16394
16395         * reflection.c (mono_reflection_setup_generic_class): Call
16396         ensure_runtime_vtable() to create the vtable.
16397
16398 2003-09-05  Martin Baulig  <martin@ximian.com>
16399
16400         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16401         MONO_TYPE_MVAR.
16402
16403 2003-09-04  Martin Baulig  <martin@ximian.com>
16404
16405         * reflection.c (mono_reflection_define_generic_parameter): Generic
16406         parameters start with zero.
16407
16408 2003-09-04  Martin Baulig  <martin@ximian.com>
16409
16410         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16411
16412         * reflection.h (MonoReflectionGenericParam): New typedef.
16413         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16414         the generic parameters from the managed TypeBuilder.
16415
16416         * reflection.c (mono_reflection_define_generic_parameter): New function.
16417         (mono_reflection_create_runtime_class): Encode generic parameters.
16418         (mono_reflection_setup_generic_class): New function; this is
16419         called after adding adding all generic params to the TypeBuilder.
16420         (encode_type): Added MONO_TYPE_VAR.
16421
16422 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16423
16424         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16425         here from the JIT.
16426
16427         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16428         load hook.
16429
16430 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16431
16432         * reflection.h reflection.c class.h class.c: Delete duplicate 
16433         definition of mono_type_get_name () from reflection.c and export the
16434         one in class.c.
16435
16436         * class.c: Class loading fixes from Bernie Solomon 
16437         (bernard@ugsolutions.com).
16438
16439         * reflection.c: Endianness fixes from Bernie Solomon 
16440         (bernard@ugsolutions.com).
16441         
16442 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16443
16444         * assembly.h assembly.c: Define a file format version for AOT
16445         libraries.
16446         
16447         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16448
16449         * appdomain.h (MonoJitInfo): New field to determine whenever the
16450         code is domain neutral.
16451         
16452 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16453
16454         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16455
16456 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16457
16458         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16459         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16460         Avoid caching the result since strings must be domain specific. Fixes
16461         #48050.
16462
16463 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16464
16465         * marshal.c (mono_marshal_init): Make this callable multiple times
16466         since it is hard to find a correct place to call it.
16467
16468         * object.c (mono_runtime_class_init): Execute static constructors in
16469         the correct appdomain.
16470
16471         * image.c (build_guid_table): Handle the case when multiple images have
16472         the same GUID.
16473
16474 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16475
16476         * icall.c: added a couple of icalls for System.Web.
16477
16478 2003-08-28  Martin Baulig  <martin@ximian.com>
16479
16480         * icall.c (ves_icall_Type_BindGenericParameters): Use
16481         `klass->generic_inst' instead of `&klass->byval_arg' in the
16482         mono_type_get_object() call.  The returned type must be
16483         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16484
16485 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16486
16487         * NOTES: New file.
16488
16489         * object.c (mono_class_proxy_vtable): Make it thread safe.
16490
16491         * pedump.c: Fix warning.
16492
16493         * object.c appdomain.h: Get rid of metadata_section. 
16494         It is no longer needed and it was causing deadlocks with domain->lock.
16495
16496         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16497
16498 2003-08-26  Martin Baulig  <martin@ximian.com>
16499
16500         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16501
16502 2003-08-26  Martin Baulig  <martin@ximian.com>
16503
16504         * pedump.c (main): Call mono_metadata_init(),
16505         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16506         and mono_loader_init().
16507
16508 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16509
16510         * loader.h: Add missing include to fix build.
16511
16512         * image.h: mono_image_load_references is no more.
16513
16514         * assembly.c: Reworked assembly loading to make it really thread safe.
16515         After these changes, the assembly returned by mono_assembly_open is
16516         fully initialized, i.e. all its references assemblies are loaded.
16517
16518         * assembly.c (mono_image_load_references): Renamed to 
16519         mono_assembly_load_references, and made private, since clients no
16520         longer need to call it.
16521
16522         * class.c: Removed calls to mono_assembly_load_references, since it was
16523         a source of deadlocks.
16524
16525         * loader.h loader.c class.h class.c: Protect data structures using a 
16526         new lock, the loader lock.
16527
16528         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16529         GPtrArrays only when needed.
16530
16531         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16532         into empty structures by mcs. Fixes pinvoke7.cs.
16533         
16534         * domain.c (mono_init): Call a new initialization function.
16535
16536         * appdomain.c (mono_runtime_init): Call the new initializer function
16537         of the marshal module.
16538
16539         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16540         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16541
16542         * marshal.h marshal.c: Added locks around the wrapper caches to make
16543         this module thread safe.
16544
16545         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16546         this argument. Fixes pinvoke1.exe.
16547
16548 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16549
16550         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16551         enumeration of values. Removed fields to store remote call output values in
16552         MonoAsyncResult. Not needed any more.
16553         * object.c: Initialize call_type and async_result fields in mono_message_init.
16554         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16555         dispatching the message.
16556         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16557         async call to finish. To do it use a message with EndInvoke call type.
16558
16559 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16560
16561         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16562         determines whenever a method has marshalling info.
16563
16564 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16565
16566         * assembly.c: fix the build on windows.
16567
16568 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16569
16570         * object.cs: Fixed bug #47785.
16571
16572 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16573
16574         * string-icalls.c (StringReplace): If their are no occurances of
16575         the old string found return a reference to the supplied
16576         string. This saves some memory and matches MS behavoir.
16577         
16578 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16579
16580         * socket-io.c: fixed compilation for systems that define AF_INET6
16581         and don't define SOL_IP/SOL_IPV6.
16582
16583 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16584
16585         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16586         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16587
16588         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16589
16590         * domain.c: Make this module thread safe.
16591
16592         * domain.c (mono_init): Call new initialization function.
16593
16594         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16595         reference types too. Fixes #38812.
16596
16597         * image.c (mono_image_init): Fixed warnings.
16598
16599         * class.c (mono_class_from_typeref): Handle assembly load failure
16600         correctly.
16601
16602         * appdomain.c (add_assemblies_to_domain): Handle the case when
16603         the references of an assembly are not yet loaded.
16604
16605         * metadata.c image.c assembly.c: Moved initialization of global
16606         variables to a separate function called at startup since lazy 
16607         initialization of these variables is not thread safe.
16608         
16609         * image.c assembly.c: Made this module thread safe by adding locks in 
16610         the appropriate places.
16611
16612         * domain.c (mono_init): Call the new initialization functions of the
16613         three modules.
16614
16615 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16616
16617         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16618           make a direct call. It is proxy's work to make the call asynchronous.
16619           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16620           the return values.
16621         * object.cs: mono_method_call_message_new(): read AsyncResult and
16622           state object from parameters list, if this info is requested.
16623         * object.h: Added fields to store remote call output values in
16624           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16625
16626 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16627
16628         * object.h: add needed fields to MonoThread.
16629         * threads.c, threads.h: allow registering a function to cleanup data
16630         allocated per thread by the JIT.
16631
16632 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16633
16634         * loader.h: portability fix by Bernie Solomon
16635         * <bernard@ugsolutions.com>.
16636
16637 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16638
16639         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16640         return a MonoArray. This simplifies the code and also ensures that
16641         the cache allways contains an object reference as a value.
16642
16643         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16644         function.
16645
16646 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16647
16648         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16649         fixes a problem with byte ordering when getting the address family for
16650         a socket.
16651
16652 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16653
16654         * .cvsignore: Added monosn.
16655
16656         * reflection.h reflection.c loader.c: Added support for parameter
16657         marshalling to dynamically created types. Fixes #47295.
16658
16659 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16660
16661         * rand.c: remove useless warnings.
16662
16663 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16664
16665         * class.c: implemented ldtoken for methods and fieldrefs.
16666
16667 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16668
16669         * threadpool.c: when mono_async_invoke was called, no one took care of
16670         monitoring the queue. So if the method invoked took some time and we
16671         got new async invoke requests after 500 ms (the thread created waited
16672         that long in WaitForSingleObject), the new async invoke was not called
16673         until the previous one finished.
16674
16675         This is fixed now. Thanks to Totte for helping with it.
16676
16677 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16678
16679         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16680
16681 2003-08-11  Martin Baulig  <martin@ximian.com>
16682
16683         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16684
16685 2003-08-06  Martin Baulig  <martin@ximian.com>
16686
16687         * mono-debug-debugger.c: Added support for static fields,
16688         properties and methods.
16689
16690 2003-08-06  Martin Baulig  <martin@ximian.com>
16691
16692         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16693         make this work for applications with multiple application domains.
16694
16695 2003-08-04  Martin Baulig  <martin@ximian.com>
16696
16697         * mono-debug-debugger.c: Completely reworked the type support; the
16698         most important thing is that we're now just using one single
16699         `MonoType' instance per type.
16700
16701 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16702
16703         * mono-endian.h, mono-endian.c, icall.c: Added icall
16704         ves_icall_System_Double_AssertEndianity to assert double word endianity
16705         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16706
16707 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16708
16709         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16710         support, icalls and fixes.
16711
16712 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16713
16714         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16715         classes that are a punctuation character in .NET is not the same a
16716         g_unichar_ispunct.
16717
16718 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16719
16720         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16721
16722 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16723
16724         * icall.c: Add new MemCopy internalcall.
16725         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16726         Simplified code; It is not necessary to handle all the cases here,
16727         as the C# code takes care of it.  Only handle the case of the name
16728         resource embedded into the assembly.
16729
16730         Changed signature to return the data pointer and the size of the
16731         data. 
16732
16733 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16734
16735         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16736         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16737
16738 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16739
16740         * socket-io.c: ignore EINTR error in select.
16741
16742 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16743
16744         * class.h, class.c: removed unused subclasses field in MonoClass.
16745
16746 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16747
16748         * icall.c: improve fix of get_base_definition(). If the parent class
16749           doesn't have the mehod, look at the parent of the parent.
16750         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16751           to check if a parameter is an in or out parameter
16752           (PARAM_ATTRIBUTE_IN is not set by default).
16753           mono_method_return_message_restore(): Use mono_class_value_size to
16754           get the size of a value type. mono_type_stack_size (parameterType)
16755           does not return the correct value if parameterType is byRef.
16756           mono_load_remote_field(), mono_load_remote_field_new(),
16757           mono_store_remote_field(), mono_store_remote_field_new():
16758           raise exception if the remote call returns an exception.
16759
16760 2003-07-28  Martin Baulig  <martin@ximian.com>
16761
16762         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16763         method.  This is a wrapper around mono_runtime_invoke() which
16764         boxes the instance object if neccessary.
16765
16766 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16767
16768         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16769         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16770
16771 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16772
16773         * icall.c: disable mcs bug workaround.
16774
16775 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16776
16777         * object.c (mono_runtime_class_init): Take the metadata_section
16778         mutex before obtaining the domain mutex.
16779
16780         * appdomain.h: Added definition of metadata_section mutex here. 
16781
16782         * object.c: define metadata_mutex here.
16783
16784 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16785
16786         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16787         fixed.
16788
16789 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16790
16791         * reflection.c: Fix bug #46669
16792
16793 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16794
16795         * exception.c:
16796         * exception.h:
16797         * icall.c:
16798         * object.h: fill in the type name for TypeLoadException.
16799
16800 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16801
16802         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16803         relationship between TypeBuilders while compiling corlib) and bug
16804         45993 (Array types returned from the runtime while compiling
16805         corlib were from the loaded corlib).
16806
16807 2003-07-22  Martin Baulig  <martin@ximian.com>
16808
16809         * mono-debug-debugger.c: Reworked the type support a bit more;
16810         distinguish between types and classes.
16811
16812 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16813
16814         * icall.c: add IsArrayImpl icall.
16815
16816 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16817
16818         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16819         initializing real_size only once. Also fix bug #46602.
16820
16821 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
16822
16823         * object.c: Renamed mono_metadata_section to metadata_section.
16824
16825 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
16826
16827         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
16828           empty array if the type is an array. Fixed.
16829           ves_icall_MonoMethod_get_base_definition: if the base method
16830           is abstract, get the MethodInfo from the list of methods of
16831           the class.
16832         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16833           and it was 1-based. Fixed in mono_param_get_objects.
16834
16835 2003-07-20  Martin Baulig  <martin@ximian.com>
16836
16837         * mono-debug.h: Set version number to 31.
16838         (mono_debug_init): Added `MonoDomain *' argument.
16839
16840         * mono-debug-debugger.c: Reworked the type support; explicitly
16841         tell the debugger about builtin types; pass the `klass' address to
16842         the debugger.
16843
16844 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16845
16846         * image.c: Allow new metadata tables to be loaded without a
16847         warning. Also update the warning message to give the new constant value.
16848                 
16849 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16850
16851         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16852         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16853         array type representation changes.
16854
16855 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16856
16857         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16858         on Environment.Exit () call.
16859
16860 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16861
16862         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16863         requires a matching corlib.
16864
16865 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16866
16867         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16868           Committed again without the CRs.
16869         
16870 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16871
16872         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16873           getting it from the "this" socket instance. Did not work
16874           if the socket is a subclass of Socket.
16875           Also fixed bug #35371.
16876
16877 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16878
16879         * metadata.c: fixed size for TypedByRef.
16880         * loader.c: when searching for a method, consider the vararg amrker.
16881         * unicode.c, decimal.c: constify some arrays.
16882
16883 2003-07-15  Dick Porter  <dick@ximian.com>
16884
16885         * socket-io.c: Fixed compilation for gcc < 3.2.
16886
16887         Fixed compilation for machines that don't have AF_INET6 (thanks to
16888         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16889
16890         Fixed compile warnings.
16891         
16892         Fixed formatting and line endings.
16893
16894 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16895
16896         * socket-io.h:
16897         * socket-io.c: Added IPv6 support.
16898
16899 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16900
16901         * class.c (mono_class_is_assignable_from): New function to implement
16902         the is_assignable_from logic. Used by mono_object_isinst, 
16903         Type::IsAssignableFrom () and the interpreter.
16904
16905         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16906         Object, even interfaces.
16907         
16908         * object.c (mono_object_isinst): Implement in terms of 
16909         is_assignable_from.
16910
16911         * icall.c (ves_icall_type_is_assignable_from): New icall.
16912
16913 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16914
16915         * domain.c (foreach_domain): fix compiler warning.
16916
16917 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16918
16919         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16920         not available on all plattforms
16921
16922 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16923
16924         * image.h image.c: Store the metadata version string in MonoImage.
16925         * icall.c: New icall to retrieve the image version.
16926         * reflection.c (create_dynamic_image): Fill in the image version field
16927         * reflection.c (build_compressed_metadata): Use the image version
16928         from the image structure.
16929
16930 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16931
16932         * appdomain.c: modified comment.
16933         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16934         That will be its last iteration when mono_gc_cleanup is called from
16935         mono_runtime_cleanup and before the domain is unloaded.
16936
16937         Fixes bug #45962.
16938
16939 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16940
16941         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16942         attributes.
16943
16944 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16945
16946         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16947         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16948         Bernie Solomon <bernard@ugsolutions.com>.
16949
16950 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16951
16952         * object.c, object.h: provide mono_object_new_fast() for faster
16953         allocation in some special cases.
16954
16955 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16956
16957         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16958         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16959
16960 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16961
16962         * threadpool.c: fix leaks.
16963
16964 2003-07-01  Dick Porter  <dick@ximian.com>
16965
16966         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16967         using MonoGHashTables.  Fixes threadpool bug posted to list.
16968
16969 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16970
16971         * image.h, image.c: added support to load an assembly from a byte array.
16972         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16973         assembly bundle support.
16974
16975 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16976
16977         * threadpool.c (mono_thread_pool_add): keep a reference to the
16978         AsyncResult to prevent GC
16979
16980 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16981
16982         * class.c: leak fix.
16983
16984 2003-06-25  Dick Porter  <dick@ximian.com>
16985
16986         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16987         for the async object, the WaitHandle object will close the handle.
16988         Fixes bug 45321.
16989
16990 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16991
16992         * class.c: in mono_array_class_get (), lookup from the hash with the
16993         same type we insert: this works around a bug in
16994         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16995         lluis. The real fix will have to wait for after the release.
16996
16997 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16998
16999         * icall.c: fix memory leak when getting type members.
17000
17001 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17002
17003         * reflection.c: added more pubtoken special cases.
17004
17005 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
17006
17007         * class.c: handle field offset correctly when class size
17008         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
17009
17010 2003-06-20  Martin Baulig  <martin@ximian.com>
17011
17012         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
17013         *image' field.
17014
17015 2003-06-20  Martin Baulig  <martin@ximian.com>
17016
17017         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
17018
17019 2003-06-20  Martin Baulig  <martin@ximian.com>
17020
17021         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
17022         just distinguish between variables in registers and variables at
17023         an offset relative to a register.
17024
17025 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17026
17027         * icall.c: #ifdef out latest changes until mcs is fixed.
17028
17029 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17030
17031         * icall.c: return members in metadata order.
17032
17033 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17034
17035         * icall.c: avoid infinite loop in GetTimeZoneData.
17036
17037 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
17038
17039         * icall.c: added Marshal.Prelink/All icalls.
17040
17041 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17042
17043         * object.c, object.h: fix warnings and do some overflow checking
17044         when creating arrays.
17045
17046 2003-06-17  Dick Porter  <dick@ximian.com>
17047
17048         * file-io.h:
17049         * file-io.c: File attributes need to be tweaked slightly when
17050         passed from the managed to the w32 world.
17051
17052 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17053         * profiler.h profiler-private.h profiler.c: Rework last patch
17054         based on suggestion by Paolo.
17055         
17056 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17057
17058         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
17059         instruction level coverage data collection.
17060         * profiler.h profiler.c (: Added new callback function which can be
17061         used by the profiler to limit which functions should have coverage
17062         instrumentation.
17063         * profiler.c (mono_profiler_load): Call g_module_build_path to
17064         generate the file name of the profiler library.
17065
17066 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17067
17068         * profiler.c, profiler.h, profiler-private.h: added basic block 
17069         coverage profiling API.
17070
17071 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
17072
17073         * reflection.c (mono_reflection_create_runtime_class): Add support
17074         for events in dynamically generated code.
17075
17076         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
17077         not allocated.
17078
17079 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17080
17081         * icall.c: when getting timezone info, return reasonable values if we
17082         can't get the actual data.
17083
17084 2003-06-14  Dick Porter  <dick@ximian.com>
17085
17086         * threads.c (start_wrapper): Remove the reference to the thread
17087         object in the TLS data, so the thread object can be finalized.
17088         This won't be reached if the thread threw an uncaught exception,
17089         so those thread handles will stay referenced :-( (This is due to
17090         missing support for scanning thread-specific data in the Boehm GC
17091         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
17092
17093 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
17094
17095         * reflection.c: ensure streams and tables are first allocated with
17096         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
17097
17098 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17099
17100         * icall.c: fixed GetElementType for byrefs (bug# 44792).
17101
17102 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
17103
17104         * reflection.c (mono_reflection_create_runtime_class): Add support for
17105         properties to dynamically created classes.
17106         * reflection.c: Fix a few places where non-MonoObjects were inserted
17107         into the tokens hashtable.
17108
17109 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17110
17111         * object.c: some support to handle out of memory exceptions.
17112
17113 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17114
17115         * marshal.c (mono_marshal_get_native_wrapper): support reference
17116         return types
17117
17118 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17119
17120         * object.h, object.c: more portability stuff from Bernie Solomon.
17121         Unexport mono_object_allocate(). Added mono_object_unbox ().
17122         Set exitcode when an unhandled exception is thrown.
17123
17124 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17125
17126         * marshal.c (mono_marshal_get_native_wrapper): use custom
17127         marshaler for return types.
17128
17129 2003-06-10  Dick Porter  <dick@ximian.com>
17130
17131         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17132         ip_mreq is available
17133
17134 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17135
17136         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17137         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17138         by Bernie Solomon <bernard@ugsolutions.com>.
17139
17140 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17141
17142         * gc.c (mono_gc_init): Avoid error message on shutdown when
17143         GC_DONT_GC=1 is used.
17144
17145         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17146         New icall to return the GUID of a module.
17147
17148 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17149
17150         * class.c: ensure instance size always includes the parent's size
17151         even whem class size is set explicitly (fixes bug#44294).
17152
17153 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17154
17155         * profiler.h, profiler.c: made the simple profiler thread-safe,
17156         get more accurate timing info. Allow the loading of an
17157         externally-developed profiler module.
17158
17159 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17160
17161         * marshal.c (mono_marshal_get_native_wrapper): improved
17162         class/byref arguments.
17163         (mono_marshal_get_native_wrapper): better string marshaling support.
17164
17165 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17166
17167         * class.c: ensure .pack and .size are handled correctly and
17168         simplified layout of static fields.
17169
17170 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17171
17172         * appdomain.c
17173         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17174
17175         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17176         current directory (fix bug 44008)
17177
17178 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17179
17180         * marshal.c (mono_marshal_get_native_wrapper): started support for
17181         custom marshalers.
17182         (mono_delegate_to_ftnptr): consider marshalling specifications
17183
17184 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17185
17186         * reflection.c, reflection.h: emit custom marshal info.
17187
17188 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17189
17190         * object.c: free the GError.
17191         * icall.c: added CloseEvent_internal.
17192         * threads.[ch]:
17193         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17194         call.
17195
17196 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17197
17198         * loader.c (mono_method_get_signature): Add support for dynamic
17199         assemblies.
17200
17201 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17202
17203         * reflection.c: fixed bug #43905.
17204
17205 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17206
17207         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17208         handling TypedReference and ArgIterator.
17209         * loader.c, loader.h: added function to get signature at call site.
17210
17211 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17212
17213         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17214         data readonly. Buglets and warning fixes. Some MethodSpec support.
17215
17216 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17217
17218         * class.h, class.c, object.c: remove relative numbering support.
17219
17220 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17221
17222         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17223         free the string, until we get a chance to fix Gtk#
17224
17225 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17226
17227         * marshal.c: revert last patch.
17228
17229 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17230
17231         * icall.c: updates for new mono_class_vtable() not calling
17232         the type constructor anymore.
17233
17234 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17235
17236         * object.h, object.c: separate vtable creation from type
17237         initialization. Make running the .cctor thread safe.
17238
17239 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17240
17241         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17242
17243 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17244
17245         * loader.c (mono_get_method): consider calling convention
17246
17247 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17248
17249         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17250         to return the invisible global type for a module.
17251
17252         * reflection.c (mono_image_build_metadata): Emit global fields too.
17253
17254 2003-05-20  Peter Williams  <peterw@ximian.com>
17255
17256         * loader.c (mono_lookup_internal_call): Add a few newlines.
17257
17258 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17259
17260         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17261         literal strings.
17262
17263         * appdomain.c (set_domain_search_path): Recalculate search path when
17264         AppDomainSetup.PrivateBinPath changes.
17265
17266         * object.c (mono_class_compute_gc_descriptor): It turns out some
17267         parts of the class libs (like System.Thread) holds pointers to
17268         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17269         to treat native int a pointer type here.
17270         
17271 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17272
17273         * appdomain.h, domain.c: add hashtable for jump target resolution.
17274
17275 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17276
17277         * reflection.h reflection.c icall.c: Added new icalls 
17278         GetManifestResourceInfoInternal, GetModulesInternal and support
17279         infrastructure.
17280
17281 2003-05-16  Dick Porter  <dick@ximian.com>
17282
17283         * icall.c:
17284         * file-io.h:
17285         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17286
17287 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17288
17289         * object.c: mono_store_remote_field: little fix to previous patch.
17290
17291 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17292
17293         * class.c: add constructors to array classes.
17294         * icall.c: special case array construction for InternalInvoke (),
17295
17296 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17297
17298         * class.h class.c reflection.c object.c: Added support for field
17299         defaults in dynamically generated classes.
17300
17301 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17302
17303         * reflection.c: properly encode charset for ddlimport.
17304
17305 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17306
17307         * threads.c: allow compiling without GC.
17308
17309 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17310
17311         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17312         handling of thread static data.
17313
17314 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17315
17316         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17317
17318 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17319
17320         * class.c (mono_array_class_get): always set the serializable flags
17321         (mono_array_class_get): always set the SEALED attribute for array types
17322
17323 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17324
17325         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17326         attributes (fix for bug 42021).
17327
17328 2003-05-12  Dick Porter  <dick@ximian.com>
17329
17330         * gc.c: Don't run finalizers when the finalizer thread is
17331         finishing up, because the default domain has already been
17332         destroyed.
17333
17334 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17335
17336         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17337         value is null, we should throw an exception.   This is slightly
17338         different than the other conventions used for the constructor.
17339
17340 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17341
17342         * socket-io.c: fixed windows build.
17343
17344 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17345
17346         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17347
17348 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17349
17350         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17351         compilers.
17352
17353 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17354
17355         * class.c (mono_class_layout_fields): Add experimental GC aware
17356         auto layout facility. Requires class library changes to work correctly.
17357
17358         (mono_class_setup_vtable): Avoid overriding explicit interface
17359         method implementations. Fixes iface3.exe test.
17360
17361         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17362         object reference.
17363         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17364         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17365
17366         * metadata.h: Add new type classification macro which determines
17367         whenever the type holds an object reference.
17368
17369 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17370
17371         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17372
17373 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17374
17375         * gc.c (finalizer_thread): Work around a GC bug.
17376
17377 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17378
17379         * marshal.c (emit_struct_conv): allow unions
17380
17381         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17382
17383 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17384
17385         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17386
17387 2003-05-06  Martin Baulig  <martin@ximian.com>
17388
17389         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17390
17391 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17392
17393         * socket-io.c:
17394         (Select_internal): allow NULLs, don't create arrays if not needed.
17395         Coupled with Socket.cs changes.
17396
17397         * threadpool.c:
17398         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17399         register a finalizer for it that will close the semaphore handle. This
17400         fixes the leak and make Lupus' test run with > 4080 loops.
17401
17402 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17403
17404         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17405         Jerome Laban (bug #42287)
17406
17407 2003-05-02  Martin Baulig  <martin@ximian.com>
17408
17409         * debug-mono-symfile.h
17410         (MonoSymbolFile): Moved declaration into mono-debug.h.
17411         (MonoDebugMethodJitInfo): Likewise.
17412         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17413         argument.
17414         (_mono_debug_address_from_il_offset): Take a
17415         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17416
17417         * mono-debug.h
17418         (MonoDebugDomainData): New struct.
17419         (mono_debug_get_domain_data): New function.
17420         (mono_debug_add_method): Take an additional `MonoDomain *'
17421         argument.
17422         (mono_debug_source_location_from_address): Likewise.
17423         (mono_debug_il_offset_from_address): Likewise.
17424         (mono_debug_address_from_il_offset): Likewise.
17425
17426 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17427
17428         * reflection.c: one more check for null type in custom attrs.
17429
17430 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17431
17432         * reflection.c: avoid warning (comparison is always false due to limited
17433         range of data type).
17434
17435 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17436
17437         * icall.c: throw an exception in Type.GetField if the argument 'name'
17438         is NULL.
17439
17440 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17441
17442         * reflection.c: fixed handling of enums in named arguments to custom
17443         attributes (bug #42123).
17444
17445 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17446
17447         * reflection.c: use the right array element type and handle
17448         a null for a Type argument, too.
17449
17450 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17451
17452         * reflection.c: handle arrays as arguments to custom attributes.
17453
17454 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17455
17456         * reflection.c: handle a string value in a custom attr
17457         ctor that takes an object.
17458
17459 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17460
17461         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17462         (fix bug #42063)
17463
17464 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17465
17466         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17467
17468 2003-04-27  Martin Baulig  <martin@ximian.com>
17469
17470         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17471         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17472         MONO_DEBUGGER_EVENT_BREAKPOINT.
17473         (mono_breakpoint_trampoline_code): Removed.
17474         (mono_debugger_event_handler): The last argument is now a
17475         `guint32'.
17476         (mono_debugger_insert_breakpoint_full): Removed the
17477         `use_trampoline' argument.
17478         (mono_debugger_method_has_breakpoint): Likewise.
17479         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17480         mono_debugger_breakpoint_callback(); take the method and
17481         breakpoint number as arguments.
17482
17483 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17484
17485         * metadata.c: fix off by one when loading parameters attributes.
17486
17487 2003-04-24  Martin Baulig  <martin@ximian.com>
17488
17489         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17490
17491 2003-04-24  Martin Baulig  <martin@ximian.com>
17492
17493         * mono-debug-debugger.c: Moved all code which interacts with the
17494         Mono Debugger here.
17495
17496         * debug-mono-symfile.c: This code now just deals with the symbol
17497         file itself, the debugger code is now in mono-debug-debugger.c.
17498
17499 2003-04-23  Martin Baulig  <martin@ximian.com>
17500
17501         * mono-debug.c (mono_debug_source_location_from_il_offset):
17502         New method; like mono_debug_source_location_from_address(), but
17503         takes an IL offset instead of a machine address.
17504
17505 2003-04-23  Martin Baulig  <martin@ximian.com>
17506
17507         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17508         `line' field; this is now computed by the debugger.
17509
17510 2003-04-23  Martin Baulig  <martin@ximian.com>
17511
17512         * mono-debug.[ch]: New files.  This is the new debugging interface.
17513
17514         * mono-debug-debugger.[ch]: New files.  Moved all code which
17515         interacts with the Mono Debugger here.
17516
17517 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17518
17519         * domain.c (mono_init): initialize mono_defaults.monitor_class
17520
17521 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17522
17523         * reflection.c (method_encode_code): Add a spicy exception to help
17524         future compiler authors.
17525
17526 2003-04-21  Martin Baulig  <martin@ximian.com>
17527
17528         * icall.c
17529         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17530         Make this work with relative pathnames; g_filename_to_uri() needs
17531         an absolute filename.
17532
17533 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17534
17535         * icall.c: Track name changes in Object and ValueType.
17536
17537 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17538
17539         * metadata.c (mono_type_stack_size): size should be a multiple of
17540         sizeof (gpointer)
17541
17542 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17543
17544         * gc.c:
17545         (internal_domain_finalize): moved into mono_domain_finalize. No need
17546         to create another thread because the finalizers will be run in the
17547         finalizer thread.
17548         
17549         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17550         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17551         to be run (MS does this too).
17552
17553 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17554
17555         * object.c (mono_class_compute_gc_descriptor): Update comment.
17556
17557         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17558
17559         * image.h: Add synchronized wrapper cache.
17560
17561         * image.c (do_mono_image_open): Initialize cache.
17562
17563         * reflection.c (create_dynamic_mono_image): Initialize cache.
17564
17565 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17566
17567         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17568         ves_icall_System_Buffer_ByteLengthInternal.
17569
17570 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17571
17572         * reflection.c: setup klass->nested_in earlier. Allow
17573         a dash in the assembly name.
17574
17575 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17576
17577         * metadata.c (mono_type_to_unmanaged): dont access
17578         type->data.klass for MONO_TYPE_OBJECT
17579         (mono_type_to_unmanaged): consider System.Delegate class
17580
17581 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17582
17583         * class.c: just setup supertypes in the proper place instead of
17584         initializing the full element class for arrays.
17585
17586 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17587
17588         * class.c: ensure the element class of arrays is initialized.
17589         Setup the supertype info for array classes, too.
17590
17591 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17592
17593         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17594
17595 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17596
17597         * Makefile.am: re-added -m option when running cygpath. This way,
17598         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17599         separator.
17600         * mono-config.c: same codepath for locating mono config file for WIN32
17601         and the rest.
17602         * assembly.c: if mono_assembly_setrootdir is called, don't override
17603         the value set.
17604
17605 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17606
17607         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17608         MONO_ASSEMBLIES variable.
17609
17610 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17611
17612         * icall.c: added Assembly::GetNamespaces() icall.
17613
17614 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17615
17616         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17617
17618 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17619
17620         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17621         * object.c: fixed bug in the construction of vtable for proxies
17622
17623 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17624
17625         * object.c (mono_array_new): Mark mono_array_new as an icall.
17626
17627 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17628
17629         * class.c: fixed test for public method when overriding interfaces.
17630         Closes bug #40970.
17631
17632 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17633
17634         * appdomain.h, domain.c: added mono_domain_foreach() to
17635         be able to access the currently loaded appdomains.
17636         * object.c: make string interning work across sppdomains.
17637         Mark some functions for use as icalls.
17638
17639 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17640
17641         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17642
17643         * reflection.h reflection.c: Allocate long living data using 
17644         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17645
17646         * reflection.c: Double the allocation size in streams instead of
17647         increasing it, to prevent unneccesary copying on large assemblies.
17648         
17649         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17650         creation if the assembly does not have the Run flag set.
17651
17652 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17653
17654         * class.h: avoid the C++ keywords in header files (Jerome Laban
17655         spotted and fixed this).
17656
17657 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17658
17659         * object.c:
17660         (mono_unhandled_exception): fill in the arguments for the
17661         UnhandledException event. Only trigger that event for the default
17662         domain (as MS does).
17663
17664 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17665
17666         * object.c: Improve typed allocation stuff based on suggestions from
17667         Paolo. Also turn it on if the GC library supports it.
17668
17669 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17670
17671         * object.c object.h class.h: Added experimental typed allocation
17672         facility using the interfaces in gc_gcj.h.
17673
17674         * os/gc_wrapper.h: Added new include files.
17675         
17676 2003-04-03  Martin Baulig  <martin@ximian.com>
17677
17678         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17679         which is not yet enabled by default.
17680
17681         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17682         functions.
17683         (mono_gc_lock, mono_gc_unlock): New static functions.
17684
17685         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17686         functions; stop/start the world for the garbage collector.  This
17687         is using the windows API; we need to complete the SuspendThread()/
17688         ResumeThread() implementation in the io-layer to make this work on Unix.
17689         (mono_gc_push_all_stacks): New public function; tells the garbage
17690         collector about the stack pointers from all managed threads.
17691
17692 2003-04-03  Martin Baulig  <martin@ximian.com>
17693
17694         * object.h (MonoThread): Added `gpointer stack_ptr'.
17695
17696         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17697
17698 2003-04-03  Martin Baulig  <martin@ximian.com>
17699
17700         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17701
17702 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17703
17704         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17705         field.last.
17706
17707 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17708
17709         * loader.c (mono_lookup_internal_call): Report the corlib that is
17710         out of sync.
17711
17712 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17713
17714         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17715         System.DBNull (it's class not valuetype).
17716
17717 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17718
17719         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17720         if the array method was already assigned a token (fixes bug#40646).
17721
17722 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17723
17724         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17725         if no assembly is given.
17726
17727 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17728
17729         * metadata.h: Added the new tables.
17730
17731         * row-indexes.h: Added definitions for new tables.
17732
17733         * metadata.c: Add schemas for new tables, and add support for
17734         computing the sizes of them.
17735
17736         * class.c: Update for handling the new type cases.
17737
17738 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17739
17740         * metadata.h (MONO_TYPE_IS_VOID): new macro
17741
17742 2003-03-31  Martin Baulig  <martin@ximian.com>
17743
17744         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17745
17746         * threads.c (mono_thread_new_init): Call `thread_created' in the
17747         mono_thread_callbacks.
17748
17749 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17750
17751         * loader.h: added marshalbyrefobject_class to mono_defaults
17752         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17753         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17754           generation of output parameters.
17755           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17756         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17757           contextbound and the target object belongs to the context of the caller.
17758         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17759         * object.c: Implemented support for interfaces and abstract classes
17760           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17761           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17762
17763 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17764
17765         * class.h class.c (mono_class_is_subclass_of): New function.
17766         
17767         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17768         routines for most common case (calls from ArrayList::ToArray).
17769
17770         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17771         routine so programs which call Environment::Exit() can be profiled.
17772
17773         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17774         Added MONO_ARCH_SAVE_REGS.
17775
17776         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17777
17778 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17779
17780         * blob.h: Add a couple of new MonoType types definitions.
17781
17782         * tabledefs.h: Add a couple of new call convs.
17783
17784 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17785
17786         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17787         the layout of the class.
17788
17789         * reflection.c (alloc_table): double the size on overflow to avoid
17790         unnecessary copying.
17791
17792         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17793         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17794         null so it can be garbage collected.
17795         
17796 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17797
17798         * reflection.c (mono_reflection_get_type): Return the resolved type
17799         only if it is in the assembly we searched.
17800
17801         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17802
17803         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17804         method.
17805
17806 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17807
17808         * appdomain.c:
17809         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17810         the right one is 'file:///blah', but MS allows it.
17811         * assembly.c:
17812         (mono_assembly_open): allow 'file://blah'
17813
17814         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17815
17816 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17817
17818         * socket-io.c: fixes bug #40310.
17819
17820 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
17821
17822         * reflection.c (mono_reflection_parse_type): handle deeply nested
17823         types correctly.
17824
17825         * reflection.c (mono_image_create_token): Use unique token values
17826         since they will be put into a hash table.
17827
17828         * class.c (mono_class_setup_vtable): If a method occurs in more than
17829         one place in the vtable, and it gets overriden, then change the
17830         other occurances too.
17831
17832         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17833         object as return type.
17834
17835 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17836
17837         * icall.c: Deleted "ToString" implementation for double and float
17838         because they are full implemented in managed code.
17839
17840 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17841
17842         * reflection.c, reflection.h: implemented and exported functions
17843         to retrieve info about custom attributes.
17844
17845 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17846
17847         * appdomain.c: moved Uri handling to assembly.c
17848         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17849         work when using a file Uri in *nix and windows.
17850
17851         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17852         GetReferencedAssemblies.
17853
17854 2003-03-18  Dick Porter  <dick@ximian.com>
17855
17856         * icall.c: Rename a couple of internal calls
17857
17858         * threads.c: Set the thread state to Stopped when a thread exits.
17859         Fixes bug 39377.
17860
17861 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17862
17863         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17864         New icall.
17865
17866         * object.c (mono_class_vtable): fix warning.
17867
17868 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17869
17870         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17871
17872         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17873         memory.
17874         (method_encode_clauses): Create exception info structures in the right
17875         order.
17876         (mono_reflection_setup_internal_class): Initialize supertypes field.
17877
17878         * class.c object.c: Handle interfaces which implement other interfaces 
17879         correctly.
17880
17881         * class.h class.c: Move the supertypes array initialization code into 
17882         a separate function so it can be used for dynamic types too. Also call
17883         it earlier, in mono_class_init(), since it can be used before the
17884         type is initialized.
17885
17886 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17887
17888         * Makefile.am:
17889         * assembly.c:
17890         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17891
17892         * appdomain.c:
17893         * appdomain.h:
17894         * marshal.c:
17895         * object.c: remove warnings.
17896
17897 2003-03-13  Martin Baulig  <martin@ximian.com>
17898
17899         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17900         (MonoDebugLexicalBlockEntry): New types.
17901
17902         * debug-mono-symfile.c
17903         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17904
17905 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17906
17907         * process.c: ret can be any non-zero value accroding to MS doc.
17908
17909 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17910
17911         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17912         fixing a warning for a miss-used prototype, would have cause
17913         random memory corruption.
17914
17915 2003-03-07  Martin Baulig  <martin@ximian.com>
17916
17917         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17918         getting really annoying ....
17919
17920 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17921
17922         * reflection.c (fixup_method): added support for array methods.
17923
17924 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17925
17926         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17927         (pointed out by Michael Adams).
17928
17929 2003-03-04  Dick Porter  <dick@ximian.com>
17930
17931         * icall.c: Temporarily reverted the Double and Single ToString()
17932         change, because it broke nunit.
17933
17934 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17935
17936         * object.h, threads.h: make include files compatible with C++
17937         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17938
17939 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17940
17941         * icall.c: Erased ToString helper functions for Double and Single.
17942         Now, that implementations ar all in managed code (Double and Single
17943         Formatters).
17944
17945 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17946
17947         * appdomain.c: Added method for initializing the default context of
17948         a domain. Added internal call for getting the default context.
17949         * appdomain.h: Added context variable in MonoDomain struct.
17950         * domain.c: mono_domain_set also sets the default context of the domain
17951         * icall.c: Mapped internal method InternalGetDefaultContext.
17952         * object.c: mono_object_get_virtual_method returns always a remoting
17953         wrapper if the object is a transparent proxy.
17954         mono_runtime_invoke_array: when creating an object by calling the
17955         constructor, if the created object is a proxy, then the constructor should
17956         be called using the a remoting wrapper.
17957
17958 2003-03-03  Dick Porter  <dick@ximian.com>
17959
17960         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17961         variable so it compiles on solaris.  Problem spotted by
17962         Christopher Taylor <ct@cs.clemson.edu>
17963
17964 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17965
17966         * appdomain.c:
17967         (get_info_from_assembly_name): don't leak value.
17968
17969         * icall.c:
17970         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17971         result.
17972
17973 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17974
17975         * assembly.c: export mono_image_load_references ().
17976         * class.c: handle function pointers. mono_class_from_name() now
17977         supports nested type names directly.
17978
17979 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17980
17981         * reflection.h reflection.c: Encode already created dynamic methods 
17982         and fields correctly as a DEF instead of a REF.
17983
17984         * reflection.c: Get rid of the force_ref argument to 
17985         mono_image_typedef_or_ref since it was wrong in the first place.
17986
17987         * string-icalls.c: add error checking to string constructors according
17988         to the MSDN docs.
17989
17990         * reflection.c: Emit types in the order their TypeBuilders were 
17991         created. Previously, a new table index was assigned to each type before
17992         the tables were emitted. This was wrong because the signature blob
17993         might already refer to a type by its original table index.
17994
17995 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17996
17997         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17998         change.
17999         
18000 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18001
18002         * Makefile.am: make assemblies dir have \ instead of / on windows.
18003
18004 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
18005
18006         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
18007         iterate over the NESTEDCLASS table using a linear search since the
18008         table is not guaranteed to be sorted by the secondary key.
18009
18010         * class.c (mono_class_create_from_typedef): fixed up call to
18011         mono_metadata_nesting_typedef.
18012         
18013 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
18014
18015         * marshal.c (mono_string_to_byvalstr): clear the memory as
18016         suggested by Jerome Laban <jlaban@wanadoo.fr>
18017
18018 2003-02-26  Dick Porter  <dick@ximian.com>
18019
18020         * process.c: Cope with padding in .rsrc blocks
18021
18022 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18023
18024         * metadata.h: reverted the filter_len change, it breaks reflection
18025         
18026 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18027
18028         * metadata.h: added a new field to store the filter_len
18029         
18030
18031 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
18032
18033         * reflection.c: handle custom attributes for types and members
18034         created with Reflection.Emit (bug#38422).
18035
18036 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
18037
18038         * reflection.c: define RTSpecialName automatically for constructors for
18039         compatibility with MS.NET.
18040
18041         * reflection.c (mono_reflection_create_runtime_class): initialize
18042         nested_in field of dynamically created classes.
18043
18044 2003-02-22  Martin Baulig  <martin@ximian.com>
18045
18046         * debug-mono-symfile.h: Incremented version number.
18047
18048 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18049
18050         * object.h icall.c process.c: fix warnings.
18051
18052 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18053
18054         * appdomain.h appdomain.c:
18055         (mono_domain_try_type_resolve): split the 
18056         name_or_tb argument into a name and a tb argument.
18057         (mono_domain_has_type_resolve): new function to check whenever the
18058         application has registered a TypeResolve event handler.
18059         
18060         * icall.c reflection.h reflection.c: move the type resolve logic into
18061         mono_reflection_get_type () so it will be invoked when 
18062         Assembly::GetType () is called.
18063
18064         * reflection.c:
18065         (mono_reflection_get_type): renamed to get_type_internal.
18066         (mono_reflection_get_type): fixed type name generation so it works 
18067         for nested types too.
18068         (mono_reflection_get_type): call has_type_resolve () to avoid the 
18069         costly type name generation if there is no resolve event handler.
18070
18071 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18072
18073         * class.c, image.c: load exported types from file references.
18074
18075 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
18076
18077         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
18078           used to cache the managed methods used to create proxies and make 
18079           remote invocation of methods.
18080         * class.h: Added in MonoVTable a flag to indicate that a class needs 
18081           to be remotely created.
18082         * object.c: Modified the method mono_class_vtable(). It now initializes 
18083           the remote flag of the vtable. Modified mono_object_new_specific(), 
18084           so now it checks the remote flag.
18085         * icall.c: Added a couple of internal methods, one for enabling instance 
18086           creation interception for a type, and one for creating objects bypassing
18087           the remote check.
18088
18089 2003-02-18  Martin Baulig  <martin@ximian.com>
18090
18091         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
18092         New interncall to get a method's metadata token.
18093
18094         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
18095         New interncall for the debugger.
18096
18097 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
18098
18099         * class.c (mono_class_setup_vtable): allocate supertype array
18100
18101 2003-02-18  Martin Baulig  <martin@ximian.com>
18102
18103         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
18104
18105 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18106
18107         * reflection.c:
18108         (assembly_name_to_aname): jump over unknown properties (i've found
18109         something like: 'type, assembly, version=xxx, custom=null, public...',
18110         so now will ignore custom=null and still get the rest of the values).
18111
18112 2003-02-17  Dick Porter  <dick@ximian.com>
18113
18114         * threads.c: Have Thread.Start() wait for a semaphore to signal
18115         that the thread has set up all its local data.  This fixes bug
18116         34323, where Abort() raced the new thread's TLS data.
18117
18118         Also removes the handle_store() call from start_wrapper, because
18119         threads are now always created suspended and there is no longer a
18120         race between the parent and child threads to store the info.
18121
18122 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18123
18124         * image.c: explain the #- heap issue in a message, hopefully
18125         avoiding FAQs on mono-list.
18126
18127 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18128
18129         * icall.c:
18130         (GetEntryAssembly): if the domain has not invoked
18131         AppDomain.ExecuteAssembly yet, return the assembly of the default
18132         AppDomain.
18133
18134 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18135
18136         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18137
18138 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18139
18140         * metadata.c, reflection.c: simple speedup to type hash
18141         and equals code.
18142
18143 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18144
18145         * image.c, image.h, class.c, assembly.c: move module loading
18146         to MonoImage. When loading metadata, consider alignemnet from
18147         the start of metadata, not from the metadata address in memory.
18148
18149 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18150
18151         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18152         AssemblyBuilder objects. Factored out custom attribute creation into
18153         a separate function.
18154         (create_custom_attr): new function to create custom attributes.
18155
18156 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18157
18158         * Makefile.am: Got tired of typing the full pathname to pedump.
18159         Until there is another option, am installing this.
18160
18161 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18162
18163         * class.c (class_compute_field_layout): always set field->parent 
18164         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18165
18166 2003-02-11  Dick Porter  <dick@ximian.com>
18167
18168         * threads-types.h:
18169         * monitor.c: Rewrote Monitor, making lock much faster and
18170         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18171         creates them as needed.
18172
18173         * exception.c: Added SynchronizationLockException
18174
18175         * threads.c: Deleted old Monitor implementation.  The new one is
18176         in a new file.
18177
18178 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18179
18180         * class.c: handled TypedReference type code. Set the correct size for
18181         class data. Setup interface_offsets for interface classes, too.
18182
18183 2003-02-09  Martin Baulig  <martin@ximian.com>
18184
18185         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18186
18187 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18188
18189         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18190         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18191         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18192         * verify.c: check for code that runs after the end of the method.
18193
18194 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18195
18196         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18197         "System.Math::Round2".
18198         * sysmath.h: Added Floor, Round and Round2 definitions.
18199         * sysmath.c: Modified certain functions that were not 100% compliant
18200         with MS.NET (math precision) and added the implementation of Floor,
18201         Round and Round2.
18202
18203 2003-02-07  Martin Baulig  <martin@ximian.com>
18204
18205         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18206
18207 2003-02-07  Martin Baulig  <martin@ximian.com>
18208
18209         * debug-mono-symfile.c: Reflected latest symwriter changes.
18210         (mono_debug_create_mono_symbol_file): Removed.
18211         (mono_debug_open_mono_symbol_file): Take an argument which
18212         specifies whether to create a dynamic symbol file.
18213
18214 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18215
18216         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18217
18218 2003-02-05  Martin Baulig  <martin@ximian.com>
18219
18220         * reflection.c (mono_image_build_metadata): Make this public,
18221         protect it against being called multiple times, don't create
18222         resources and don't build the compressed metadata here.
18223         (mono_image_create_pefile): Do this here.
18224
18225         * icall.c
18226         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18227
18228 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18229
18230         * socket-io.c: fixed bug #36322.
18231
18232 2003-02-06  Piers Haken <piersh@friskit.com>
18233
18234         * appdomain.[ch]:
18235         * class.h:
18236         * debug-mono-symfile.c:
18237         * icall.c:
18238         * loader.c:
18239         * mono-config.c:
18240         * monosn.c:
18241         * reflection.c:
18242         * socket-io.c: warning cleanups
18243
18244 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18245
18246         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18247         function. works like remoting invoke, but does a check for the Proxy first.
18248
18249 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18250
18251         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18252
18253 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18254
18255         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18256         array of pointers.
18257         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18258         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18259
18260         * object.c (mono_store_remote_field_new): used by the new jit
18261         instead of mono_store_remote_field
18262         (mono_load_remote_field_new): used by the new jit
18263         instead of mono_load_remote_field
18264
18265 2003-02-05  Patrik Torstensson
18266
18267         * appdomain.c: changed unload to take the domain id instead
18268         of domain
18269         
18270         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18271
18272
18273 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18274
18275         * appdomain.c: don't look for assemblies in ApplicationBase if
18276         PrivateBinPathProbe is set.
18277
18278 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18279
18280         * object.c: make the first argument in main_args contain the absolute
18281         path to the assembly. Fixes bug #37511.
18282
18283 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18284
18285         * icall.c: get correct UTC offset for countries not using daylight
18286         time saving. Fixes bug #30030.
18287
18288 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18289
18290         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18291         and 1 are the family).
18292
18293 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18294
18295         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18296
18297         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18298
18299 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18300
18301         * reflection.c: added support for SignatureHelper tokens, which is
18302         needed by the Calli opcode.
18303
18304         * reflection.h: track changes to SignatureHelper class.
18305
18306         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18307
18308 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18309
18310         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18311
18312 2003-02-03  Patrik Torstensson
18313         * appdomain.[c|h], domain.c : 
18314          - Added support for getting a domain via domain id
18315          - Support for setting and getting domain from System.AppDomain 
18316            (used in cross appdomain channel)
18317          - Added support for get/set for a MonoAppContext on a thread 
18318            (Context class in System.Runtime.Remoting.Contexts),
18319          - Removed hack in Get/SetData and ExecuteAssembly.
18320         
18321         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18322         the managed world to get control when a proxy is created.
18323
18324         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18325         
18326 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18327
18328         * icall.c
18329         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18330         Populate the codebase field as well.
18331
18332 2003-02-02  Martin Baulig  <martin@ximian.com>
18333
18334         * debug-mono-symfile.c
18335         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18336         (mono_debug_symfile_add_method): Allow interncalls.
18337
18338 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18339
18340         * icall.c: throw parse exception if strtod fails or the string is empty.
18341
18342 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18343
18344         * marshal.c: handle object type separately from defined
18345         class types.
18346
18347 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18348
18349         * marshal.c: handle NATIVE_LPSTR for strings when it's
18350         explicitly specified.
18351
18352 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18353
18354         * reflection.c, reflection.h, icall.c: setup the reflection
18355         handle cache for ModuleBuilders and AssemblyBuilders.
18356
18357 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18358
18359         * reflection.c (reflection_methodbuilder_to_mono_method): set
18360         pinvoke flag
18361
18362 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18363
18364         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18365
18366 2003-01-29  Dick Porter  <dick@ximian.com>
18367
18368         * threads.c: No need for the fake_thread kludge now that Thread
18369         doesn't run a class constructor
18370         
18371 2003-01-29  Dick Porter  <dick@ximian.com>
18372
18373         * threads.c: Use g_direct_hash instead of the rather bogus
18374         g_int_hash
18375
18376 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18377
18378         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18379         (fix pinvoke12.exe)
18380         (mono_marshal_get_struct_to_ptr): generate valid IL code
18381         (mono_marshal_get_ptr_to_struct): generate valid IL code
18382         (*): correctly set sig->pinvoke, we need to memdup the signature
18383         to do that
18384
18385 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18386
18387         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18388         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18389
18390 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18391
18392         * profiler.c: provide more callers information.
18393
18394 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18395
18396         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18397
18398         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18399
18400         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18401
18402 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18403
18404         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18405         exception instead of going into an infinite loop on dates which it 
18406         can't yet handle.
18407
18408         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18409         out-of-range exception if needed.
18410
18411         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18412         an implementation for an interface method and to override an inherited
18413         method at the same time. 
18414         Imagine a scenario when a virtual method is used to override a
18415         virtual abstract method in a parent class, and this same method 
18416         provides an implementation for an method inherited from an interface. 
18417         In this case, the interface resolution code will set im->slot, which 
18418         means that the virtual method override pass will skip this method 
18419         which means a pointer to the abstract method inherited from the parent
18420         will remain in the vtable of this non-abstract class.
18421
18422         * class.c: (mono_class_setup_vtable): continue search for a real 
18423         method if only an abstract method is found.     
18424
18425 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18426
18427         * reflection.c: add size to encoding for ByValStr and ByValArray
18428         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18429
18430 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18431
18432         * class.c (mono_class_setup_vtable): pass the override info as an
18433         argument.
18434
18435         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18436         correctly.
18437         
18438         * reflection.c (ensure_runtime_vtable); add support for method 
18439         overrides.
18440         
18441 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18442
18443         * reflection.c (resolution_scope_from_image): Hack to work to work with
18444         dynamic assemblies.
18445
18446         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18447         added a 'force_ref' argument to force this function to allways return 
18448         a TypeRef. This is needed by mono_image_get_memberref_token ().
18449         
18450 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18451
18452         * reflection.c (mono_image_get_type_info): interfaces really don't have
18453         a parent.
18454
18455         * reflection.c (mono_image_basic_init): fill out missing fields of
18456         image structure.
18457
18458         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18459         dynamic assemblies. This is required so dynamic assemblies show up in
18460         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18461         Type::GetType() etc. This is consistent with MS behaviour.
18462
18463         * image.c image.h reflection.c: add newly created classes to the name 
18464         cache so mono_class_get () will find them.      
18465
18466 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18467
18468         First part of changes to get IKVM.NET running under mono.
18469         
18470         * appdomain.h, appdomain.c: added new function 
18471         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18472         This function will call AppDomain::DoTypeResolve to do the actual work.
18473
18474         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18475         moved existing code dealing with dynamic tokens to a new function 
18476         called mono_reflection_lookup_dynamic_token (). This function will 
18477         raise TypeResolve events when appropriate. Since reflection.c is not 
18478         part of libmetadata, a new hook function called 
18479         mono_lookup_dynamic_token() is added to class.c which will call this.
18480
18481         * assembly.h assembly.c: make the invoke_load_hook function public,
18482         so it can be called for dynamic assemblies.
18483
18484         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18485
18486         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18487         type isn't found.
18488
18489         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18490         MonoGHashTable, since it contains pointers to objects which the GC 
18491         needs to track.
18492
18493         * assembly.c (search_loaded): remove unused variable.
18494         
18495 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18496
18497         * object.c: fixed issue exposed by gcc-generated IL programs
18498         that use RVA data for pointers.
18499
18500 2003-01-25  Martin Baulig  <martin@ximian.com>
18501
18502         * threads.c (start_wrapper): Moved the initialization of
18503         `start_func' above the mono_new_thread_init() call to which we
18504         pass it as argument.
18505
18506 2003-01-24  Martin Baulig  <martin@ximian.com>
18507
18508         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18509         the MonoThread pointer.
18510
18511 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18512
18513         * icall.c: Rename `PowImpl' to Pow.
18514
18515 2003-01-23  Dick Porter  <dick@ximian.com>
18516
18517         * threads.c (start_wrapper): Create a Thread object if needed, so
18518         the Main() thread can do the class initialisation in a subthread
18519         that has been set up to allow managed code execution.
18520
18521         Pass the thread ID instead of the MonoThread pointer to the thread
18522         start and attach callbacks.  This change is required, because the
18523         jit thread start callback must be called _before_ the Thread
18524         object can be created.
18525         
18526         (mono_thread_init): Removed much object creation code that is no
18527         longer needed.  No managed code is called from here now.
18528
18529         * object.c (mono_runtime_exec_managed_code): Create a subthread
18530         for Main, and call back to the runtime to use it.
18531         Set the exit code when Main exits.
18532
18533         * gc.c: Make sure domain finalisation happens in a subthread.
18534         Re-enable threaded GC, fixing bug 31333 (again).
18535
18536         * environment.c: System.Environment internall calls (so far just
18537         ExitCode is here, the others are still in icall.c)
18538
18539         * appdomain.c (mono_runtime_cleanup): All threads running managed
18540         code should have finished before mono_runtime_cleanup() is
18541         reached, so no need to clean up threads.
18542
18543 2003-01-22  Martin Baulig  <martin@ximian.com>
18544
18545         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18546         `gpointer func' arguments.      
18547         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18548         but added `MonoThread *thread' argument.
18549         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18550
18551         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18552         and pass it to the mono_thread_start_cb callback.
18553         (mono_install_thread_callbacks): New public function to install a
18554         set of callbacks which are set by the debugger.
18555         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18556
18557 2003-01-22  Martin Baulig  <martin@ximian.com>
18558
18559         * Makefile.am: Install debug-mono-symfile.h.
18560
18561 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18562
18563         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18564
18565 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18566
18567         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18568         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18569         (mono_array_class_get): correctly set access levels of arrays
18570
18571 2003-01-20      Patrik Torstensson
18572         * image.h (MonoAssemblyName): changed major, minor, build, revision
18573         from signed to unsigned.
18574
18575 2003-01-20  sean kasun <skasun@azstarnet.com>
18576
18577         * reflection.c (load_cattr_value): Now this handles
18578         MONO_TYPE_SZARRAY.  Fixes bug #35629
18579
18580 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18581
18582         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18583         integer value
18584
18585 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18586
18587         * decimal.c: fixed bug #26056.
18588
18589 2003-01-17  Martin Baulig  <martin@ximian.com>
18590
18591         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18592
18593 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18594
18595         * exception.[ch]:
18596         (mono_get_exception_type_initialization): new function.
18597
18598         * object.c: throw a TypeInitializationException when an exception is
18599         thrown invoking the class constructor.
18600
18601 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18602
18603         * reflection.c: fixed attribute reading.
18604
18605 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18606
18607         * icall.c:
18608         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18609         provided, look for the type in the calling assembly and then in
18610         mscorlib; if the assembly name is provided, only try that one.
18611
18612 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18613
18614         * object.c: register the vtable before there is a chance it's
18615         queried again recursively.
18616
18617 2003-01-13  Duncan Mak  <duncan@ximian.com>
18618
18619         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18620         gc-internal.h. 
18621         
18622 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18623
18624         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18625
18626 2003-01-11  Martin Baulig  <martin@ximian.com>
18627
18628         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18629         this to 20 for the release.
18630
18631 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18632
18633         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18634
18635         * loader.c (mono_method_get_marshal_info): bug fix
18636
18637         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18638         structures with explicit layout
18639
18640 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18641
18642         * profiler.c: made the output more readable (and sorted). 
18643         Added caller information for the allocation profiler.
18644
18645 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18646
18647         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18648
18649 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18650
18651         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18652         to get value types.
18653         
18654 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18655
18656         * object.c, profiler.h, profiler.c, profiler-private.h:
18657         Added object allocation profiler.
18658
18659 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18660
18661         * reflection.h, reflection.c: handle global methods.
18662         Compress blob entries.
18663
18664 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18665
18666         * marshal.c: fix compilation.
18667
18668 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18669
18670         * loader.c (mono_method_get_marshal_info): impl.
18671
18672         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18673
18674 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18675
18676         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18677         for reference types.
18678
18679 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18680
18681         * loader.c: fixed off by one error in loaded parameter names.
18682
18683 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18684
18685         * marshal.c (mono_marshal_get_icall_wrapper): like
18686         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18687         instead of a MonoMethod.
18688
18689 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18690
18691         * decimal.c: fixed bug #36537.
18692
18693 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18694
18695         * marshal.c: throw a missing method exception if a
18696         P/Invoke method is not found.
18697
18698 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18699
18700         * icall.c: allow a null this for constructors.
18701
18702 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18703
18704         * icall.c: raise the proper exceptions if the arguments to the
18705         internal Invoke are incorrect.
18706
18707 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18708
18709         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18710
18711 2003-01-03  Martin Baulig  <martin@ximian.com>
18712
18713         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18714
18715 2002-12-31  Martin Baulig  <martin@ximian.com>
18716
18717         * debug-mono-symfile.c: Completely rewrote the type section.
18718         Instead of using individual malloc()ed fields, we use one big
18719         continuous memory area and offsets into this area.
18720         See the comments in the source code for details.
18721
18722 2002-12-30  Martin Baulig  <martin@ximian.com>
18723
18724         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18725
18726 2002-12-30  Martin Baulig  <martin@ximian.com>
18727
18728         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18729         line number table in this data blob instead of using an external
18730         pointer.
18731
18732 2002-12-28  Martin Baulig  <martin@ximian.com>
18733
18734         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18735
18736 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18737
18738         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18739         as a boxed return type.
18740
18741 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18742
18743         * appdomain.c
18744         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18745         g_build_filename to properly get separators on the filename created.
18746
18747         * object.h: Small change, introduce MonoMarshalByRefObject to
18748         track the layout of that structure in the C# universe as we make
18749         changes there.
18750
18751 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18752
18753         * object.c: removed assert to allow static fields on interfaces.
18754         * loader.c: a TypeSpec may be used for any type, not just arrays.
18755
18756 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18757
18758         * class.c, class.h: added mono_class_array_element_size ().
18759         Ignore static methods in interfaces.
18760
18761 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18762
18763         * threads.c: fixed the build under cygwin.
18764
18765 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18766
18767         * reflection.c: handle nullref constants. Allocate keys for
18768         reflection handles with the GC.
18769
18770 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18771
18772         * threads.c, threads.h: added mono_thread_get_abort_signal()
18773         to get a suitable signal for thread abort.
18774
18775 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18776
18777         * metadata.c: fix handling of ExportedType table.
18778
18779 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18780
18781         * icall.c: added WriteWindowsDebugString internal call.
18782
18783 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18784
18785         * reflection.h: added fields to match C# implementation.
18786
18787 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18788
18789         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18790
18791 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18792
18793         * gc.h, gc-internal.h: Rename header for GC internal calls to
18794         gc-internal.h from gc.h as to not clash with Boehm GC having its
18795         header installed as <gc.h> in outside include paths.
18796         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18797         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18798
18799 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18800
18801         * icall.c: assign minor, build and revision in FillName.
18802
18803 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18804
18805         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18806         Added support for running code generated by Reflection.Emit.
18807
18808 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18809
18810         * appdomain.c: check for NULL argument in LoadFrom.
18811
18812 2002-12-10  Dick Porter  <dick@ximian.com>
18813
18814         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18815
18816 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18817
18818         * appdomain.c: fix buglet when building exe file name.  Handle full
18819         assembly name (needed after latest changes to AssemblyName).
18820         * image.c:
18821         (mono_image_close): free some hashtables.
18822
18823 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
18824
18825         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
18826         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
18827         on some systems (redhat 7.3) 
18828
18829 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
18830
18831         * threads.c: delete the critical section of a sync block,
18832         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18833
18834 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18835
18836         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18837
18838 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18839
18840         * appdomain.[ch]: handle the assembly preload event to try loading the
18841         assemblies using the paths we have in the current domain.
18842
18843         * assembly.[ch]: created an assembly preload hook that is called to try
18844         loading the assembly by other means that the ones provided here.
18845
18846         * domain.c: initialize the domain search path.
18847
18848         From now on, assemblies (TODO: except corlib and System) are loaded
18849         according to these rules when using mono_assembly_load ():
18850
18851                 1. It tries to load the assembly from the ApplicationBase
18852                 of the current domain appending .dll and .exe (TODO: have to
18853                 try loading from name/name.dll and name/name.exe).
18854
18855                 2. It tries the search path specified in PrivateBinPath for the
18856                 current domain (if any).
18857
18858                 3. Previous behavior.
18859
18860 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18861
18862         * icall.c: implemented GetInterfaceMap() related icall.
18863         * domain.c, loader.h: load MethodInfo in mono_defaults.
18864
18865 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18866
18867         * gc.c: disable the finalizer thread for now, untill all the issues
18868         with it are resolved.
18869
18870 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18871
18872         * string-icalls.c: handle embedded nulls in string ctor when the
18873         length is specified.
18874
18875 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18876
18877         * class.c: look for explicit interface implementation in parent
18878         classes, too.
18879
18880 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18881
18882         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18883
18884 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18885
18886         * gc.c: protect handles with a critical section.
18887
18888 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18889
18890         * icall.c:
18891         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18892         parameters. If no assembly specified, try getting the type from all
18893         the assemblies in the current domain, else, load the assembly and get
18894         the type from it.
18895
18896 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18897
18898         * marshal.c: applied patch from Aleksey Demakov that fixes
18899         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18900
18901 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18902
18903         * icall.c: fixed get_location.
18904
18905 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18906
18907         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18908         declarations to make it work with older gcc. 
18909
18910         * loader.c (mono_get_method): set signature->pinvoke for native calls
18911
18912 2002-11-20  Dick Porter  <dick@ximian.com>
18913
18914         * threads.c (mono_thread_init): Set the main thread's handle
18915
18916 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18917
18918         * gc.c: allow compilation without GC support. Changed to match the
18919         mono coding style.
18920
18921 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18922
18923         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18924
18925 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18926
18927         * reflection.c: set a public key token on the core assemblies.
18928
18929 2002-11-18  Dick Porter  <dick@ximian.com>
18930
18931         * threads.c: Split out some thread initialisation so that other
18932         files can set the start callback function.
18933
18934         * gc.c: Run finalisers in a separate thread, to avoid stack
18935         overflow.  Fixes bug 31333.
18936
18937         * appdomain.c: Set up GC finalisation thread.
18938
18939         * reflection.c: 
18940         * object.c: 
18941         * domain.c: Use gc.h macros for GC_malloc
18942         
18943 2002-11-15  Dick Porter  <dick@ximian.com>
18944
18945         * threadpool.c: 
18946         * threads.c:
18947         * appdomain.c: Removed mono_runtime_init_with_attach(),
18948         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18949         merging the extra parameter with the existing function.  Removed
18950         unneeded code in mono_thread_attach().
18951
18952 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18953
18954         * image.c (mono_image_loaded_by_guid): a method to get loaded
18955         images by guid. 
18956         (load_metadata_ptrs): we store the guid as string.
18957
18958 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18959
18960         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18961
18962         * metadata.c (mono_guid_to_string): imported method form Zoltan
18963         Varga (slightly modified)
18964
18965         * assembly.c (mono_assembly_open): load precompiled code
18966
18967         * loader.h (MonoMethod): we store the method token for use in the
18968         aot compiler. 
18969
18970 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18971
18972         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18973         the hook function called when an assembly is loaded.
18974         
18975         * domain.c: Modified file.
18976         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18977
18978         Fixes bug #33196.
18979
18980 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18981
18982         * reflection.c: Map PEFileKind to the value expected by the WinNT
18983         image loader. 
18984
18985 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18986
18987         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18988         Read until the buffer is filled completely.
18989
18990 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18991
18992         * icall.c: implemented MonoType.InternalGetEvent ().
18993
18994 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18995
18996         * appdomain.c: implemented InitAppDomainSetup. Delayed
18997         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18998         the entry_assembly.
18999
19000         * assembly.c: base_dir is now an absolute path ending with
19001         G_DIR_SEPARATOR.
19002
19003         * icall.c: modified get_location according to the above changes.
19004
19005         * object.c: init AppDomain.SetupInformation for the default domain after
19006         we have the entry assembly.
19007
19008         * domain.c: when unloading a domain, setup = NULL.
19009
19010 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
19011
19012         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
19013
19014 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
19015
19016         * object.h, object.c: introduced mono_object_get_virtual_method ()
19017         to lookup the method invoked on an object when a callvirt is done on
19018         a method.
19019         * icall.c: make MethodInfo::Invoke() always do a virtual call.
19020
19021 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19022
19023         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
19024         current domain when loaded an assembly and failed to load it.
19025
19026         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
19027
19028 2002-10-31  Dick Porter  <dick@ximian.com>
19029
19030         * icall.c: 
19031         * file-io.h: 
19032         * file-io.c: Return the error status in a parameter, as the
19033         GetLastError() value has long since been blown away if we try and
19034         look it up in a subsequent internal call invocation.  Delete the
19035         GetLastError() internal call, because it's useless.
19036
19037 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
19038
19039         * class.[ch]: added cast_class to fix bug 29517
19040
19041 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
19042
19043         * marshal.c: create valid IL code in the filter clause:
19044         the new JIT is less forgiving:-)
19045
19046 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19047
19048         * icall.c: removed get_property internal call.
19049
19050 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
19051
19052         * appdomain.h domain.c: Added an ID to appdomains.
19053         
19054         * threads.c threads.h icall.c: Implement icall
19055         Thread:GetDomainID(), and remove unused icall 
19056         CurrentThreadDomain_internal.
19057
19058 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19059
19060         * icall.c: Don't recurse through the base types in GetConstructor.
19061         Fixes bug #32063. 
19062
19063 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19064
19065         * mempool.h, mempool.c: added mono_mempool_empty() and
19066         mono_mempool_stats().
19067
19068 2002-10-23  Dick Porter  <dick@ximian.com>
19069
19070         * file-io.c: 
19071         * file-io.h: 
19072         * icall.c: Added MonoIO.GetFileType internal call
19073
19074 2002-10-17  Dick Porter  <dick@ximian.com>
19075
19076         * appdomain.c (mono_runtime_cleanup): Don't signal the async
19077         delegate semaphore before waiting for all threads to finish,
19078         because new threads can also call async delegates.  Fixes bug
19079         32004.
19080
19081         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
19082         of 3 seconds, in case another async job is queued.  (This part is
19083         needed because the bug fix reintroduced the 3s exit lag.)  This
19084         makes the mono_runtime_shutdown flag superfluous.
19085
19086 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19087
19088         * reflection.c: include ehader size in method section headers.
19089         Really check for suplicated modules entries.
19090
19091 2002-10-17  Martin Baulig  <martin@gnome.org>
19092
19093         * debug-mono-symfile.c: Added back support for locals.
19094
19095 2002-10-14  Martin Baulig  <martin@gnome.org>
19096
19097         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
19098         MONO_TYPE_VOID.
19099
19100 2002-10-14  Martin Baulig  <martin@gnome.org>
19101
19102         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
19103         mono_class_get() instead of looking in the class cache. 
19104
19105 2002-10-13  Martin Baulig  <martin@gnome.org>
19106
19107         * debug-mono-symfile.c: Set version number to 28, include the
19108         signature in method names.
19109
19110 2002-10-13  Martin Baulig  <martin@gnome.org>
19111
19112         * debug-mono-symfile.h: Set version number to 27.
19113
19114 2002-10-11  Martin Baulig  <martin@gnome.org>
19115
19116         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19117
19118 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19119
19120         * metadata.c, metadata.h: added helper function to allocate signatures.
19121
19122 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19123
19124         * icall.c: added internal call to get the location of machine.config.
19125
19126 2002-10-08  Martin Baulig  <martin@gnome.org>
19127
19128         * debug-mono-symfile.c: Ignore classes with a pending init for the
19129         moment.
19130
19131 2002-10-03  Dick Porter  <dick@ximian.com>
19132
19133         * threads.c: Freebsd pthread_t is a pointer
19134
19135 2002-10-03  Dick Porter  <dick@ximian.com>
19136
19137         * socket-io.c: Implemented GetHostName_internal
19138
19139 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19140
19141         * mono-config.c:
19142         (mono_config_parse_file): don't leak the text.
19143
19144 2002-10-02  Martin Baulig  <martin@gnome.org>
19145
19146         * debug-mono-symfile.c: Added support for methods.
19147
19148 2002-10-01  Martin Baulig  <martin@gnome.org>
19149
19150         * debug-mono-symfile.c: Don't emit methods and line numbers for
19151         the dynamic symbol file, just write the type table.  We can easily
19152         have an external helper program which creates a symbol file for an
19153         IL file.        
19154
19155 2002-10-01  Dick Porter  <dick@ximian.com>
19156
19157         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19158         Only add the handle to the cleanup array when we're about to
19159         launch the thread.  Bug 31425 deadlocked when the test was run on
19160         mono under w32.
19161
19162 2002-10-01  Martin Baulig  <martin@gnome.org>
19163
19164         * debug-mono-symfile.c: Added support for properties.
19165
19166 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19167
19168         * reflection.c: unaligned store fix from Mark Crichton
19169         <crichton@gimp.org>.
19170
19171 2002-09-27  Martin Baulig  <martin@gnome.org>
19172
19173         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19174         New interncall.
19175
19176 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19177
19178         * assembly.h, assembly.c: use a sane API to hook into the assembly
19179         loading process instead of a useless special-purpouse hack
19180         (ngen needs a hook, too, for example).
19181
19182 2002-09-27  Dick Porter  <dick@ximian.com>
19183
19184         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19185         io-layer can set up some process handle info.  Not needed on w32,
19186         but doesn't hurt either.
19187
19188         * process.c: Pass the program name in the second parameter to
19189         CreateProcess, so the path is searched.  Include the working
19190         directory. Implemented process name, process enumeration, and some
19191         process detail internal calls.
19192         
19193         * icall.c: Added internal calls for process lookup, and some
19194         process details
19195
19196 2002-09-26  Martin Baulig  <martin@gnome.org>
19197
19198         * assembly.c (mono_install_open_assembly_hook): New global
19199         function to install a function to be invoked each time a new
19200         assembly is loaded.
19201         (mono_assembly_open): Run this callback function if set.
19202
19203         * debug-mono-symfile.c: Put back line numbers for the dynamic
19204         symbol file and also record the .il file as source file.  This
19205         allows us to install the temporary symbol file as `file.dbg' just
19206         like a compiler-generated one.
19207
19208 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19209
19210         * Corrected typo in gc.c (BOHEM vs BOEHM).
19211
19212 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19213
19214         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19215         GetProperties. Also avoid calling g_slist_length in GetProperties and
19216         GetMethods.
19217
19218 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19219
19220         * reflection.c: avoid unaligned stores (bug spotted by
19221         Mark Crichton  <crichton@gimp.org>).
19222
19223 2002-09-25  Martin Baulig  <martin@gnome.org>
19224
19225         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19226         instead of guint64 for addresses and added prologue/epilogue info.
19227
19228 2002-09-25  Martin Baulig  <martin@gnome.org>
19229
19230         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19231         store line number info.  For the dynamic symbol file, we only need
19232         to provide the JIT generated dynamic line number info for the dynamic
19233         symbol file.
19234
19235 2002-09-25  Martin Baulig  <martin@gnome.org>
19236
19237         * debug-mono-symfile.h: Incremented version number.
19238
19239 2002-09-24  Martin Baulig  <martin@gnome.org>
19240
19241         * class.c (mono_debugger_class_init_func): New global function
19242         pointer variable.
19243         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19244         call it.
19245
19246         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19247         function.  This is called via the mono_debugger_class_init_func
19248         hook to add all types to the dynamic type table.
19249         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19250         from its metadata token.
19251
19252         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19253         New interncall for the debugger.
19254
19255 2002-09-24  Nick Drochak <ndrochak@gol.com>
19256
19257         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19258         before using it in case it is null.
19259         
19260 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19261
19262         * metadata.c: allow custom modifiers in local var signatures
19263         (bug spotted by Zoltan Varga).
19264
19265 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19266
19267         * class.c: deal with the <Module> class that may have a NULL vtable.
19268         Eliminate warnings.
19269
19270 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19271
19272         * image.c, image.h: more strong name helpers.
19273         * monosn.c: more work: convert pem keys to cryptoapi format.
19274
19275 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19276
19277         * string-icalls.c: speedup IndexOf.
19278
19279 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19280
19281         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19282
19283 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19284
19285         * icall.c: cleanup: use mono_object_domain ().
19286
19287 2002-09-23  Martin Baulig  <martin@gnome.org>
19288
19289         * debug-mono-symfile.c: Improved type support.
19290
19291 2002-09-22  Martin Baulig  <martin@gnome.org>
19292
19293         * debug-mono-symfile.c: Added support for reference types and strings.
19294
19295 2002-09-22  Martin Baulig  <martin@gnome.org>
19296
19297         * debug-mono-symfile.c: Started to work on the type table.
19298
19299 2002-09-21  Martin Baulig  <martin@gnome.org>
19300
19301         * debug-mono-symfile.c: Largely reworked the symbol table format.
19302         The symbol table is now incrementally updated each time a new
19303         method is added.  We're now also using our own magic and version
19304         so that you don't need to recompile all your classes if the
19305         dynamic table changes.
19306         (mono_debug_update_mono_symbol_file): Removed.
19307         (mono_debug_symfile_add_method): New function to add a method.
19308
19309 2002-09-21  Martin Baulig  <martin@gnome.org>
19310
19311         * icall.c
19312         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19313         New interncall.
19314
19315         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19316         New interncall to get a method from its metadata token.
19317
19318 2002-09-21  Martin Baulig  <martin@gnome.org>
19319
19320         * debug-mono-symfile.c: Create type table.
19321
19322 2002-09-20  Martin Baulig  <martin@gnome.org>
19323
19324         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19325
19326 2002-09-20  Martin Baulig  <martin@gnome.org>
19327
19328         * debug-mono-symfile.c: Provide information about params and locals.
19329
19330 2002-09-20  Martin Baulig  <martin@gnome.org>
19331
19332         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19333         New interncall.
19334
19335         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19336         interncall to get a method from its metadata token.
19337
19338 2002-09-20  Martin Baulig  <martin@gnome.org>
19339
19340         * debug-mono-symfile.c: Added a few checks for method->header
19341         being non-NULL.  This should never happen, but for the moment
19342         let's use a g_warning() rather than a g_assert().
19343
19344 2002-09-19  Mark Crichton  <crichton@gimp.org>
19345
19346         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19347         even if support for it isn't present.  Added an #ifdef to fix this.
19348
19349         * socket-io.c: Added checks back for Solaris support.
19350
19351 2002-09-19  Martin Baulig  <martin@gnome.org>
19352
19353         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19354         changes in the symbol file format.
19355
19356 2002-09-18  Martin Baulig  <martin@gnome.org>
19357
19358         * debug-mono-symfile.c: Set version number to 21.
19359
19360 2002-09-18  Dick Porter  <dick@ximian.com>
19361
19362         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19363         on netbsd.  Fixes bug 30051.
19364
19365 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19366
19367         * reflection.c:
19368         (set_version_from_string): little fix.
19369
19370 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19371
19372         * monosn.c, Makefile.am: added strong name utility.
19373         * reflection.h, reflection.c: implemented delayed signing,
19374         locale, version and hash id assembly attributes.
19375
19376 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19377
19378         * loader.c, metadata.c: load param attributes in signatures.
19379
19380 2002-09-16  Martin Baulig  <martin@gnome.org>
19381
19382         * debug-mono-symfile.c: Added string table with all method names.
19383
19384 2002-09-14  Martin Baulig  <martin@gnome.org>
19385
19386         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19387         fast method lookup.
19388
19389 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19390
19391         * reflection.c: record the public key token of referenced assemblies.
19392
19393 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19394
19395         * image.c, image.h: added functions to get the strong name and the
19396         public key of an assembly.
19397         * pedump.c: use them.
19398
19399 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19400
19401         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19402
19403 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19404
19405         * marshal.c (mono_marshal_get_managed_wrapper): Added
19406         MONO_TYPE_BOOLEAN 
19407
19408 2002-09-11  Martin Baulig  <martin@gnome.org>
19409
19410         * gc.c: Call GC_unregister_disappearing_link() on all links when
19411         finalizing them, this is necessary to aviod a crash in boehm's
19412         finalize handler.
19413
19414 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19415
19416         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19417         nick@chemlab.org.
19418
19419 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19420
19421         * icall.c: implemented MonoType::Module.
19422         * reflection.c, reflection.h: mono_module_get_object () from
19423         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19424
19425 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19426
19427         * icall.c: ignore overridden methods in GetMethods ().
19428         Fix for FieldInfo::SetValue().
19429         * object.c: handle float/double in runtime invoke.
19430
19431 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19432
19433         * object.c: allow a constructor to be called again on an object.
19434
19435 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19436
19437         * class.h, class.c: move field layout code to it's own function and
19438         export it. Get an interface id earlier. Move fields in MonoClass
19439         so they are more cache friendly and align the bitfields.
19440         * loader.c: temporary handle get_param_names() for a runtime method.
19441         * reflection.c, reflection.h: more code to handle runtime creation of
19442         types.
19443
19444 2002-09-09  Martin Baulig  <martin@gnome.org>
19445
19446         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19447         signature with the pinvoke field being set for the actual call.
19448
19449 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19450
19451         * icall.c: removed some unused icalls. Start of map of glib charsets
19452         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19453
19454 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19455
19456         * debug-helpers.c: break infinite loop (found and fixed by
19457         Holger Arnold <harnold@gmx.de>).
19458
19459 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19460
19461         * icall.c: target may be null in create_delegate.
19462
19463 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19464
19465         * marshal.c: handle a boolean return type.
19466
19467 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19468
19469         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19470
19471 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19472
19473         * gc.c: fix weakreferences.
19474
19475 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19476
19477         * icall.c: added icall to get default codepage.
19478
19479 2002-09-03  Dick Porter  <dick@ximian.com>
19480
19481         * threads.h: 
19482         * threads.c: Use MonoThread instead of MonoObject where
19483         apropriate.
19484
19485         Store running thread objects in a hash table, so that we have all
19486         the info to hand when waiting for them to finish
19487         (means we don't need OpenThread() any more, so mingw builds should
19488         be fully functional again.)
19489
19490         * verify.c:
19491         * object.h: Added thread ID to MonoThread
19492
19493 2002-09-03  Martin Baulig  <martin@gnome.org>
19494
19495         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19496
19497 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19498
19499         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19500
19501 2002-09-03  Martin Baulig  <martin@gnome.org>
19502
19503         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19504         argument to store the end address of the disassembled instruction.
19505
19506         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19507         here from debug-symfile.h.
19508         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19509         JIT into this struct.
19510         (MonoSymbolFile): Added `char *image_file' field.
19511         (MonoDebugGetMethodFunc): Removed.
19512         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19513         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19514         (mono_debug_find_method): New method.
19515
19516         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19517         create a full symbol file.
19518         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19519         and static symbol files.
19520         (mono_debug_find_method): The symbol file keeps an internal method hash,
19521         call this to get a MonoDebugMethodInfo from a MonoMethod.
19522
19523         * debug-symfile.[ch]: Removed.
19524
19525 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19526
19527         * image.c (do_mono_image_open): Remove linker version check.
19528
19529 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19530
19531         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19532         wrappers for instance methods.
19533         
19534 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19535
19536         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19537
19538 2002-08-28  Dick Porter  <dick@ximian.com>
19539
19540         * Makefile.am: Export HOST_CC for w32 builds
19541
19542 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19543
19544         * file-io.c process.c: MonoString are null terminated, no
19545         need for mono_string_to_utf16() anymore.
19546
19547 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19548
19549         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19550
19551 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19552
19553         * icall.c, reflection.h: speedup System.MonoType.
19554
19555 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19556
19557         * reflection.c: allow null as the value of a string argument in
19558         custom attributes constructors.
19559
19560 2002-08-27  Martin Baulig  <martin@gnome.org>
19561
19562         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19563         `trampoline_address' field.
19564
19565 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19566
19567         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19568         check (fixes bug #29486) 
19569
19570 2002-08-27  Martin Baulig  <martin@gnome.org>
19571
19572         * debug-mono-symfile.c: Changed the file format in a way that allows us
19573         open it read-only and to use a specially malloced area for all the
19574         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19575         debugging IL code and there is no MCS generated symbol file for it.
19576
19577 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19578
19579         * object.c: added a define for a good string and array
19580         creation speedup (not enabled by default because we need to deal with
19581         the synch stuff).
19582
19583 2002-08-26  Martin Baulig  <martin@gnome.org>
19584
19585         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19586         function to create a dynamic symbol file.  This is used by the
19587         debugger to create a symbol file for IL code on-the-fly.
19588
19589 2002-08-26  Martin Baulig  <martin@gnome.org>
19590
19591         * loader.c (mono_lookup_pinvoke_call): Include the error message
19592         from g_module_error() in the error message.
19593
19594 2002-08-24  Martin Baulig  <martin@gnome.org>
19595
19596         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19597         function to update the symbol file.  The symbol file is mmap()ed
19598         writable, but private.  This allows us to install the symbol file
19599         together with the assembly.
19600
19601 2002-08-24  Martin Baulig  <martin@gnome.org>
19602
19603         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19604         but they can read the new symbol file format which mcs is now creating.
19605
19606         * debug-symfile.c (mono_debug_find_source_location): Moved to
19607         debug-mono-symfile.c; this is now operating on the new symbol file.
19608
19609 2002-08-23  Martin Baulig  <martin@gnome.org>
19610
19611         * debug-helpers.c (mono_method_desc_from_method): New function to get
19612         a MonoMethodDesc from a MonoMethod.
19613
19614 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19615
19616         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19617         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19618
19619 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19620
19621         * string-icalls.[ch]: make helper methods static.
19622
19623 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19624
19625         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19626         types to it and to SetValueInternal.
19627
19628         * object.c: Moved handle_enum label to its proper place. This was the
19629         f... bug! ;-)
19630
19631         This time i compiled mcs and gtk-sharp and they both work.
19632
19633 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19634
19635         * icall.c: reverted partially my previous patch until 
19636         object.c:set_value handles enums correcly.
19637
19638 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19639
19640         * icall.c:
19641         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19642         (ves_icall_System_Environment_get_MachineName): removed warning when
19643         compiling under cygwin.
19644
19645 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19646
19647         * object.c: fixed field_get_value() for reference types.
19648
19649 2002-08-22  Dick Porter  <dick@ximian.com>
19650
19651         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19652         Don't free a buffer while it's still needed.  Patch from Jonathan
19653         Liger <Jonathan.liger@wanadoo.fr>
19654
19655 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19656
19657         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19658         internal call.
19659
19660 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19661
19662         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19663         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19664
19665         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19666         we call unmanaged code which throws exceptions.
19667
19668 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19669
19670         * appdomain.h: added per-domain entry_assembly.
19671         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19672         arguments.
19673         * icall.c: Assembly::GetEntryAssembly icall.
19674         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19675         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19676
19677 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19678
19679         * appdomain.h, gc.c: added mono_domain_finalize ().
19680
19681 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19682
19683         * object.c:
19684         (mono_print_unhandled_exception): changed g_warning by g_printerr
19685         because g_log has a 1024 characters limit (yeah, i got a big stack
19686         trace). Don't print exception name, that should be in ToString 
19687         returned string.
19688
19689 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19690
19691         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19692         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19693
19694 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19695
19696         * object.c:
19697         (mono_print_unhandled_exception): after previous commit, i realized
19698         that MS calls ToString on the exception. I changed this function to
19699         do that. This way we get stack_trace for free.
19700
19701 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19702
19703         * object.c:
19704         (mono_print_unhandled_exception): invoke Message property instead of
19705         getting 'message' field from Exception. Don't allocate memory for
19706         'trace' and 'message' if not needed.
19707
19708 2002-08-18  Dick Porter  <dick@ximian.com>
19709
19710         * unicode.c: Fix asserts to match Encoder.cs checks
19711
19712 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19713
19714         * marshal.c: fix unaligned store issue and a few wrong
19715         opcode argument types.
19716
19717 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19718
19719         * icall.c: added GetUninitializedObjectInternal internal call.
19720
19721 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19722
19723         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19724         to the right domain.
19725
19726 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19727
19728         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19729
19730         * class.c (class_compute_field_layout): set blittable to false for Strings
19731
19732         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19733
19734 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19735
19736         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19737         first chunk of code to create types at runtime. Code to
19738         handle ReflectedType/DeclaringType. Make reflection handles
19739         domain specific.
19740
19741 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19742
19743         * class.c: set correct name in arrays.
19744
19745 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19746
19747         * appdomain.c (mono_domain_transfer_object): make it work with
19748         valuetypes. bug fixes.
19749
19750 2002-08-12  Dick Porter  <dick@ximian.com>
19751
19752         * object.h: Rename some parameters to avoid c++ keywords (Patch
19753         from Joseph Wenninger <kde@jowenn.at>)
19754
19755 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19756
19757         * icall.c: added icall to implement Assembly.GetFile*.
19758
19759 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19760
19761         * reflection.h, reflection.c: code to embed managed resources.
19762
19763 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19764
19765         * class.c: move all the type size stuff into
19766         class_compute_field_layout().
19767
19768 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19769
19770         * class.c: ensure enums have always the correct instance size.
19771         * unicode.c: remove wrong assert.
19772
19773 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19774
19775         * assembly.c: fix mem corruption issue.
19776         * image.h, image.c: added mono_image_get_resource () to access
19777         managed resources.
19778         * icall.c: implemented Assembly.EntryPoint property and some
19779         Managed Resources related internalcalls.
19780
19781
19782 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19783
19784         * image.c, image.h: impemented mono_image_get_entry_point ().
19785         * appdomain.c: use mono_image_get_entry_point.
19786
19787 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19788
19789         * reflection.c: support the object type argument when loading
19790         custom attributes.
19791
19792 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19793
19794         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19795         String as return type.
19796
19797 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19798
19799         * reflection.c: fix encoding of named args for custom attrs to match
19800         the ms implementation. Read them back when instantiating custom
19801         attributes.
19802
19803 2002-08-02  Radek Doulik  <rodo@ximian.com>
19804
19805         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19806         by Dietmar as quick fix
19807         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19808         16 as stack size, used on more places as quick fix before Dietmar
19809         will fix it properly
19810
19811 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19812
19813         * object.h, object.c: added accessors for fields and properties.
19814
19815 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19816
19817         * class.c, class.h: made mono_class_get_field_from_name ()
19818         loop on parent types.
19819         Added mono_class_get_property_from_name ().
19820
19821 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19822
19823         * class.c, class.h: move the code to setup the type vtable in its own
19824         function so that it can be reused also for types created at runtime.
19825         Eliminate the "class" identifier from the header file.
19826         * reflection.c: setup the vtable for enums so that we can create
19827         objects for use in SetConstant ().
19828
19829 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
19830
19831         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
19832         instead of the delegate itself as this pointer (bug #28383)
19833
19834 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19835
19836         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19837         conversions.
19838
19839 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19840
19841         * loader.c: don't set the pinvoke bit on icalls.
19842
19843 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19844
19845         * debug-helpers.c (mono_method_full_name): only print a number to
19846         indicate wrapper type (so that the output is more readable in traces).
19847
19848 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19849
19850         * class.c (mono_class_init): include method override patch from Paolo
19851
19852 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19853
19854         * icall.c: fixed GetTypeCode().
19855
19856 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19857
19858         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19859         use real delegate invoke function to make it work with multicast
19860         delegates (fix bug# 28291).
19861
19862 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19863
19864         * object.c: load constant strings.
19865
19866 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19867
19868         * reflection.c: no magic numbers.
19869         * tabledefs.h: security action enum.
19870
19871 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19872
19873         * assembly.c: fix possible memory corruption.
19874
19875 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19876
19877         * reflection.h, reflection.c: added support for linking resources.
19878         * verify.c: check we have an updated corlib.
19879
19880 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19881
19882         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19883         string arrays.
19884         (mono_marshal_string_array): null terminate unmanaged string arrays.
19885         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19886
19887 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19888
19889         * icall.c: Type.GetType () can now return also types from the
19890         calling assembly.
19891
19892 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19893
19894         * loader.h, loader.c: stack walking support.
19895         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19896         GetCallingAssembly.
19897
19898 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19899
19900         * marshal.c: added optimisations for blittable types 
19901
19902         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19903         (mono_class_setup_mono_type): set blittable attribute for single
19904         and double.
19905
19906         * marshal.c (mono_string_utf8_to_builder): impl.
19907         (mono_string_builder_to_utf8): impl.
19908         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19909
19910 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19911
19912         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19913         (mono_marshal_get_managed_wrapper): impl. byref types
19914
19915 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19916
19917         * icall.c:
19918         (search_method): don't display debug message. 
19919
19920 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19921
19922         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19923
19924 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19925
19926         * appdomain.c: set the missing filename when throwing exception.
19927
19928 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19929
19930         * metadata.c (mono_type_size): code cleanup
19931         (mono_type_stack_size): removed some test code
19932
19933 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19934
19935         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19936         mono_get_exception_file_not_found now.
19937
19938         * exception.c (mono_exception_from_name_two_strings): New version
19939         that will call a constructor with two string arguments. 
19940         (mono_get_exception_file_not_found): New helper routine, used to
19941         report file-not-found errors.
19942
19943 2002-07-20  Dick Porter  <dick@ximian.com>
19944
19945         * process.h:
19946         * process.c: Pass file handles to CreateProcess
19947         
19948         * icall.c:
19949         * file-io.h:
19950         * file-io.c: Implemented CreatePipe
19951
19952 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19953
19954         * metadata.c (mono_get_param_info): set alignment for value types
19955
19956 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19957
19958         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19959         Constify mono_domain_assembly_open().
19960         * loader.c: handle null namespace in icalls.
19961
19962 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19963
19964         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19965         (emit_str_to_ptr_conv): marshal object as structs
19966
19967         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19968
19969         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19970
19971 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19972
19973         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19974         (mono_marshal_get_native_wrapper): we an now return value types
19975
19976 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19977
19978         * verify.c: more checks implemented.
19979
19980 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19981
19982         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19983         (fix bug #27695)
19984         (mono_marshal_get_native_wrapper): allow byref arguments
19985         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19986         impl. PtrToStringXXX methods
19987         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19988         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19989         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19990         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19991         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19992
19993 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19994
19995         * reflection.c: fix buglet in parsing an assembly name.
19996
19997 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19998
19999         * marshal.c (emit_ptr_to_str_conv): first impl.
20000
20001 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20002
20003         * object.c, class.h: cache the vtable in the class as suggested by
20004         vargaz@freemail.hu (Zoltan Varga).
20005
20006 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20007
20008         * class.h, loader.c: added mono_field_from_token().
20009         * verify.c: first cut of type checking code.
20010
20011 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20012
20013         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
20014
20015 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
20016
20017         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
20018         (fix bug #27782)
20019         (mono_marshal_get_remoting_invoke): impl.
20020         (mono_delegate_begin_invoke): impl.
20021         (mono_mb_emit_save_args): impl.
20022         (mono_delegate_end_invoke): impl.
20023         (mono_marshal_get_delegate_begin_invoke):
20024         (mono_marshal_get_delegate_end_invoke):
20025         (mono_marshal_get_delegate_invoke): generate a special name for
20026         those methods (including the signature) and associate them whith
20027         the delegate class. 
20028
20029 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
20030
20031         * reflection.[ch]: 
20032         (mono_reflection_type_from_name): now it has a MonoImage parameter
20033         which is used as the default image to search the type in. If the image
20034         is NULL or getting the type from it fails, it defaults to corlib.
20035
20036         * icall.c: changed 1 call to mono_reflection_type_from_name to match
20037         new parameter.
20038
20039 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20040
20041         * reflection.c: update the parameter table index.
20042
20043 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20044
20045         * domain.c: don't include the mark byte in the string hash.
20046
20047 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20048
20049         * icall.cs: icall for Type.GetTypeCode ().
20050         * verify: a couple of fixes and disabled local initialization checks.
20051
20052 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
20053
20054         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
20055
20056         * debug-helpers.c (mono_method_full_name): print the type of the
20057         runtime wrapper
20058
20059         * metadata.c (mono_signature_hash): a hash function for signatures
20060         (mono_signature_hash): better hash algorithm
20061
20062         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
20063
20064         * debug-helpers.c (mono_method_full_name): this can now generate
20065         method names with signatures
20066
20067         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
20068         method dont have this pointers.
20069
20070 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20071
20072         * reflection.c: fixup typebuilder tokens.
20073         * image.c: fix buglet.
20074         * marshal.h: remove whitespace.
20075         * metadata.h, metadata.c: reinstate code that was removed.
20076         * verify.c: handle catch directives and fix another couple of bugs.
20077
20078 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
20079
20080         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
20081         (mono_marshal_get_native_wrapper): make it comp. with the old code
20082         (mono_marshal_get_native_wrapper): support boolean
20083         (mono_marshal_get_managed_wrapper): support more types
20084
20085 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
20086
20087         * class.c (class_compute_field_layout): compute class->blittable attribute.
20088
20089 2002-07-09  Dick Porter  <dick@ximian.com>
20090
20091         * threads.c: Make the thread cleaning up cope with threads that
20092         call ExitThread()
20093
20094 2002-07-08  Radek Doulik  <rodo@ximian.com>
20095
20096         * reflection.c (method_encode_code): use non-translated values to
20097         compute finally_start, this fixes exception handling on ppc, yay!
20098
20099         * decimal.h (struct signscale): fix endianess
20100
20101 2002-07-07  Radek Doulik  <rodo@ximian.com>
20102
20103         * reflection.c: swap box_val and not val
20104
20105 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20106
20107         * reflection.c, reflection.h: handle full assembly info in type name.
20108         Handle Type arguments when loading custom attributes.
20109         * icall.c: updated to use new mono_reflection_type_from_name () method.
20110
20111 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20112
20113         * loader.c:
20114         (method_from_memberref): also print assembly name when method not found.
20115
20116 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20117
20118         * icall.c:
20119         (ves_icall_TypeGetProperties): fixed bug #27473. 
20120
20121 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20122
20123         * reflection.c: display image name and token when cannot find the
20124         .ctor for an attribute.
20125
20126 2002-07-05  Martin Baulig  <martin@gnome.org>
20127
20128         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20129
20130 2002-07-04  Dick Porter  <dick@ximian.com>
20131
20132         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20133         compile on mingw.  This will cause mingw builds to not wait for
20134         subthreads to terminate after the main thread does.  I've lodged a
20135         bug with the mingw developers for them to wrap OpenThread().
20136
20137 2002-07-03  Dick Porter  <dick@ximian.com>
20138
20139         * threads.c: Store thread IDs instead of handles, because
20140         GetCurrentThread() returns a pseudohandle and therefore stores
20141         useless values.  mono_thread_cleanup() continues checking the
20142         array of threads until it is empty, to cope with subthreads
20143         spawning new threads after the main thread has finished.
20144
20145         * profiler.h:
20146         * profiler.c:
20147         * profiler-private.h: Pass the thread ID to thread profiler
20148         functions, instead of a handle
20149
20150 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20151
20152         * verify.c: fixes to make it more usable.
20153         * pedump.c: added --verify code to verify IL code in an assembly.
20154
20155 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20156
20157         * reflection.c: turn errors into warnings to allow compiling corlib.
20158
20159 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20160
20161         * reflection.c: add special cases to compile corlib.
20162
20163 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20164
20165         * reflection.c: handle properties with only a set method.
20166
20167 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20168
20169         * opcodes.h: add enum with opcodes in opval order.
20170
20171 2002-07-01  Dick Porter  <dick@ximian.com>
20172         
20173         * object.h:
20174         * object.c (mono_runtime_run_main): Removed unneeded argument
20175
20176 2002-06-28  Martin Baulig  <martin@gnome.org>
20177
20178         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20179
20180 2002-06-27  Dick Porter  <dick@ximian.com>
20181
20182         * threads.c: Store the handle in both the parent thread and in the
20183         subthread, to minimise the time between starting a new thread and
20184         storing its ID.
20185
20186 2002-06-26  Dick Porter  <dick@ximian.com>
20187
20188         * appdomain.c (mono_runtime_cleanup): Close the socket library
20189         after all the threads have finished, not before
20190
20191 2002-06-26  Martin Baulig  <martin@gnome.org>
20192
20193         * debug-symfile.c (mono_debug_find_source_location): Added
20194         `guint32 *line_number' argument.  If it's not NULL, store the line number
20195         there and return the file name without the line number.
20196
20197 2002-06-25  Dick Porter  <dick@ximian.com>
20198
20199         * icall.c:
20200         * process.h:
20201         * process.c: Process forking and other support functions
20202
20203 2002-06-25  Dick Porter  <dick@ximian.com>
20204
20205         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20206         things dont happen when the image is closed.
20207         (mono_image_lookup_resource): Walk the resource section looking
20208         for a particular entry
20209
20210         * cil-coff.h: PE resource section decoding
20211
20212 2002-06-25  Dick Porter  <dick@ximian.com>
20213         
20214         * assembly.h:
20215         * assembly.c: 
20216         (mono_assembly_foreach): Accessor functions to walk the list of
20217         loaded assemblies
20218         (mono_assembly_set_main):
20219         (mono_assembly_get_main): Process methods need to know which
20220         assembly is the "main" one
20221
20222         * object.c (mono_runtime_run_main): Record the main assembly
20223
20224         * debug-helpers.c: Fix typo
20225
20226 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20227
20228         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20229         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20230
20231 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20232
20233         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20234
20235 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20236
20237         * image.c (do_mono_image_open): Initialize reference count,
20238         otherwise we leak the MonoImage.
20239
20240 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20241
20242         * reflection.c: small tweak to handle self-hosting.
20243
20244 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20245
20246         * reflection.c: fix type name parse code.
20247
20248 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20249
20250         * reflection.c: break out of the loop.
20251         * image.c: special case corlib.
20252
20253 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20254
20255         * reflection.c: add all the custom attrs at the end to ensure the
20256         ctors have been properly initialized when the attributes are defined
20257         in the current assembly.
20258
20259 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20260
20261         * reflection.c: handle correctly multiple-nested types.
20262
20263 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20264
20265         * row-indexes.h: fix typos.
20266         * reflection.c: adjust for typos and fix method_def_or_ref
20267         encoding in MethodImpl table.
20268
20269 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20270
20271         * reflection.c: fix entry point patching (thanks Serge!).
20272
20273 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20274
20275         * verify.c: add check for System.Exception
20276
20277 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20278
20279         * image.c, class.c: minifix for code just c&p'ed.
20280         * reflection.c: warning fix.
20281         * object.h, loader.h, domain.c: load also StringBuilder.
20282
20283 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20284
20285         * marshal.h, marshal.c: some support code to handle complex marshaling.
20286
20287 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20288
20289         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20290         Better signatures with vtable error dump.
20291
20292 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20293
20294         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20295
20296 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20297
20298         * icall.c (ves_icall_Type_GetField): impl.
20299
20300 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20301
20302         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20303         to retrieve a marshal description blob for a field or param.
20304
20305 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20306
20307         * reflection.h, reflection.c: change order of nested type emission
20308         to avoid table corruption. The NestedTypes table is sorted.
20309         * icall.c: change order of GetConstructor results to workaround mcs bug.
20310
20311 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20312
20313         * reflection.h, reflection.c: handle field and param marshal
20314         information.
20315
20316 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20317
20318         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20319
20320 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20321
20322         * reflection.c: fix call convention.
20323
20324 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20325
20326         * reflection.h, reflection.c: mono_image_get_memberref_token()
20327         takes a type instead of a class, now. Added
20328         mono_image_get_array_token() to create tokens for the special
20329         multi-dim array methods.
20330
20331 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20332
20333         * assembly.c: handle modules (no assembly table). Split
20334         loading references in its own function.
20335         * class.c: handle moduleref resolution scope.
20336         * image.c, image.h: cache module name in image.
20337
20338 2002-06-07  Martin Baulig  <martin@gnome.org>
20339
20340         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20341         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20342
20343 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20344
20345         * icall.c: more signature fixes that used uint instead of int.
20346
20347 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20348
20349         * reflection.c: fixed signature of field refs.
20350
20351 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20352
20353         * class.c, reflection.c: handle typerefs of nested types
20354         (both on read and when writing files).
20355
20356 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20357
20358         * icall.c: fix method signatures that tried to workaround the previous
20359         typo, d'oh!
20360
20361 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20362
20363         * debug-helpers.c: fix typo.
20364
20365 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20366
20367         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20368         rewrote the PE/COFF writing code (our programs are understood by the
20369         ms runtime, now).
20370
20371 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20372
20373         * gc.c, gc.h, icall.c: weakreference support.
20374
20375 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20376
20377         * Makefile.am, mono-config.c: use $(sysconfdir).
20378
20379 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20380
20381         * icall.c: changed default precision of Double.ToString() to 15.
20382         Fixed memory leak. Unified with Single.ToString.
20383
20384 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20385
20386         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20387
20388 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20389
20390         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20391         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20392         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20393         and myself.
20394
20395 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20396
20397         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20398
20399 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20400
20401         * reflection.c, socket-io.c: more compilation fixes.
20402
20403 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20404
20405         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20406         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20407         unicode.c: warning and compiler compatibility fixes.
20408
20409 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20410
20411         * class.h, metadata.c: fixed warnings/compilation errors.
20412
20413 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20414
20415         * Makefile.am, mono-config.c, mono-config.h: configuration file
20416         support routines.
20417         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20418         config file. Export methods to insert and lookup mappings.
20419
20420 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20421
20422         * reflection.c: handle types and boxed objects in custom attr
20423         constructors.
20424
20425 2002-05-30  Martin Baulig  <martin@gnome.org>
20426
20427         * debug-symfile.c
20428         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20429
20430 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20431
20432         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20433         to lookup the implmap row for a P/Invoke method.
20434         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20435         P/Invoke method from the runtime on an as needed basis.
20436
20437 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20438
20439         * metadata.c (mono_metadata_parse_signature): impl.
20440
20441 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20442
20443         * class.c: handle .pack directive.
20444
20445 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20446
20447         * object.c: initialize static fields with RVA data.
20448
20449 2002-05-25  Martin Baulig  <martin@gnome.org>
20450
20451         * debug-symfile.c
20452         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20453
20454 2002-05-24  Martin Baulig  <martin@gnome.org>
20455
20456         * debug-symfile.c
20457         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20458         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20459         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20460
20461 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20462
20463         * object.c: special case string ctros in invoke.
20464         * gc.c: silly whitespace changes.
20465
20466 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20467
20468         * threadpool.[ch]: impl. a threadpool that can
20469         be used by mint and mono.
20470
20471 2002-05-22  Martin Baulig  <martin@gnome.org>
20472
20473         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20474         The first argument is now a `MonoReflectionModuleBuilder *', the return
20475         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20476         `methods' field to get the method builder.  The `token' argument is the
20477         unfixed token.
20478
20479         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20480         invalid characters instead of g_assert_not_reached()ing.  This seems
20481         to be the behaviour of mscorlib.
20482
20483 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20484
20485         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20486         Hestilow to fix bug #25104
20487
20488 2002-05-21  Martin Baulig  <martin@gnome.org>
20489
20490         * debug-symfile.c (mono_debug_find_source_location): New function.
20491         Looks up an IL offset in the line number table and returns the source
20492         location as a string.
20493
20494 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20495
20496         * icall.c:
20497         (mono_double_ToStringImpl): changed %f by %g until we have something
20498         better.
20499
20500 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20501
20502         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20503         parameters first in C#.
20504
20505 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20506
20507         * icall.c, reflection.h: added icall to get info about an event.
20508
20509 2002-05-20  Radek Doulik  <rodo@ximian.com>
20510
20511         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20512         endian
20513         (mono_value_box): don't use memcpy for small sizes on
20514         architectures with unaligned access
20515
20516 2002-05-20  Martin Baulig  <martin@gnome.org>
20517
20518         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20519         if `tb->parent == NULL'.
20520         (mono_reflection_create_internal_class): New function.  This is
20521         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20522         for enum types.
20523
20524         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20525         New interncall.
20526
20527 2002-05-19  Martin Baulig  <martin@gnome.org>
20528
20529         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20530         argument to get the length, don't default to the array length.
20531
20532 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20533
20534         * assembly.c (mono_assembly_setrootdir): New function used to
20535         override the MONO_ASSEMBLIES directory.
20536
20537 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20538
20539         * icall.c: ValueType_GetHashCode() initialize local var.
20540
20541 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20542
20543         * reflection.c: sort custom attributes table.
20544
20545 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20546
20547         * reflection.c: support named args in custom attributes (write support).
20548
20549 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20550
20551         * reflection.c: fix finally position calculation.
20552
20553 2002-05-15  Radek Doulik  <rodo@ximian.com>
20554
20555         * reflection.c: fixed endianess at many places
20556
20557         * icall.c (ves_icall_InitializeArray): comment out debug msg
20558
20559 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20560
20561         * object.c (mono_unhandled_exception): new function to handle
20562         unhandled exceptions.
20563         (mono_unhandled_exception): call the UnhandledException event.
20564         (mono_runtime_delegate_invoke): impl.
20565
20566 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20567
20568         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20569         returns the RVA, not the direct pointer to the data. Handle the case
20570         when the class size is fixed.
20571
20572 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20573
20574         * reflection.c: fix some endianess issues.
20575
20576 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20577
20578         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20579
20580         * threads.c (mono_thread_init): added a callback which is invoked
20581         at thread start.
20582
20583 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20584         
20585         * icall.c: make GetHashCode return non-negative values.
20586
20587 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20588
20589         * object.c, icall.c, gc.c: revert to address-based hashcode.
20590
20591 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20592
20593         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20594
20595 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20596
20597         * icall.c, class.c: special case <Module>.
20598
20599 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20600
20601         * icall.c: fix bug in GetNow().
20602
20603 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20604
20605         * object.c (mono_runtime_class_init): make sure that we call all
20606         static class constructors.
20607
20608 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20609
20610         * reflection.c: sort methodsemantics table.
20611
20612 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20613
20614         * reflection.h, reflection.c: honour init locals setting.
20615
20616 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20617
20618         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20619
20620 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20621
20622         * reflection.c: support ContructorBuilders in attribute blob creation.
20623
20624 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20625
20626         * reflection.c: some changes to build a binary that can be run
20627         directly in windows.
20628
20629 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20630
20631         * loader.c: print a big message when an icall can't be found.
20632
20633 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20634
20635         * string-icalls.c: fix bug 24248.
20636
20637 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20638
20639         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20640         icall.c, reflection.h: separate assembly loading by pathname and by
20641         assembly name. Use the MONO_PATH env var to search for assemblies.
20642
20643 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20644
20645         * assembly.c, image.h: add some support for assemblies
20646         with multiple modules.
20647         * class.c, class.h: export mono_class_from_typeref().
20648         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20649         instead.
20650
20651 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20652
20653         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20654         documentation says (the ECMA one is correct).
20655
20656 2002-05-02  Dick Porter  <dick@ximian.com>
20657
20658         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20659         Don't name the synchronisation mutex.
20660
20661 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20662
20663         * rand.c
20664         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20665         Make the prototypes match.
20666         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20667         Same.
20668
20669         * icall.c
20670         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20671         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20672         all systems have tm.tm_zone, so use strftime() with %Z to print
20673         the timezone abreviation into a temp string.
20674
20675         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20676         rather than mono_array_addr() on a MonoString on Big Endian
20677         machines.
20678
20679 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20680
20681         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20682         fix bug 24041
20683
20684 2002-04-30  Dick Porter  <dick@ximian.com>
20685
20686         * socket-io.c: Cope with SOCKET being an integer rather than a
20687         pointer now.
20688
20689         * threads.c: Added Thread_free_internal, to deal with thread
20690         handle cleanup.  Moved calls to handle_store() and handle_remove()
20691         to start_wrapper(), so each can only be called once.  Allocate
20692         synchronisation blocks with GC_malloc(), and use GC finalisation
20693         to close the handles.
20694
20695         * icall.c: added System.Threading.Thread::Thread_free_internal
20696
20697 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20698
20699         * icall.c: support Environment.Exit, CommandLineArgs().
20700
20701 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20702
20703         * object.c, object.h: added mono_runtime_run_main () and
20704         mono_runtime_get_main_args () for use in System.Environment.
20705
20706 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20707
20708         * gc.c: fix thinko, enable actual finalization since the jit is now
20709         fixed.
20710
20711 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20712
20713         * gc.c, object.c: take into account that an object may be offset wrt the address
20714         returned by GC_malloc().
20715
20716 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20717
20718         * image.c: handle files without entries in the assembly table (modules).
20719
20720 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20721
20722         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20723         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20724         allowed to be null when it's System.Object class setup.
20725
20726 2002-04-27  Martin Baulig  <martin@gnome.org>
20727
20728         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20729         if `tb->parent == NULL' rather than crashing.
20730
20731 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20732
20733         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20734         calling acos() where asin() should have been called.
20735
20736 2002-04-26  Martin Baulig  <martin@gnome.org>
20737
20738         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20739         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20740         there's a subdirectory called `System', but we don't want to read that
20741         subdirectory as an assembly.
20742
20743 2002-04-25  Martin Baulig  <martin@gnome.org>
20744
20745         * debug-symfile.c: Reflect latest MonoString changes.
20746
20747 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20748
20749         * rand.c, rand.h: instance method icalls need to have an explicit
20750         this pointer as first argument in the C implementation.
20751
20752 2002-04-25  Nick Drochak <ndrochak@gol.com>
20753
20754         * icall.c: Fix typo in map for GetNonZeroBytes
20755
20756 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20757
20758         * string-icalls.c : String does now passes unit tests without any 
20759         errors, the following changes has been made:
20760         
20761         Implemented replace methods.
20762         Renaming of methods to (try) follow the standard.
20763         Fixed compare ordinal
20764         Made all memory allocated directly to function instead of via icall function.
20765         Small performance fix in is_in_array function
20766                         
20767  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20768
20769         c (mono_string_Internal_ctor_charp_int_int):
20770         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20771         sindex < 0, throw ArgumentOutOfRangeException instead of
20772         ArgumentNullException.
20773
20774         Added new check for length == 0, however
20775         I need to make it return String.Empty from the C code.
20776         
20777         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20778         that calculate the length for us here.
20779         
20780         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20781         mono_string_new_utf16 with mono_string_new, since value is utf8.
20782
20783 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20784
20785         * object.c: register the object for finalization if needed.
20786         Allocate one more char in the string for the terminating 0 char.
20787
20788 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20789
20790         * class.c, class.h, image.c: check if a type implemenst a destructor.
20791         Use the proper key for array class lookups.
20792         * icall.c: register the icalls in the System.GC class.
20793         * gc.c, gc.h: GC-related functions and icalls.
20794
20795 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20796
20797         * icall.c:
20798         * socket-io.c:
20799         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20800         changed a couple of free () by g_free ().
20801
20802         * decimal.c: one-liner in the comments for decimal2string ().
20803
20804 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20805
20806         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20807
20808 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20809
20810         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20811         * object.c (mono_runtime_invoke_array) : handle null in params
20812
20813 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20814
20815         * string-icalls.c: fixed bug in split (one off bug)
20816
20817 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20818
20819         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
20820         * icalls.c: added String::Equals as internal method
20821
20822 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20823
20824         * threads.c: fixed bug in the double interlocked functions
20825
20826 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
20827
20828         * threads.c: implemented all of the new interlocked icalls.
20829         * string-icalls.c: fix a bug in insert.
20830         * icalls.c: added the icalls for interlocked, removed old string functions.
20831         
20832 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20833
20834         * loader.c: fix off-by-one error when reading argument names.
20835
20836 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20837
20838         * profiler.c: win32 counter implementation (untested).
20839         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20840         (the latter needs testing and more complete impl. from win32 folks).
20841
20842 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20843
20844         * object.c: mono_array_new_full workaround mono_array_class_get
20845         problem.
20846
20847 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20848
20849         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20850         * object.h (mono_string_chars): Changed casting type.
20851
20852 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20853
20854         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20855                            method signatures to use gunichar2 instead of gint16.
20856
20857 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20858
20859         * object.h, object.c: domain-specific versions of mono_object_new and
20860         mono_array_new.
20861
20862 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20863
20864         * object.c: changed String layout
20865
20866         * string-icalls.c (mono_string_Internal_ctor_chara): added
20867         internal string constructors.
20868
20869 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20870
20871         * threads.c: pass 'this' to the thread start routine.
20872
20873 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20874
20875         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20876         InternalCompareStr don't call twice mono_string_cmp_char for the last
20877         character. Improved performance in mono_string_cmp_char.
20878
20879 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20880
20881         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20882         code into its own library: libmonoruntime.
20883
20884 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20885
20886         * object.h, object.c: changed array format so that szarrays do not
20887         require a bounds structure.
20888         * icall.c, appdomain.c: support for new szarray format.
20889
20890 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20891
20892         * metadata.c: compare also the retuns type when comparing signatures:
20893         we didn't do this as an optimization since really overloaded methods
20894         must differ also in the arguments, but this doesn't work with
20895         low-level IL code (or when using explicit conversion operators: see
20896         bug#23498 for an example).
20897
20898 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20899
20900         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20901
20902 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20903
20904         * icall.c: make MonoType::GetElementType its own icall.
20905
20906 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20907
20908         * icall.c: remove MonoMethod_get_Name().
20909         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20910         object.
20911
20912 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20913
20914         * string-icalls.c: optimized a few methods.
20915
20916 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20917
20918         * icall.c: added all new string internal calls
20919         * string-icalls.c: added, new string internal call implementation.
20920         * object.c: added mono_string_new_size for allocating a string a size
20921
20922 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20923
20924         * object.c (mono_object_isinst): use the same code as in the
20925         optimized x86 version.
20926
20927 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20928
20929         * profiler.c: TSC-based timer code (faster and more accurate).
20930         Not hooked up in configure, yet (set USE_X86TSC to 1).
20931
20932 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20933
20934         * profiler.c, profiler.h: track time spent compiling methods.
20935         * threads.c: track thread creation/destruction.
20936
20937 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20938
20939         * profiler.c, profiler.h, profiler-private.h: profiling interface
20940         and sample implementation. Moved here so that it can be used also by
20941         the jit.
20942
20943 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20944
20945         * reflection.c, reflection.h: keep types and other handles separate in
20946         the hash tables for referred tokens. Add guid for modules.
20947
20948 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20949
20950         * assembly.c: fix bugs found with valgrind.
20951         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20952
20953 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20954
20955         * threads: added icall support for getting current domain for
20956                    the thread.
20957  
20958 2002-04-13  Martin Baulig  <martin@gnome.org>
20959
20960         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20961         (MonoDebugVarInfo): Added `index' field for register based addresses.
20962         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20963         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20964         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20965         `MonoDebugVarInfo *this_var'.
20966
20967         * debug-symfile.c (relocate_variable): New static function to write
20968         a location description for a local variable or method parameter.
20969
20970 2002-04-12  Martin Baulig  <martin@gnome.org>
20971
20972         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20973         stack offset and begin/end scope address of a local variable.
20974         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20975         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20976         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20977
20978         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20979         Added new relocation types for start/end scope of a local variable.
20980
20981 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20982
20983         * object.h: add mono_object_domain() macro.
20984         * reflection.c: handle typespecs.
20985         * icall.c: MonoMethod::get_Name() implementation.
20986
20987 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20988
20989         * icall.c: String::GetHashCode() icall implementation.
20990
20991 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20992
20993         * icall.c: String::IndexOfAny icall.
20994         * object.c, object.h: make array->max_length more useful.
20995         Intrduced mono_object_class() and mono_string_length() macros.
20996
20997 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20998
20999         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
21000         instead of g_unichar_isdigit.
21001
21002 2002-04-11  Nick Drochak  <ndrochak@gol.com>
21003
21004         * icall.c: Implement a simple Double.ToString().
21005
21006 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21007
21008         * appdomain.h: only io-layer.h is supposed to be included.
21009         * icall.c: explicitly import environ. Fix warning.
21010
21011 2002-04-10  Nick Drochak  <ndrochak@gol.com>
21012
21013         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
21014                 return true even if it's not Daylight Savings time.
21015                 Only return false for the case where the function isn't
21016                 implemented for a plaform (read Windows).
21017
21018 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21019
21020         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
21021         data with a mutex.
21022
21023 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
21024
21025         * mempool.c (mono_mempool_alloc): only use g_malloc when
21026         absolutely necessary.
21027
21028 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21029
21030         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
21031
21032         * class.c (mono_class_vtable): use domain mempool to allocate vtable
21033         (mono_class_proxy_vtable): use domain mempool
21034
21035 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21036
21037         * appdomain.h, appdomain.c: split initialization that requires the
21038         execution engine support into mono_runtime_init().
21039
21040 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21041
21042         * class.c (mono_class_init): don't include vtable inside MonoClass
21043         to save some memory, gather some statistics.
21044         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
21045
21046 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21047
21048         * icall.c: internalcall implementation for ValueType.Equals().
21049
21050 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
21051
21052         * object.c (mono_message_init): moved 
21053         (mono_runtime_exec_main): new arch. independent impl.
21054         (mono_runtime_invoke_array): new method - like
21055         mono_runtime_invoke, but you can pass an array of objects.
21056         (mono_remoting_invoke): new arch. independent impl.
21057         (mono_message_invoke): new arch. independent impl.
21058         (mono_runtime_class_init): new arch. independent impl.
21059         (mono_runtime_object_init): new arch. independent impl.
21060
21061 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21062
21063         * metadata.c, object.c, reflection.c: documented the exported
21064         functions.
21065
21066 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21067
21068         * icall.c: simpler code to pass the assembly builder data to corlib.
21069         Implement GetNestedTypes() internalcall.
21070
21071 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21072
21073         * class.c: warn if a type can't be loaded.
21074
21075 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
21076
21077         * image.h: typedef MonoImageOpenStatus
21078         * types.h: removed unused file
21079         
21080 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
21081
21082         * icall.c: Enum_ToObject accepts enum value arguments.
21083
21084 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21085
21086         * class.c: move initialization of properties, events and nested
21087         classes, so that they happen for interfaces, too.
21088
21089 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21090
21091         * icall.c: cleanup some ugly casts in Array_SetValue*.
21092
21093 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21094
21095         * icall.c: the values array fro enums is of the correct type, now.
21096         Implement (correctly) getFullName instead of assQualifiedName for
21097         MonoType.
21098         * reflection.h, reflection.c: added mono_type_get_name ().
21099
21100 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21101
21102         * assembly.c, image.h: for each MonoImage, record from wich assembly
21103         it was loaded.
21104         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
21105         Make Type.Assembly work.
21106
21107 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21108
21109         * debug-symfile.h: use char* instead of gpointer to avoid
21110         unnecessary casts.
21111
21112         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21113
21114         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21115         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21116
21117 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21118
21119         * icall.c (mono_message_init): impl. (code cleanup)
21120         (ves_icall_InternalExecute): impl. FieldGetter
21121
21122         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21123         defined we call all (non-static)methods through the vtable. 
21124
21125 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21126
21127         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21128         finalizer even though the memory is still referenced (and the chunk of
21129         memory is not freed).
21130
21131 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21132
21133         * assembly.c: fix brokeness.
21134
21135 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21136
21137         * class.c: kill some warnings. Check explicit interface method
21138         implementation also without considering the namespace.
21139         Load also literal strings in static class data.
21140
21141 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21142
21143         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21144         (default_assembly_name_resolver): Make the resolver take the
21145         "base" directory where the assembly was originally defined, so we
21146         can load DLLs that are in the same directory as the assembly that
21147         is being referenced.
21148
21149 2002-03-28  Dick Porter  <dick@ximian.com>
21150
21151         * file-io.h: 
21152         * file-io.c:
21153         * socket-io.c: 
21154         * unicode.h: 
21155         * unicode.c: Warning cleanups
21156
21157 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21158
21159         * object.h, reflection.h: use the correct type instead of MonoObject.
21160
21161 2002-03-28  Martin Baulig  <martin@gnome.org>
21162
21163         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21164         (mono_debug_update_symbol_file): Initialize classes if necessary.
21165
21166 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21167
21168         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21169         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21170
21171 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21172
21173         * assembly.h: fix function prototype.
21174         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21175         * mono-endian.h: use const cast.
21176
21177 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21178
21179         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21180
21181 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21182
21183         * loader.c: don't assert when a typeref can't be loaded, give
21184         a chance to the runtime to trow an exception instead.
21185         * loader.h: fix warning.
21186
21187 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21188
21189         * class.c (mono_class_proxy_vtable): added proxy support
21190
21191 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21192
21193         * icall.c: removed last of PAL calls, added System.Environment
21194         * file-io.h, file-io.c: MonoIO implementation
21195         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21196
21197 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21198
21199         * appdomain.c: do not use the byte marker in ldstr table lookup.
21200         * debug-helpers.c: allow two ':' to separate class and method name.
21201         * object.c: allocate arrays bounds with the GC, too.
21202         * verify: add a few more checks.
21203
21204 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21205
21206         * reflection.c: output also literal strings. Allocate parameter data
21207         with GC_malloc() (thanks, Martin, for catching this!).
21208
21209 2002-03-26  Martin Baulig  <martin@gnome.org>
21210
21211         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21212         include the `this' offset in the `param_offsets'.
21213
21214 2002-03-25  Martin Baulig  <martin@gnome.org>
21215
21216         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21217         mono_debug_get_class() function to get the classes. Added new
21218         relocation types for arrays and strings.
21219         (mono_debug_get_class): New static function to search in all
21220         referenced assemblies for a metadata token.
21221
21222         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21223
21224 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21225
21226         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21227         hold gc-allocated objects. Make the string heap a stream like the
21228         others. Removed duplicated code when writing stream info.
21229         Added asserts to catch possible buffer overflows. Set the sorted map
21230         for tables that need sorting. Added some documentation.
21231
21232 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21233
21234         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21235         for interned strings and vtables.
21236
21237 2002-03-24  Martin Baulig  <martin@gnome.org>
21238
21239         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21240         it in the array since it was created with g_slist_prepend().
21241
21242 2002-03-24  Martin Baulig  <martin@gnome.org>
21243
21244         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21245         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21246         (mono_debug_method_from_token): Renamed to
21247         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21248         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21249
21250         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21251         relocation types.
21252
21253         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21254
21255 2002-03-24  Martin Baulig  <martin@gnome.org>
21256
21257         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21258         (mono_debug_method_from_token): New func.
21259
21260         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21261         New interncall, calls mono_debug_local_type_from_signature().
21262         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21263         calls mono_debug_method_from_token().
21264
21265 2002-03-23  Martin Baulig  <martin@gnome.org>
21266
21267         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21268         specifies the number of bytes to be converted, not the array size.
21269         Return the number of chars, not the number of bytes.
21270         (ves_icall_iconv_get_chars): The `byteCount' argument
21271         specifies the number of bytes to be converted, not the array size.
21272
21273 2002-03-23  Martin Baulig  <martin@gnome.org>
21274
21275         * reflection.h (MonoReflectionSigHelper): New type.
21276
21277         * reflection.c (mono_reflection_sighelper_get_signature_local),
21278         (mono_reflection_sighelper_get_signature_local): New functions.
21279
21280         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21281         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21282         interncalls.
21283
21284 2002-03-23  Martin Baulig  <martin@gnome.org>
21285
21286         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21287         is_writeable is set.
21288         (mono_raw_buffer_update): New function to write the modified map
21289         back to disk.
21290
21291         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21292
21293         * debug-symfile.c (mono_debug_update_symbol_file): Call
21294         mono_raw_buffer_update() when done writing.
21295
21296 2002-03-23  Martin Baulig  <martin@gnome.org>
21297
21298         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21299
21300         * debug-symfile.c: Added support for arguments and local variables.
21301
21302 2002-03-23  Dick Porter  <dick@ximian.com>
21303
21304         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21305         protected by ifdefs, hence breaking the w32 build.
21306
21307 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21308
21309         * object.c: implement is_interned() the right way.
21310
21311 2002-03-21  Martin Baulig  <martin@gnome.org>
21312
21313         * debug-symfile.[ch]: New files to handle debugging information
21314         files. There's also support to dynamically update these symbol
21315         files to include machine dependent information.
21316
21317 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21318
21319         * threads.c (mono_thread_create): new function to create thread
21320         from C
21321
21322 2002-03-20  Martin Baulig  <martin@gnome.org>
21323
21324         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21325         method is a constructor.
21326         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21327         points to ves_icall_InternalInvoke().
21328
21329 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21330
21331         * file-io.c: Flush shouldn't throw exceptions.
21332
21333 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21334
21335         * file-io.c: FileStream flush support; FileSetLength now
21336         restores file pointer.
21337
21338 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21339
21340         * class.c: set image for pointer classes.
21341
21342 2002/03/19  Nick Drochak <ndrochak@gol.com>
21343
21344         * sysmath.c: Forgot one.
21345
21346 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21347
21348         * sysmath.c: Avoid redefining existing names.
21349
21350 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21351
21352         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21353         handled by runtime as icall rather than dllimport from libm.so
21354         * file-io.c, file-io.h: fixed handle argument type.
21355
21356 2002-03-18  Dick Porter  <dick@ximian.com>
21357
21358         * reflection.c (mono_image_get_type_info): rename interface to
21359         iface, because of "#define interface struct" on windows.
21360
21361 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21362
21363         * class.c, class.h: rename and export mono_ptr_class_get().
21364         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21365         * reflection.c, reflection.h, icall.c: better/saner type name
21366         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21367         method signatures.
21368
21369 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21370
21371         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21372
21373         * icall.c (ves_icall_InternalInvoke): impl.
21374
21375 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21376
21377         * reflection.c: output the interface map table, too.
21378
21379 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21380
21381         * class.c (class_compute_field_layout): separate computation of 
21382         static field layout
21383
21384 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21385
21386         * icall.c: added System.Buffer support.
21387         * file-io.c: moved file icalls from PAL to FileStream.
21388
21389 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21390
21391         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21392
21393 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21394
21395         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21396
21397 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21398
21399         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21400
21401 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21402
21403         * debug-helpers.{c,h}: moved here from monograph some useful functions
21404         to locate a method by name/signature in a class or image. Included
21405         also a small and flexible IL disassembler.
21406
21407 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21408
21409         * reflection.c: fixup tokens in methods with small header size, too.
21410
21411 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21412
21413         * object.c (mono_string_to_utf8): remove assert(!error), instead
21414         print a warning. 
21415
21416 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21417
21418         * icall.c: update to the new mono_Array_class_get interface.
21419
21420 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21421
21422         * appdomain.c, object.c: Boehm-GC enable.
21423         * icall.c: make get_data_chunk() support split data requests.
21424         Ensure a class is initialized in more cases. Return only the first
21425         property found in GetProperties() or the compiler gets confused. 
21426         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21427         * reflection.h, reflection.c: add fixup mechanism for field and method
21428         tokens. Initialize assembly->typeref in a single place. Output
21429         properties after events. Support custom attributes for events, too.
21430         Typo fix for paramter custom attrs.
21431
21432 2002-03-07  Martin Baulig  <martin@gnome.org>
21433
21434         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21435
21436 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21437
21438         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21439
21440 2002-03-06  Martin Baulig  <martin@gnome.org>
21441
21442         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21443         non-zero lower bounds. See testcases #F10-#F13.
21444
21445 2002-03-05  Martin Baulig  <martin@gnome.org>
21446
21447         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21448
21449         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21450         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21451         here.
21452         (ves_icall_System_Array_SetValue): Likewise.
21453         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21454         as argument and does the actual work. This function is used when copying a
21455         multi-dimensional array.
21456         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21457         now do all the widening conversions of value types.
21458         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21459
21460 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21461
21462         * class.c: remove some magic numbers and use the smbolic names,
21463         instead. Added init_events() to load event info at class init time.
21464         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21465         and mono_metadata_methods_from_event().
21466         * reflection.h, reflection.c: added support for writing out the evnets
21467         related information.
21468
21469 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21470
21471         * reflection.h, icall.c: use a different method (GetInterfaces)
21472         to gather interface info and add isbyref, isprimitive and
21473         ispointer to the ves_icall_get_type_info() return value.
21474
21475 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21476
21477         * class.h: stared adding support for events.
21478         * icall.c: split find_members implementation. Added debug icall to get
21479         the address of an object.
21480         * reflection.c: handle TypeBuilders in mono_type_get_object().
21481
21482 2002-03-01  Martin Baulig  <martin@gnome.org>
21483
21484         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21485         ArgumentOutOfRangeException(), not an ArgumentException().
21486         (ves_icall_System_Array_GetLowerBound): Likewise.
21487         (ves_icall_System_Array_GetValue): Improved argument checking.
21488         (ves_icall_System_Array_SetValue): Improved argument checking.
21489
21490 2002-03-01  Martin Baulig  <martin@gnome.org>
21491
21492         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21493         called with invalid arguments rather than just dying with g_assert().
21494         (ves_icall_System_Array_SetValue): Likewise.
21495         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21496         raise a NotImplementedException instead.
21497         (ves_icall_System_Array_GetLength): Added argument checking.
21498         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21499
21500 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21501
21502         * object.h (mono_assert): new macros mono_assert and
21503         mono_assert_not_reached
21504
21505 2002-02-28  Martin Baulig  <martin@gnome.org>
21506
21507         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21508         and "System::String::IsInterned" to "System::String::_IsInterned".
21509
21510 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21511
21512         * icall.c: remove hacks for typebuilder. Added icall to create a
21513         modified type from a tybebuilder.
21514         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21515         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21516         to create a backing MonoClass for a TypeBuilder.
21517
21518 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21519
21520         * class.c, class.h: more refactoring of class init.
21521         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21522
21523 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21524
21525         * marshal.c, marshal.h: start of marshaling interface.
21526
21527 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21528
21529         * icall.c: fix order in assembly qualified name icall.
21530
21531 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21532
21533         * class.c: do not free str, since we store it in the hash table.
21534         * reflection.h: add label field to MonoILExceptionInfo.
21535         * reflection.c: handle references to more than one assembly. Handle
21536         case when there isn't a module created in the assembly.
21537
21538 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21539
21540         * class.c: Fix typo. Start refactoring of class init code.
21541
21542 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21543
21544         * appdomain.c: exit with 1 on error.
21545         * class.c: we already have the name in MonoClassField.
21546         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21547         MonoStreamHeader instead of an offset of image->raw_metadata.
21548
21549 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21550
21551         * appdomain.c (mono_init): Be even more descriptive about the error.
21552
21553 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21554
21555         * appdomain.c: give the user an informative message when corlib can't
21556         be loaded.
21557
21558 2002-02-26  Martin Baulig  <martin@gnome.org>
21559
21560         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21561         New icall to get the time zone data.
21562
21563 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21564
21565         * reflection.c: set virtual and raw size of section correctly.
21566         * threads.c: transfer domain information to newly created threads.
21567
21568 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21569
21570         * class.c: when instancing a class in a domain, load the default
21571         vaules for static fields from the constant table. Fix System.Enum to
21572         not be an enum.
21573         * icall.c: implement Object::GetType() internalcall. Implemented
21574         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21575         Fixed checking of binding flags in find_members().
21576         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21577         * reflection.c: handle enumerations when writing to the constant
21578         table. Use a different object cache for types.
21579
21580
21581 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21582
21583         * object.c (mono_object_isinst): fix for arrays
21584
21585         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21586
21587 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21588
21589         * object.c: don't use mprotect ()  and fix intern pool hash table
21590         lookup for big endian systems.
21591
21592 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21593
21594         * icall.c: change type_is_subtype_of () signature.
21595
21596 2002-02-21  Mark Crichton  <crichton@gimp.org>
21597
21598         * rand.c, rand.h: Added random number generator for
21599         System.Security.Cryptography classes.
21600
21601         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21602
21603         * icall.c: Added System.Security.Cryptography calls.
21604
21605 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21606
21607         * class.c, icall.c, metadata.c: better support for pointer types.
21608         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21609         * reflection.c: Add support for getting custom attrs for properties
21610         and simplify some code.
21611
21612 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21613
21614         * icall.c: change getToken () and add custom attribute GetBlob()helper
21615         method.
21616         * reflection.h: add custom attrs array to the reflection builder structures.
21617         * reflection.c: encode and emit custom attributes for all the relevant
21618         reflection objects. Cache fieldref and methodref tokens. Change
21619         mono_image_create_token() interface to take a MonoDynamicAssembly.
21620         More complete custom attributes decoder. Load custom attributes for
21621         Assembly, Field, Method and Constructor objects, too. Make the
21622         returned array an Attribute[] one, not object[]. Added
21623         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21624         custom attribute constructor.
21625
21626 2002-02-20  Dick Porter  <dick@ximian.com>
21627
21628         * icall.c:
21629         * rawbuffer.c:
21630         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21631         problem code out for now).
21632
21633 2002-02-19  Radek Doulik  <rodo@ximian.com>
21634
21635         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21636
21637 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21638
21639         * icall.c: register the GetCustomAttributes method.
21640         * object.c, object.h: add mono_string_new_len ().
21641         * reflection.h, reflection.c: added mono_runtime_invoke(),
21642         mono_install_runtime_invoke(). Added
21643         mono_reflection_get_custom_attrs () to load custom attributes and
21644         create the attribute objects.
21645
21646 2002-02-19  Dick Porter  <dick@ximian.com>
21647         * threads-dummy-types.c:
21648         * threads-dummy-types.h:
21649         * threads-dummy.c:
21650         * threads-dummy.h:
21651         * threads-pthread-types.c:
21652         * threads-pthread-types.h:
21653         * threads-pthread.c:
21654         * threads-pthread.h:  Deleted obsolete files
21655
21656 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21657
21658         * class.c (mono_class_vtable): runtime init the class when we
21659         allocate static class data.
21660
21661         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21662
21663         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21664         and String - but we will need generic marshalling support in the
21665         future. 
21666         (mono_init): set the domain name in a ms compatible way
21667
21668         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21669         String[].
21670
21671 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21672
21673         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21674         for sizes
21675
21676         * appdomain.c (mono_domain_unload): impl.
21677
21678 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21679
21680         * appdomain.c, object.c: fix intern pool implementation.
21681         * class.c: fix alignment code.
21682
21683 2002-02-16  Radek Doulik  <rodo@ximian.com>
21684
21685         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21686         and s2 > s1, just copy lower bytes to be compatible with little
21687         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21688         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21689
21690         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21691         force big_endian to be 1 for big endian machines 
21692         (ves_icall_iconv_new_decoder): ditto
21693
21694 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21695
21696         * socket-io.c (convert_sockopt_level_and_name): If the system
21697         doesn't define SOL_IP or SOL_TCP, get them by hand using
21698         getprotobyname() and caching the values (because this could be a
21699         slow operation).
21700         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21701         Use the appropriate struct when the system does support it. Ie,
21702         not all systems have struct ip_mreqn so use struct ip_mreq when
21703         appropriate.
21704
21705 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21706
21707         * reflection.c: handle finally clauses.
21708
21709 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21710
21711         * socket-io.c: use g_snprintf() instead of snprintf.
21712
21713 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21714
21715         * reflection.c (mono_param_get_objects): Cast second argument to
21716         mono_method_get_param_names to a const char** to silence the
21717         compiler warning.
21718
21719         * appdomain.c (mono_domain_assembly_open): Put parens around the
21720         truth statement in the for-loop.
21721
21722         * unicode.c (iconv_convert): Got rid of a compiler warning about
21723         int i being unused when the system has a new iconv.
21724         (iconv_get_length): Same.
21725
21726         * image.c (load_class_names): Cast the second argument to
21727         g_hash_table_insert() to char* to hush compiler warnings about the
21728         arg being a const.
21729         (mono_image_open): Same here.
21730
21731         * socket-io.c: Don't conditionally include sys/filio.h or
21732         sys/sockio.h here anymore since we now get them from
21733         io-layer/io-layer.h
21734         (inet_pton): If the system doesn't support inet_aton, implement
21735         using inet_addr and also #define INADDR_NONE if it isn't defined
21736         by the system.
21737
21738 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21739
21740         * metadata.c, metadata.h: added function to get packing and size info
21741         of a typedef.
21742         * reflection.h, reflection.c: handle field RVA data. Save info about
21743         the table layout if needed. Assign typedef indexes to all the types
21744         before dumping the info about them to avoid forward reference problems.
21745
21746 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21747
21748         * socket-io.c (convert_sockopt_level_and_name): ifdef
21749         SO_ACCEPTCONN because it is not defined on my system (old debian)
21750
21751 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21752
21753         * opcode.c: use stddef.h to get NULL.
21754
21755 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21756
21757         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21758         for FIONBIO, FIONREAD and SIOCATMARK.
21759         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21760         define INADDR_NONE and besides, inet_addr() is deprecated and
21761         should not be used. Use inet_pton() instead - it also has the
21762         added bonus that it can easily handle IPv6 addresses as well.
21763         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21764
21765 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21766
21767         * decimal.c: remove _MSC_VER conditional.
21768
21769 2002-02-13  Dick Porter  <dick@ximian.com>
21770
21771         * socket-io.c: 
21772         * icall.c: Internal calls for Blocking, Select, Shutdown,
21773         GetSocketOption and SetSocketOption
21774
21775 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21776
21777         * assembly.cs: better resolver: use it instead of some kludgy
21778         code.
21779
21780 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21781
21782         * reflection.c: the best way to speed-up the compiler is to avoid
21783         infinite loops.
21784
21785 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21786
21787         * class.c (mono_class_vtable): changed the object layout
21788         (obj->vtable->class). 
21789         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21790
21791 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21792
21793         * assembly.c: look for assemblies in the assembly dir, too.
21794
21795 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21796
21797         * class.c: fix thinko in mono_class_from_type().
21798
21799 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21800
21801         * exception.h, exception.c: added TypeLoadException.
21802         * object.h, object.c: added mono_array_clone ().
21803         * icall.c: handle throwOnError in AssemblyGetType().
21804         Added Array.Clone().
21805         * opcode.h, opcode.c: use a single value for the opcode val.
21806         Compile fix for non-gcc compilers.
21807
21808 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21809
21810         * opcodes.c, opcodes.h: export interesting info about opcodes.
21811
21812 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21813
21814         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21815         icalls. 
21816
21817         * class.c (class_compute_field_layout): set element_class for enums
21818         (mono_class_create_from_typedef): set element_class for normal classes
21819
21820         * icall.c (ves_icall_System_Enum_get_value): impl.
21821
21822         * class.c (mono_class_create_from_typedef): do not set valuetype
21823         flag for System.ValueType and System.Enum
21824
21825 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
21826
21827         * unicode.c (iconv_convert): fix big endian problem.
21828
21829 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21830
21831         * class.c: add asserts if we are ever going to scribble over memory.
21832         * socket-io.c: not all systems have AF_IRDA defined.
21833
21834 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21835
21836         * class.c (class_compute_field_layout): do not consider static
21837         fields to compute alignment
21838
21839 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21840
21841         * appdomain.c (mono_appdomain_get): impl.
21842         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21843
21844 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21845
21846         * icall.c: ignore "file://" prefix when loading an assembly.
21847
21848 2002-01-23  Dick Porter  <dick@ximian.com>
21849
21850         * socket-io.c:
21851         * icall.c:
21852         * Makefile.am: Added socket support
21853
21854 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21855
21856         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21857         code back.  This should return the assemblies that are loaded by
21858         the runtime on behalf of an application domain. 
21859
21860         The current implementation is still broken, it just returns every
21861         assembly loaded, but until we get real applications domain this
21862         will do.
21863
21864 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21865
21866         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21867         AppDomain object.
21868
21869 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21870
21871         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21872         the mono_class_from_name lookup.
21873         (ves_icall_get_parameter_info): ditto.
21874         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21875         method.
21876         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21877
21878 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21879
21880         * class.c: load also nested classes on class init.
21881         System.ValueType instance methods gets passed boxed
21882         values, unless methods in derived classed that get a pointer to the
21883         data.
21884         * icall.c: use better name parsing code in GetType().
21885         * image.c, image.h: add mono_image_loaded ().
21886         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21887         * reflection.c, reflection.h: added mono_reflection_parse_type().
21888
21889 2002-01-22  Veronica De Santis <veron78@interfree.it>
21890
21891         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21892         * threads.c : Added the implementation of internal calls for events
21893         * threads.h : Added prototypes of internal calls for events
21894         
21895 2002-01-21  Radek Doulik  <rodo@ximian.com>
21896
21897         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21898
21899 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21900
21901         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21902         (mono_class_value_size): use min_align
21903
21904 2002-01-20  Dick Porter  <dick@ximian.com>
21905
21906         * threads.h:
21907         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21908         so it compiles on w32.
21909
21910 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21911
21912         * metadata.c (mono_type_stack_size): impl.
21913
21914         * class.c (mono_class_get_field): impl. memberref token
21915
21916 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21917
21918         * icall.h : Added the internal calls mapping for CreateMutex_internal
21919                     and ReleaseMutex_internal.
21920         * threads.h : Added the prototype of mutexes internal calls.
21921         * threads.c : Added the implementations of mutexes internal calls.
21922
21923 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21924
21925         * metaparse.h: removed unused file.
21926         * reflection.c, reflection.h: added stream_data_align () function 
21927         to align data in streams and keep stream aligned. Add support for
21928         exception support in method headers.
21929
21930 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21931
21932         * unicode.c: make iconv_convert () return the number of bytess written
21933         in the output buffer.
21934
21935 2002-01-15  Dick Porter  <dick@ximian.com>
21936         * threads.c: Make the runtime's idea of infinite timeouts coincide
21937         with the class library's
21938
21939         Fix a particularly egregious bug in mono_thread_cleanup(). That
21940         code was so utterly bogus it must have been written on a Monday.
21941
21942 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21943
21944         * reflection.h: add subtypes field to TypeBuilder.
21945         * reflection.c: encode constants for literal fields.
21946         Handle subtypes. Fix user string token (and add a zero byte)
21947         at the end.
21948         
21949 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21950
21951         * class.c (mono_class_init): bug fix: assign slot numbers for
21952         abstract methods.
21953
21954 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21955
21956         * reflection.c: don't try to output a code RVA for abstract methods.
21957         Small fixes for method header format. Output parameter info to the
21958         ParamDef table. Save method overriding info to MethodImpl table.
21959         Fix property support. Allow typedef.extends to be a type in the
21960         building assembly.
21961         * verify.c: fix off-by-one error.
21962
21963 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21964
21965         * class.c: fix mono_class_from_mono_type () for szarray types.
21966         Remove unused cache check in mono_class_from_type_spec().
21967         * icall.c: *type_from_name () functions handle simple arrays and byref.
21968         * reflection.c: handle byref and szarray types. Handle methods without
21969         body (gets P/Invoke compilation working). Handle types and fields in
21970         get_token ().
21971         * reflection.h: add rank to MonoTypeInfo.
21972
21973 2002-01-10  Dick Porter  <dick@ximian.com>
21974
21975         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21976         internal calls
21977
21978 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21979
21980         * icall.c: initialize class in type_from_handle ().
21981         Loop also in parent classes for get_method ().
21982         * reflection.c: properly encode class and valuetype types.
21983         Start on encoding TypeBuilder types. Handle fieldrefs.
21984         Use correct length when registering a user string.
21985         Handle ConstructorBuilder and MonoMethod in get_token ().
21986         Make mono_type_get_object () aware of cached types.
21987         * object.c: back out change to mono_string_new ().
21988
21989 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21990         * object.c: mono_string_new should return a NULL when the string 
21991         passed in is NULL -- not try to deference it.
21992         
21993 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21994
21995         * icall.c: hack to make IsSubType work for TypeBuilders.
21996         * reflection.c: emit constructors before methods.
21997         Retrieve param names in mono_param_get_objects().
21998
21999 2002/01/05  Nick Drochak  <ndrochak@gol.com>
22000
22001         * Makefile.am: fix list of headers and sources so automake 1.5
22002         doesn't complain. Removed \# at end of list.
22003
22004 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22005
22006         * reflection.c: get token for a method ref. Set return type of
22007         constructor to void.
22008         * loader.c: debug message.
22009         * class.c: typo fix.
22010
22011 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
22012
22013         * icall.c: fix array init with rank > 1. FindMembers
22014         loops in parent class as well.
22015         * image.c: do not insert nested types in name cache.
22016         * reflection.c: warning fix.
22017         * reflection.h: add override method (for interface impl).
22018
22019 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
22020
22021         * metadata.c: fix customattr decoding.
22022
22023 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
22024
22025         * rawbuffer.cs: Added native Win32 implementation, avoids using
22026         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
22027
22028 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
22029
22030         * class.c: make the low-level routines handle the cache.
22031
22032 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
22033
22034         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
22035
22036 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
22037
22038         * class.c: fix mono_array_element_size() for objects.
22039         * class.h, class.c: add properties to MonoClass and load them
22040         at init time.
22041         * icall.c: check with isinst() when assigning a value to an array
22042         instead of requiring the classes to match exactly.
22043         Implemented icall for System.Type::GetType().
22044         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
22045         enums. Handle bindingflags when looking for methods and fields.
22046         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
22047         and mono_metadata_methods_from_property().
22048         * reflection.h, reflection.c: added structures for propreties,
22049         parameters and enums. Implemented mono_property_get_object() and
22050         mono_param_get_objects().
22051
22052 2001-12-18  Dick Porter  <dick@ximian.com>
22053
22054         * file-io.c: Use mono_string_to_utf16() instead of
22055         mono_string_chars()
22056
22057         * object.c: Added mono_string_to_utf16(), which copies the non
22058         NULL-terminated MonoString into a new double-null-terminated
22059         buffer.
22060
22061 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
22062
22063         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
22064
22065 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
22066
22067         * file-io.c: raise exceptions if handle is invalid.
22068
22069 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
22070
22071         * assembly.c: yet another check for mscorlib.
22072         * class.c, class.h: load nesting info for classes.
22073         * icall.c: many new functions to support the Reflection classes.
22074         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
22075         * reflection.h, reflection.c: mono_image_create_token(),
22076         mono_assembly_get_object(), mono_type_get_object(),
22077         mono_method_get_object(), mono_field_get_object(): methods to return
22078         objects that parallel the C representation of assemblies, types,
22079         methods, fields.
22080
22081 2001-12-11  Dick Porter  <dick@ximian.com>
22082
22083         * icall.c:
22084         * file-io.c: Internal calls for file IO.
22085
22086 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
22087
22088         * tabledefs.h: missing FileAttributes.
22089         * verify.h, verify.c: use is_valid_string () to simplify and check for
22090         valid strings more correctly. Fix warnings and speeling.
22091         Check more tables: Filed, File, ModuleRef, StandAloneSig.
22092         Check code: branches, maxstack, method calls.
22093
22094 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
22095
22096         * object.c (mono_object_allocate): removed static, so that the jit
22097         can allocate value types.
22098
22099         * icall.c (ves_icall_System_DateTime_GetNow): impl.
22100
22101 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22102
22103         * class.c: init enum types right away and register the
22104         token->MonoClass map in mono_class_create_from_typedef ().
22105         * verify.h, verify.c: first cut of the verifier.
22106         * pedump.c: add --verify switch to verify metadata tables.
22107         * tabledefs.h: add some missing enums.
22108
22109 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22110
22111         * class.c (mono_install_runtime_class_init): impl.
22112         (mono_class_init): renamed mono_class_metadata_init to
22113         mono_class_init, also removed the metadata_inited flag
22114
22115         * object.c (mono_object_isinst): use faster algorithm
22116
22117 2001-11-30  Radek Doulik  <rodo@ximian.com>
22118
22119         * mono-endian.h: reverted last change
22120         added function prototypes
22121
22122         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22123         add mono-endian.c back
22124
22125         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22126         for unaligned access, I've mistaked it with endianess. I am
22127         sorry.
22128         (mono_read16): fix reverted endianess
22129         (mono_read64): ditto
22130         (mono_read32): ditto
22131
22132 2001-11-30  Dick Porter  <dick@ximian.com>
22133
22134         * exception.c: Implement mono_exception_from_name()
22135
22136 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22137
22138         * metadata.h, metadata.c: remove params_size and locals_size and their
22139         calculation from the metadata code: they are only usefult to the
22140         interp.
22141
22142 2001-11-29  Radek Doulik  <rodo@ximian.com>
22143
22144         * object.c (mono_ldstr): swap bytes here, it's probably not the
22145         best place, but works for me now, I'll redo it once I know mono
22146         better, also note that I add PROT_WRITE and don't reset back, also
22147         note that it's only affects big endians, so x86 should be OK
22148
22149         * mono-endian.h (read16): use just glib macros for both endians
22150
22151         * mono-endian.c: removed as glib macros are used in in
22152         mono-endian.h so we don't need to care about endianess for read
22153         macros as glib does that for us already
22154
22155 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22156
22157         * class.h, class.h: take minimum alignment into consideration so
22158         that the fields of a class remain aligned also when in an array.
22159
22160 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22161
22162         * loader.h, loader.c: add mono_method_get_param_names().
22163         * class.c: 0-init class fields.
22164
22165 2001-11-26  Dick Porter  <dick@ximian.com>
22166
22167         * icall.c:
22168         * threads-types.h:
22169         * threads.c: New file that handles System.Threading on all platforms
22170
22171         * object.c: 
22172         * object.h: Remove the synchronisation struct from MonoObject,
22173         replace it with a pointer that gets initialised on demand
22174
22175         * Makefile.am: Replace all the system-specific threading code with
22176         a single file that uses the new wrapper library
22177
22178 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22179
22180         * class.c, class.h: add mono_install_trampoline() so that the runtime
22181         can register a function to create a trampoline: removes the ugly
22182         requirement that a runtime needed to export arch_create_jit_trampoline.
22183         * object.h, object.c: added mono_install_handler() so that the runtime
22184         can install an handler for exceptions generated in C code (with
22185         mono_raise_exception()). Added C struct for System.Delegate.
22186         * pedump.c: removed arch_create_jit_trampoline.
22187         * reflection.c: some cleanups to allow registering user strings and
22188         later getting a token for methodrefs and fieldrefs before the assembly
22189         is built.
22190         * row-indexes.h: updates and fixes from the new ECMA specs.
22191
22192 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22193
22194         * class.h, class.c: add enum_basetype field to MonoClass.
22195         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22196         to get index in the constant table reated to a field, param or
22197         property.
22198         * reflection.h, reflection.c: handle constructors. Set public-key and
22199         version number of the built assembly to 0.
22200         * row-indexes.h: update from new ECMA spec.
22201
22202 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22203
22204         * class.h, class.c: add a max_interface_id to MonoClass.
22205         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22206         since it's used to do that. Added mono_type_type_from_obj().
22207         Make GetType() return NULL instead of segfaulting if the type was not
22208         found. Handle simple arrays in assQualifiedName.
22209         * object.h: add a struct to represent an Exception.
22210         * reflection.c: output call convention in method signature.
22211         Add code to support P/Invoke methods and fixed offsets for fields.
22212
22213 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22214
22215         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22216         the value.
22217         * icall.c: use mono_array_addr instead of array->vector: fixes the
22218         reflection image writing.
22219         * reflection.c: init call convention byte to 0 in method signature.
22220         Encode the property signature. Don't output property-related methods
22221         twice. Really process the properties for a type (don't cast a field to
22222         a property, my mom always told me that).
22223         Fix 64 bit issues in pointer alignment in a different and more
22224         readable way.
22225
22226 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22227
22228         * loader.h: Removed type class from MonoDefaults, added monotype
22229
22230         * loader.c: Loaded MonoType, removed loading of Type
22231
22232         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22233         and fills in System.Type._impl with a RuntimeTypeHandle rather
22234         than the actual MonoClass *
22235
22236         (ves_icall_type_from_handle): change from type_class to
22237         monotype_class
22238
22239         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22240         implemented
22241
22242         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22243         implemented
22244
22245         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22246
22247         (ves_icall_System_Reflection_Assembly_GetType): implemented
22248
22249         (ves_icall_System_MonoType_assQualifiedName): implemented
22250
22251         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22252
22253 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22254
22255         * assembly.c (mono_assembly_open): Implement a cache for the
22256         assemblies. 
22257
22258         (mono_assembly_close): only destroy the assembly when the last
22259         reference is gone.
22260         
22261 2001-11-09  Dick Porter  <dick@ximian.com>
22262
22263         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22264
22265 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22266
22267         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22268
22269 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22270
22271         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22272         from Martin Weindel.
22273         * object.h: add mono_string_chars ().
22274
22275 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22276
22277         * reflection.c (build_compressed_metadata): Eliminates warnings
22278         and uses 64-bit clean code.
22279
22280         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22281         (mono_type_equal): Change signature to eliminate warnings.
22282
22283 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22284
22285         * icall.c, loader.c: remove the internalcall array constructors.
22286         Changes to match the new MonoArray structure.
22287         * object.h, object.c: an array object doesn't allocate an extra
22288         vector. Add mono_array_new_full () to create jagged arrays easily.
22289
22290 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22291
22292         * metadata.h, metadata.c: add mono_metadata_field_info () to
22293         retreive all the info about a field from vairous tables.
22294         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22295         * class.h, class.c: augment MonoClassField with more info.
22296         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22297         policy and load a field's RVA if needed.
22298
22299 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22300
22301         * class.c (mono_class_metadata_init): create a trampoline for all
22302         virtual functions instead of actually compiling them.
22303
22304 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22305
22306         * class.h, class.c: include name in MonoClassField.
22307         * class.c: fix fundamental type of System.Object and System.String.
22308         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22309         tokens in ldtoken.
22310         * icall.c: remove internalcalls for the Reflection stuff that is now
22311         done in C# code.
22312         * loader.c: mono_field_from_memberref () implementation.
22313         * mono-endian.c: thinko (s/struct/union/g).
22314         * object.c, object.h: make the mono_string_* prototypes actually use
22315         MonoString instead of MonoObject.
22316         * reflection.c, reflection.h: updates for changes in the reflection
22317         code in corlib: we use C structures that map to the actual C# classes.
22318         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22319         fat method header if needed and use the info from the ILGenerator for
22320         methods. Handle fields in types. Misc fixes.
22321
22322 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22323
22324         * class.c (mono_class_metadata_init): bug fix: always allocate
22325         space for static class data
22326
22327 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22328
22329         * class.c (mono_compute_relative_numbering): use relative
22330         numbering to support fast runtime type checks.
22331
22332 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22333
22334         * class.c (mono_class_create_from_typeref): added debugging output
22335         to print class name when MonoDummy is returned instead of real class
22336
22337 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22338
22339         * class.c (mono_class_metadata_init): interface offset table now
22340         contains pointers into the vtable - this is more efficient for the jit
22341
22342 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22343
22344         * class.c (mono_class_metadata_init): use a temporary vtable (the
22345         old algorithm only worked for the interpreter, but not for the jit)
22346
22347 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22348
22349         * loader.c (method_from_memberref): use mono_class_get to get the
22350         class of an array instead of using System.Array directly.
22351         (mono_get_method): also add MEMBERREF methods to the method cache
22352         which usefull for arrays.
22353
22354 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22355
22356         * pedump.c (arch_compile_method): added to compute vtable entry
22357
22358         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22359         number of interfaces.
22360         
22361         * class.h: merged MonoArrayClass into MonoClass
22362
22363         * class.c (mono_class_create_from_typedef): compute the vtable size and
22364         allocate space to include the vtable inside MonoClass
22365         (mono_class_metadata_init): initialize the vtable
22366
22367 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22368
22369         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22370         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22371         * image.c: endian fixes by Laurent Rioux.
22372         * object.h, object.c: rename MonoStringObject to MonoString and
22373         MonoArrayObject to MonoArray. Change some function names to conform to
22374         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22375         guint16* as first argument, so don't use char*.
22376         Provide macros to do the interesting things on arrays in a portable way.
22377         * threads-pthread.c: updates for the API changes and #include <sched.h>
22378         (required for sched_yield()).
22379         * icall.c: updates for the API changes above.
22380         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22381         platforms that need them.
22382
22383 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22384
22385         * class.c: set the correct type for all the fundamental
22386         type when loading the class.
22387
22388 2001-10-05  Dick Porter  <dick@ximian.com>
22389
22390         * threads-pthread.c (pthread_mutex_timedlock): Simple
22391         compatibility version for C libraries that lack this call.
22392
22393 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22394
22395         * class.c: MonoTypes stored in MonoClass are stored as
22396         fundamental MonoTypes when the class represents a
22397         fundamental type (System.Int32, ...).
22398         The TypeHandle return by ldtoken is a MonoType*.
22399         * icall.c: ves_icall_get_data_chunk () write out all the
22400         PE/COFF stuff. Implement ves_icall_define_method (),
22401         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22402         * image.c: properly skip unknown streams.
22403         * loader.h, loader.c: add type_class to mono_defaults.
22404         * metadata.c, metadata.h: export compute_size () as
22405         mono_metadata_compute_size () with a better interface.
22406         Typo and C&P fixes.
22407         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22408         * reflection.c, reflection.h: many cleanups, fixes, output method
22409         signatures and headers, typedef and typeref info, compress the metadata
22410         tables, output all the heap streams, cli header etc.
22411         * row-indexes.h: typo fixes.
22412
22413 2001-10-04  Dick Porter  <dick@ximian.com>
22414
22415         * object.h: Add a synchronisation mutex struct to MonoObject
22416
22417         * object.c (mono_new_object): Initialise the object
22418         synchronisation mutexes
22419
22420         * icall.c: System.Threading.Monitor internal calls
22421         
22422         * threads-pthread.h:
22423         * threads-pthread.c: System.Threading.Monitor internal calls
22424
22425         * threads-types.h: New file, includes the system-specific thread
22426         structures
22427         
22428         * threads-pthread-types.h:
22429         * threads-pthread-types.c: New files, handle pthread-specific
22430         synchronisation types
22431
22432         * threads-dummy-types.h: 
22433         * threads-dummy-types.c: New files of dummy support for
22434         thread-specific types
22435
22436         * metadata.c:
22437         * image.c:
22438         * pedump.c: include mono-endian.h not endian.h
22439         
22440         * Makefile.am: More threads files.
22441         Name mono-endian.h not endian.h
22442
22443 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22444
22445         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22446         stuff and implement a few more bits.
22447         * icall.c: a field needs to be dereferenced twice. Do not use the same
22448         name for two variables in the same scope.
22449         * image.c, image.h: cleanups.
22450
22451 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22452
22453         * class.c (mono_class_metadata_init): bug fix: compute the right size
22454
22455 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22456
22457         * icall.c: implemented some of the Reflection internalcalls.
22458         * image.c, image.h: start writing out the PE/COFF image.
22459         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22460         that does the reverse than decode_blob_size ().
22461         * object.c: use mono_metadata_encode_value (). Move here
22462         temporary implementation of mono_string_to_utf8 ().
22463         * rawbuffer.c: make malloc_map static.
22464
22465 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22466
22467         * metadata.c: fix type comparison for arrays.
22468         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22469         Added a couple of new classes to monodefaults.
22470         * icall.c: added a couple of Reflection-related internalcalls.
22471         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22472         Added a byval_arg MonoType to MonoClass.
22473
22474 2001-09-28  Dick Porter  <dick@ximian.com>
22475
22476         * icall.c:
22477         * threads-pthread.h: 
22478         * threads-pthread.c: Implemented internal calls for
22479         LocalDataStoreSlot operations.  Applied mutexes around all shared
22480         data.  Reworked the thread creation and Start() operations to
22481         avoid a race condition.
22482         
22483         * threads-dummy.h:
22484         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22485
22486 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22487
22488         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22489
22490 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22491
22492         * class.c, loader.c: warn and return NULL instead of erroring out.
22493         * icall.c: added System.AppDomain::getCurDomain().
22494         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22495
22496 2001-09-25  Dick Porter  <dick@ximian.com>
22497
22498         * threads-pthread.h:
22499         * threads-pthread.c: Implemented timed thread joining and added
22500         System.Threading.Thread::Join_internal internal call
22501
22502         * icall.c: Added System.Threading.Thread::Join_internal internal call
22503
22504         * threads-dummy.h:
22505         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22506
22507 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22508
22509         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22510         mono_string_intern () to implement the semantics of the ldstr opcode
22511         and the interning of System.Strings.
22512         * icall.c: provide hooks to make String::IsIntern and String::Intern
22513         internalcalls.
22514
22515 2001-09-23  Dick Porter  <dick@ximian.com>
22516
22517         * threads-dummy.c: 
22518         * threads-dummy.h: New files of dummy threading routines
22519
22520         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22521         support code based on system specifics
22522
22523         Rename PTHREAD_LIBS to THREAD_LIBS
22524         
22525 2001-09-23  Dick Porter  <dick@ximian.com>
22526
22527         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22528         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22529         internal calls.
22530         (mono_thread_init): Set up a Thread object instance to return when
22531         the main thread calls Thread.CurrentThread
22532         (mono_thread_cleanup): Wait for all subthreads to exit
22533
22534         * icall.c: New internal calls for System.Threading.Thread::Sleep
22535         (including Schedule) and CurrentThread
22536
22537         * threads.h: New file, to insulate thread-specific stuff from the
22538         rest of the code
22539
22540 2001-09-21  Dick Porter  <dick@ximian.com>
22541
22542         * threads-pthread.h: 
22543         * threads-pthread.c: New file, for handling pthreads-style
22544         threading support.  Start() now starts a new thread and executes
22545         the ThreadStart delegate instance.
22546
22547         * icall.c: Added the internalcall for
22548         System.Threading.Thread::Start_internal
22549
22550         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22551
22552 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22553
22554         * loader.c: work around the different signatures for delegates
22555         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22556
22557 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22558
22559         * class.h, class.c: add mono_class_get_field_from_name ().
22560         * *: Fix C comments and other ANSI C issues.
22561
22562 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22563
22564         * endian.h, assembly.c: fix some endianness issues.
22565
22566 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22567
22568         * loader.h, load.c: add delegate_class to mono_defaults.
22569         Handle runtime provided methods in mono_get_method ().
22570
22571 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22572
22573         * loader.c (mono_get_method): use pinvoke for internal call
22574
22575         * icall.c: use pinvoke for internal call
22576
22577         * loader.c (method_from_memberref): set the method name
22578
22579 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22580
22581         * metadata.c: help the compiler generate better code for
22582         mono_class_from_mono_type ().
22583
22584 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22585
22586         * class.c (mono_class_metadata_init): delayed computing of the
22587         class size to mono_class_metadata_init ()
22588
22589 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22590
22591         * class.c, class.h: add an interfaces member to MonoClass.
22592         * image.c, image.h: add assembly_name field to MonoImage
22593         from the assembly table.
22594         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22595
22596 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22597
22598         * class.c: Handle Array in mono_class_from_mono_type ().
22599         * metadata.c, pedump.c: some endian fixes.
22600
22601 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22602
22603         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22604         * metadata.c: fix small problem introduced with the latest commit.
22605
22606 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22607
22608         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22609         We don't need a MonoMetadata pointer anymore to compare signatures in
22610         mono_metadata_signature_equal (), update callers.
22611         Reduced memory usage an number of allocations for MonoMethodHeader and
22612         MonoMethodSignature.
22613
22614 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22615
22616         * metadata.c: added compare for szarray.
22617
22618 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22619
22620         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22621         and add a couple more types to it and mono_defaults. Give an hint on
22622         classes that need implementing in our corlib and are referenced
22623         in mscorlib.
22624
22625 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22626
22627         * class.h, class.c: keep track if a class is also an Enum.
22628         * loader.c: Implement a couple more types for use in libffi
22629         marshalling. Gives better diagnostics when failing to dlopen
22630         a library. Set method->klass for P/Invoke methods, too.
22631
22632 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22633
22634         * class.c, class.h: add a MonoType this_arg to MonoClass that
22635         represents a pointer to an object of the class' type that
22636         can be used by the interpreter and later the type cache.
22637         Add best guess alignment info for valuetype objects.
22638
22639 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22640
22641         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22642         into MonoType: one less level of indirection and allocation and
22643         simplifies quite a bit of code. Added cache for MonoTypes that are
22644         used frequently, so that we don't need to allocate them all the time.
22645
22646 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22647
22648         * class.c (mono_class_create_from_typedef): System.Enum is also a
22649         value type, although it does not derive from System.ValueType
22650         (maybe a bug in the ms compiler?)
22651
22652         * metadata.c (mono_type_size): return the right size for value types
22653
22654         * loader.c (mono_get_method): only initialize method header if not abstract
22655
22656         * class.c (mono_class_from_mono_type): use mono_default values. 
22657
22658 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22659
22660         * *: use MonoClass pointers instead of <type_tokens>
22661         
22662         * class.h: new flag: metadata_inited.
22663
22664         * class.c (mono_class_metadata_init): impl.
22665         (mono_class_instance_size): impl.
22666         (mono_class_data_size): impl.
22667
22668 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22669
22670         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22671         MonoClass now has the name and name_space fields. 
22672         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22673         mono_get_method () takes and optional MonoClass as argument.
22674         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22675         instead that takes advantage of a map from class names to typedef
22676         tokens in MonoImage.
22677
22678 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22679
22680         * metadata.c: zero is not a valid alignment boundary.
22681         Merge MONO_TYPE_VOID in default decoding code.
22682
22683 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22684
22685         * image.h: merged MonoMetadata into MonoImage
22686
22687         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22688         identify the type of elements.
22689
22690 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22691
22692         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22693         * cil-coff.h: split MonoMSDOSHeader and add size info.
22694         * image.c: add some consistency checks.
22695         * metadata.c: fix row size computation: one programmer
22696         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22697         add explanation for the locator routine.
22698         Fix decoding of size in method header.
22699         
22700 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22701
22702         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22703         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22704         function from gnome-libs.  This uses the right path separator
22705         based on the OS, and also works around a bug in some systems where
22706         a double slash is not allowed. 
22707         (default_assembly_name_resolver): Use g_concat_dir_and_file
22708         (mono_assembly_open): ditto.
22709
22710 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22711
22712         * metadata.c (mono_metadata_signature_equal): impl.
22713
22714         * *: void is now a realy MonoType (instead of using NULL)
22715         
22716         * metadata.c (do_mono_metadata_parse_type): use
22717         mono_metadata_parse_type to parse void value.
22718
22719 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22720
22721         * metadata.c, metadata.h: in the signature and method header store
22722         only the space required for holding the loca vars and incoming arguments.
22723
22724 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22725
22726         * metadata.c (do_mono_metadata_parse_type): treat void like any
22727         other type (instead of assigning NULL);
22728
22729 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22730
22731         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22732
22733 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22734
22735         * image.c (do_mono_image_open): added a cache for arrays.
22736
22737 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22738
22739         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22740         decode a single column from a row in a metadata table and changes
22741         to take advantage of it in the typedef locator (gives a nice speed up).
22742         Store offset info for function params.
22743
22744 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22745
22746         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22747
22748 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22749
22750         * assembly.c: how could mono_assembly_close () had ever worked?
22751         * metadata.c, metadata.h: provide offset info for local vars.
22752         Implement mono_type_size () to take care of alignment as well
22753         as size (it was mono_field_type_size in cli/class.c before).
22754
22755 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22756
22757         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22758
22759         * assembly.h (CORLIB_NAME): set to corlib.dll
22760
22761         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22762
22763 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22764
22765         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22766         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22767         tokentype.h: massive namespace cleanup.
22768
22769 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22770
22771         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22772
22773 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22774
22775         * metadata.c (mono_metadata_free_type): added check for type !=
22776         NULL (void) before calling mono_metadata_free_type()
22777
22778 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22779
22780         * metadata.h, row_indexes.h: added header with enumerations to use
22781         to index in the columns from tables in metadata and to decode coded
22782         tokens: we should start using this instead of embedding magic numbers
22783         all over the code.
22784
22785 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22786
22787         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22788         Move metadata_t info from cli_image_info_t to MonoImage, where
22789         it's easily accessible. Changed all the uses accordingly.
22790         Added the method and class caches to MonoImage.
22791         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22792         and mono_metadata_decode_value () signature to be more consistent
22793         with the other parse functions (and simplify code). Taken advantage
22794         of zero-length array allocation with GCC. Removed reduntant (and
22795         wrong) MonoFieldType struct and use MonoParam instead. Changed
22796         mono_metadata_parse_field_type () to use common code for parsing.
22797         Added mono_metadata_typedef_from_field () and
22798         mono_metadata_typedef_from_method () to lookup a typedef index from a
22799         field or method token.
22800         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22801
22802 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22803
22804         * metadata.c (mono_metadata_parse_field_type): Implement. 
22805         (do_mono_metadata_parse_type): Split engine from
22806         mono_metadata_parse_type, so that we can create smaller structures
22807         for things that just have one pointer to the MonoType (look at
22808         the MonoFieldType)
22809
22810 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22811
22812         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22813         as Jan Gray found out, it is incorrect. 
22814
22815 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22816
22817         * assembly.c: Implement asssembly loading.  This loads an image
22818         and loads all the referenced assemblies.  Come to think of it, we
22819         could always do lazy loading of the assemblies. 
22820
22821         * image.c (mono_image_open): Keep loaded images in a hashtable.
22822
22823         * image.h (MonoImage): Add reference count.
22824
22825 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
22826
22827         * assembly.c (mono_assembly_open): Keep track of the file name in
22828         case the assembly has no ASSEMBLY table.
22829
22830         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
22831         from get.c here.
22832
22833 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22834
22835         * metadata.c, metadata.h: decode local vars in method header
22836         parse function. Change callers accordingly.
22837
22838 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22839
22840         * metadata.h, cil-coff.h: protect against multiple inclusion.
22841         Added some new structures to hold information decoded from metadata:
22842         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22843         and relevant decoding/free functions.
22844         * metadata.c: implement decoding functions. Add warning for out of bounds
22845         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22846         all the info about a method signature and invocation. Remove check on
22847         uninitialized local var in parse_mh() and fix memory leak.
22848
22849 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22850
22851         * metadata.h: More macros.
22852
22853         * tokentype.h: New file.
22854
22855 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22856
22857         * assembly.c: added a consistency check and initialize
22858         some structures with g_new0().
22859         * metadata.c: fixed a couple more bugs in table size computation
22860         and add other checks for out-of bound access to metadata.
22861
22862 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22863
22864         * metatada.c: fix bugs computing table sizes. Spew a
22865         warning when index in string heap is out of bounds.
22866
22867 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22868
22869         * metadata.h: Add a couple of macros to manipulate tokens. 
22870
22871 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22872
22873         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22874         cli_section_tables).
22875
22876 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22877
22878         * metadata.c (mono_metadata_user_string): New function, provides
22879         access to the UserString heap. 
22880
22881 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22882
22883         * metadata.c: Add inline documentation.
22884
22885 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22886
22887         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22888         files. 
22889
22890 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22891
22892         * typeattr.h: New file, TypeAttribute flags. 
22893
22894 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22895
22896         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22897         mono_assembly_ensure_section): Section loading code.
22898         (load_section_tables): Load the sections.
22899
22900         * mono/metadata/metadata.c (mono_metadata_locate_token,
22901         mono_metadata_locate): Functions to locate the information
22902         definition given a token or a table and an index.
22903         (mono_metadata_compute_table_bases): New.
22904         (compute_size): New function to compute the sizes of the various
22905         tables.
22906
22907         * mono/metadata/metadata.h: Finish listing the different index
22908         types. 
22909
22910         * mono/metadata/pedump.c: Improve to dump new information.
22911
22912 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22913
22914         * mono/metadata/metadata.c: Entered all the tables matching
22915         Beta2. 
22916
22917         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22918
22919
22920