2007-10-04 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * icall-def.h, icall.c : get_bundled_machine_config() is now the
4           common function used by both DefaultConfig in System.dll and
5           InternalConfigurationHost in System.Configuration.dll.
6
7 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
8
9         * class.c: automatically add to vectors only a few essential explicit
10         generic interfaces. The rest of the interfaces that arrays should
11         provide are currently implicitly added (but still not lazily, see the
12         design in the discussion of bug#325495 for the details of what is
13         needed for that). Additionally, implicit interfaces are assigned the
14         same vtable slot as the explicit interfaces (as they are compatible):
15         this enables huge memory savings since we don't need to instantiate
16         as many memthods and as large vtables anymore. Also, Since
17         GetEnumerator<T> returns an instance of a type that is required to
18         support a similarly large set of interfaces as arrays, we add
19         implicit interfaces and interface offset sharing support to those
20         types, too. This change adds all the required interfaces so that
21         the anonarray.cs test case in the bug report works (we don't add
22         all the interfaces to arrays of arrays 3-level deep and more because
23         of the memory requirements explained in the bug and since they are much
24         less common: the lazy-loading support will enabled them to work, too).
25
26 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
27
28         * verify.c (merge_stacks): major clean up, all type compatibility
29         checks are done by verify_type_compatibility. This fix my earlier lack
30         of understanding of the CLR type system and merge_stacks no longer looks
31         scary.
32
33         * verify.c: fixed some bad spelling.
34
35 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
36
37         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
38         a given stack slock.
39         
40         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
41         verify_type_compatibility_full. This removed a near indentical function and fixed
42         handling of Int32 and IntPtr across all opcodes.
43
44 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
45
46         * class.c: only vectors have the additional generic interfaces.
47
48 2007-10-01  Jonathan Chambers <joncham@gmail.com>
49
50         * mono-config.c: Use g_strcasecmp instead of
51         strcasecmp like everywhere else to fix
52         compilation with MSVC.
53         
54         Code is contributed under MIT/X11 license.
55
56 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
57
58         * object.c, object-internals.h: refactored the IMT code to enable
59         building a single slot at a time and lazily creating the IMT trampolines
60         and thunks.
61
62 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
63
64         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
65
66         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
67         Fixes #328501.
68         
69 2007-09-29  Raja R Harinath  <harinath@gmail.com>
70
71         * loader.c (method_from_methodspec): Rearrange to avoid
72         un-necessary exposition.  Don't assert out if the method's
73         declaring type is a generic type definition.
74
75 2007-09-28  Martin Baulig  <martin@ximian.com>
76
77         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
78
79 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
80
81         * class-internals.h: optimize field layout of MonoClass to
82         requires less cachelines at runtime and save a few bytes on 64 bit
83         systems.
84
85 2007-09-28  Jb Evain  <jbevain@novell.com>
86
87         * reflection.c: when encoding type names in custom attributes,
88         if the type is a closed generic type, its generic arguments
89         have to be serialized as AssemblyQualifiedName, so that when
90         they are deserialized, it's possible to re-create them properly.
91         Fixes #329450.
92
93
94 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
95
96         * object.c, class-internals.h: added delegate-creation counter.
97
98 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
99
100         * class.c: cleanup of the code that synthetizes interfaces for
101         arrays in 2.0: saves quit a bit of corlib mempool memory.
102         Code to fix bug #325495 ifdeffed out for now until the issues
103         with memory usage and O(n^2) behaviour are fixed.
104
105 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
106
107         * marshal.c: when possible, do not duplicate the name of the methods
108         in the method builder and in the generated MonoMethod.
109
110 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
111         * verify.c: added support for type checking ldind_* opcodes.
112
113 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
114
115         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
116         which is used to distinguish the fully open instantiation of a TypeBuilder
117         with the rest. This temporary hack is required to restore the property that
118         the fully open instantiation is the same type of the generic type definition.
119
120         * class-internals.h (mono_generic_class_is_generic_type_definition):
121         new function as part of the internal API.
122
123         * class.c (inflate_generic_type): return NULL when the generic inst is
124         fully open. The fully open generic type is now the same as the generic type
125         definition for non TypeBuilder types.
126
127         * class.c (mono_generic_class_get_class): removed assert since it is
128         no longer valid, gklass->cached_class can point to the generic type definition.
129
130         * class.c (mono_generic_class_is_generic_type_definition): new.
131
132         * metadata.c (mono_generic_class_hash): added is_tb_open field
133         to the hash calculation.
134
135         * metadata.c (free_generic_class): if the generic class is associated
136         with the generic type definition, its field will come from the mempool and
137         must not be freed.
138
139         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
140         new, this function identifies the corner case of a TypeBuilder fully open
141         instantiation.
142
143         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
144         for lookup. Set gclass->cached_class to be the container class in case of
145         the fully open instantiation of non TypeBuilder types.
146
147         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
148         to compare generic classes.
149
150         * reflection.c (method_encode_methodspec): remove assert that
151         no longer is valid.
152
153         * reflection.c (mono_reflection_generic_class_initialize): add
154         an aditional assert to ensure the proper type is used.
155
156 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
157
158         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
159         to enjoy it.
160
161 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
162
163         * verify.c (push_arg): Fixed support for ldarga
164         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
165         MonoType used as first arg in case of instance calls.
166
167 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
168
169         * verify.c: Support for verifying VAR and MVAR types, 
170
171 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
172
173         * icall.c (ves_icall_get_property_info): Set the reflected type of the
174         accessors correctly.
175
176 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
177
178         * threads.c: support OSX and other systems in
179         mono_thread_get_stack_bounds (bug #328026).
180
181 2007-09-25  Martin Baulig  <martin@ximian.com>
182
183         * mono-debug.h
184         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
185
186 2007-09-24  Martin Baulig  <martin@ximian.com>
187
188         * mono-debug.h
189         (MonoDebugClassEntry): Moved the definition of this struct into
190         mono-debug.c to make it private.
191
192         * mono-debug.c
193         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
194         type table per symbol file, we don't need to store the symfile id
195         any longer.
196
197 2007-09-24  Martin Baulig  <martin@ximian.com>
198
199         Create one type table per symbol file, since a `MonoClass *' gets
200         invalid when its image is unloaded.
201
202         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
203         (MonoDebugHandle): Added `type_table'.
204
205 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
206
207         * mempool.c, mempool.h: added mono_mempool_new_size () API
208         to be able to specify a smaller initial size for the pool.
209         Adjusted the code to slowly increase pool size before using
210         the previous default size.
211         * image.c: use a small initial size for image mempools.
212
213 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
214
215         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
216         Fixes ##320990.
217
218         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
219         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
220
221 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
222
223         * metadata.c (mono_type_create_from_typespec): Remove an invalid
224         free. Fixes #327438.
225
226 2007-09-21  Raja R Harinath  <harinath@gmail.com>
227
228         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
229         generic instantiations, etc.
230         <MONO_TYPE_ARRAY>: Likewise.
231
232 2007-09-21  Martin Baulig  <martin@ximian.com>
233
234         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
235         these structs were never defined.
236         (MonoDebugHandle): Removed the `_priv' field, it was never used.
237
238 2007-09-21  Martin Baulig  <martin@ximian.com>
239
240         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
241
242 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
243
244         * image.c: removed the guid hash tables: we can get the same info
245         without the additional memory usage hit (partially fixes also bug #327052).
246
247 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
248
249         * profiler.h, profiler-private.h, profiler.c: add a new profiler
250         event to handle unloading methods. After the event is called, the
251         corresponding MonoMethod* must be considered invalid.
252         * loader.c (mono_free_method): call the new mono_profiler_method_free
253         event.
254
255 2007-09-20  Mark Probst  <mark.probst@gmail.com>
256
257         * domain-internals.h: New flag in MonoJitInfo which marks shared
258         generic methods.  New hash table (shared_generics_hash) in
259         MonoDomain to keep track of shared generic methods.  Prototypes
260         for functions to register and lookup shared generic methods.
261
262         * domain.c: Support for registering and looking up shared generic
263         methods via a hash table (shared_generics_hash) in MonoDomain.
264
265         * class-internals.h: New exception to signal failure of shared
266         compilation of a generic method.  New counters for generics
267         sharing in MonoStats.
268
269 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
270
271         * image.c, metadata-internals.h: don't keep a file descriptor open
272         for loaded assemblies (bug#325988).
273
274 2007-09-19  Raja R Harinath  <rharinath@novell.com>
275
276         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
277         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
278         use the corresponding datatypes.
279         (type_in_image): Update to changes.
280         (CleanForImageUserData): Simplify.
281         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
282         Avoid quadratic behaviour in handling the "stolen" list by
283         separating the filter predicate out, and by prepending the stolen
284         items rather than appending them.
285         (steal_ginst_in_image): Likewise.
286         (mono_metadata_clean_for_image): Update to changes.
287
288 2007-09-19  Martin Baulig  <martin@ximian.com>
289
290         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
291
292 2007-09-19  Martin Baulig  <martin@ximian.com>
293
294         * mono-debug.c (mono_debug_cleanup): Don't call
295         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
296
297 2007-09-19  Raja R Harinath  <harinath@gmail.com>
298
299         Fix crash on 'make run-test' in mcs/errors
300         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
301         Avoid more potential allocations in mono_class_from_mono_type.
302         (ginst_in_image): Update to changes.
303         (gclass_in_image): Rearrange slightly.
304
305 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
306
307         * class.c (mono_class_init): Move the code that sets up class->methods to 
308         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
309
310         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
311         canonical instance of an inflated generic signature.
312         (mono_type_create_from_typespec): Remove an invalid free.
313
314         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
315
316 2007-09-18  Marek Habersack  <mhabersack@novell.com>
317
318         * domain-internals.h: added a declaration of the
319         mono_assembly_load_full_nosearch internal function.
320
321         * assembly.c (mono_assembly_load_with_partial_name): use
322         mono_try_assembly_resolve return value properly.
323         (mono_assembly_load_full_nosearch): copied the function body from
324         mono_assembly_load_full, without the code to invoke assembly
325         search hooks.
326         (mono_assembly_load_full): calls the above new function and if the
327         assembly is not resolved, invokes the search hooks.
328
329         * appdomain.c (mono_runtime_init): restore the global postload
330         assembly search handlers.
331
332 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
333
334         * class.c (mono_class_init): Make sure class->methods and class->properties
335         are never NULL in the generics case.
336
337         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
338
339 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
340
341         * metadata.c (free_generic_class): Disable some code to fix the build.
342
343         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
344
345         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
346         from the image mempool.
347
348         * metadata.c (free_generic_class): Free more data from the inflated class.
349
350         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
351
352         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
353         mempool.
354         (mono_type_create_from_typespec): Ditto.
355
356         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
357         MonoImage to the caller.
358         (mono_init_internal): Save the opened image in a global variable.
359         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
360
361         * reflection.c (resolve_object): Fix a leak.
362
363         * metadata.c: Fix the freeing of data in the generics caches.
364         
365         * metadata.c (free_generic_inst): Comment this out to fix the build.
366         (free_generic_class): Ditto.
367
368         * metadata.c: Free cached generic methods, instantinations and classes when
369         they are removed from the caches.
370         (mono_metadata_free_type): Free the type itself.
371
372         * class.c: Free the result of mono_class_inflate_generic_type () in a few
373         places.
374
375 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
376
377         * boehm-gc.c: restrict managed allocs to __thread supporting
378         architectures.
379
380 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
381
382         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
383         (mono_generic_class_get_class): Fix a leak.
384
385         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
386         mono_metadata_free_type ().
387         (mono_metadata_inflate_generic_inst): Fix a leak.
388
389 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
390
391         * mono-debug.c (free_header_data): Fix a leak missed earlier.
392
393         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
394         mempool.
395
396         * mono-debug.c (mono_debug_close_image): Fix call to 
397         g_hash_table_remove ().
398
399 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
400
401         * icall-def.h: redirect all the string ctor to the managed
402         CreateString () methods.
403         * string-icalls.c, string-icalls.h: removed dead code for string
404         ctors and icalls.
405
406 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
407
408         * mono-debug.c: Fix memory leaks.
409
410 2007-09-14  Jonathan Chambers <joncham@gmail.com>
411
412         * threads-types.h: Implement mono_hazard_pointer_set and 
413         mono_hazard_pointer_clear macros using do/while(0) to fix
414         compilation with MSVC.
415         
416         Code is contributed under MIT/X11 license.
417
418 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
419
420         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
421         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
422
423 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
424
425         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
426         icalls.
427
428 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
429
430         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
431         managed-code allocated as well.
432
433 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
434
435         * class.c (mono_class_is_assignable_from): Add support for generic variance.
436
437 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
438
439         * boehm-gc.c: fixed the build after the AOT changes.
440
441 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
442
443         * wrapper-types.h: Add an ALLOC wrapper type.
444
445         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
446         reference managed allocator methods.
447
448 2007-09-12  Marek Safar  <marek.safar@gmail.com>
449
450         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
451         of Type array and not MonoType, a fix suggested by Hari.
452         
453 2007-09-12  Jonathan Chambers <joncham@gmail.com>
454
455         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
456         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
457         
458         Code is contributed under MIT/X11 license.
459
460 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
461
462         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
463
464 2007-09-12  Marek Habersack  <mhabersack@novell.com>
465
466         * image.c (do_mono_image_open): if assembly file fails to open and
467         MONO_IOMAP is in effect, try to find the path in a
468         case-insensitive way.
469
470         * appdomain.c (mono_runtime_init): do not install postload hooks -
471         tests show that MS.NET doesn't use anything of that sort to
472         trigger the AppDomain.AssemblyResolve event.
473         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
474         made non-static.
475         (mono_runtime_init): init portability helpers here.
476
477         * assembly.c (mono_assembly_load_with_partial_name): if other   
478         attempts fail, trigger the AppDomain.AssemblyResolve event handler
479         to resolve the assembly.
480
481         * domain-internals.h: added mono_try_assembly_resolve and marked
482         it as internal.
483
484 2007-09-11  Jb Evain  <jbevain@novell.com>
485
486         * object-internals.h (MonoReflectionDynamicMethod): add
487         a `MonoReflectionType *owner` field. The owner is used
488         * reflection.c:
489         (mono_reflection_create_dynamic_method): use the owner of the dynamic
490         method as the class declaring the dynamic method.
491         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
492         dynamic method to the declaring type of the methodbuilder.
493
494 2007-09-11  Mark Probst  <mark.probst@gmail.com>
495
496         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
497         rules for calling methods via reflection.
498
499 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
500
501         * reflection.c (resolve_object): Add support for MonoGenericClass. 
502         Inflate MonoType's.
503
504 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
505
506         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
507         provide a managed method that does fast allocations without needing
508         a managed->unmanaged transition. Boehm GC implementation currently
509         enabled for ptrfree objects on sane architectures.
510
511 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
512
513         * marshal.c, marshal.h: exported a couple of useful functions and
514         added mono_mb_get_label () to easily handle backward branches.
515
516 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
517
518         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
519
520 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
521
522         * loader.c (find_method): Fixed the regression introduced while
523         fixing bug #81466.
524
525 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
526
527         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
528         well.
529         
530         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
531         icall.c reflection.c: Pass a MonoGenericContext argument to 
532         mono_lookup_dynamic_token ().
533
534         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
535         #82744.
536         
537 2007-09-09  Robert Jordan  <robertj@gmx.net>
538
539         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
540         for generic methods.
541
542         * object.c (mono_object_get_virtual_method): Handle generic methods.
543         Fixes bug #78882.
544
545         Code is contributed under MIT/X11 license.
546
547 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
548
549         * image.c: fix locking in mono_image_load_file_for_image ().
550
551 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
552
553         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
554         used only as a cache: added an icall to fill it.
555
556 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
557
558         * reflection.h: exposed mono_reflection_free_type_info
559         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
560         since mono_reflection_bind_generic_parameters makes a copy of it.
561         * reflection.c (free_type_info): subinfos should be freed.
562         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
563         made non static.
564         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
565         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
566         this fixes #82695 and #81726.
567    
568
569 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
570
571         * process.h, process.c:  added support for user profile/info in
572           ProcessStartInfo. For now only Windows works.
573
574 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
575
576         * metadata.c: consider the generic arguments when comparing
577         signatures (bug #82614).
578
579 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
580
581         * cil-coff.h, image.c: updated assembly loader to cope with the
582         PE32+ 64 bit file format.
583
584 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
585
586         * assembly.c, class.c, domain.c, loader.c: remove useless
587         inclusion of cil-coff.h.
588
589 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
590
591         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
592         if interface is marked with CoClassAttribute. 
593    
594         Code is contributed under MIT/X11 license.
595
596 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
597
598         * sgen-gc.c: ensure no object from the to space is copied again or finalized
599         if it's seen twice in major collections.
600
601 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
602
603         * sgen-gc.c: big objects are not copied to the gray area, but they
604         need to be considered for scanning, too, if they are brought alive
605         by an object ready for finalizations or a survived one.
606
607 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
608
609         * sgen-gc.c: properly account the number of disappearing links when
610         they are nullified.
611
612 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
613
614         * sgen-gc.c: share the code to scan the registered roots between the
615         different types of collections.
616
617 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
618
619         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
620
621 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
622
623         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
624         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
625
626 2007-08-28  Mark Probst  <mark.probst@gmail.com>
627
628         * security-manager.c (mono_security_manager_get_methods):
629         LinkDemandSecurityException now has 2 arguments instead of 3.
630
631 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
632
633         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
634         platforms which need it.
635
636 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
637
638         * sgen-gc.c: unregister thread data structures with a pthread_key_t
639         dtor.
640
641 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
642
643         * threads.c: free the thread static data on thread exit.
644
645 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
646
647         * class.c: walk the hierarchy to find the generic definition for
648         a class (fixes runtime part of bug #82498).
649
650 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
651
652         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
653         ...
654
655         * image.c (mono_image_close): Here. Hopefully fixes #82510.
656
657 2007-08-24  Mark Probst  <mark.probst@gmail.com>
658
659         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
660
661 2007-08-24  Robert Jordan  <robertj@gmx.net>
662
663         * appdomain.c: don't perform the ':'->';' substitution on Win32.
664
665 2007-08-24  Jb Evain  <jbevain@novell.com>
666
667         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
668         for byref types.
669
670 2007-08-24  Mark Probst  <mark.probst@gmail.com>
671
672         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
673         #82286.
674
675 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
676
677         * assembly.c: Fix a warning.
678         
679 2007-08-23  Marek Habersack  <mhabersack@novell.com>
680
681         * appdomain.c: parse the <runtime> section looking for the probing
682         element with the 'privatePath' attribute, which sets additional
683         directories in which the runtime should look for assemblies.
684
685 2007-08-23  Robert Jordan  <robertj@gmx.net>
686
687         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
688         Fixes #82499.
689
690 2007-08-23  Martin Baulig  <martin@ximian.com>
691
692         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
693         _mono_debug_init_corlib() and remove it from the header file.
694
695 2007-08-23  Martin Baulig  <martin@ximian.com>
696
697         * mono-debug-debugger.c
698         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
699         don't notify the debugger about it.
700
701         * mono-debug-debugger.h
702         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
703
704 2007-08-23  Robert Jordan  <robertj@gmx.net>
705
706         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
707         Code is contributed under MIT/X11 license.
708
709 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
710
711         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
712
713 2007-08-22  Martin Baulig  <martin@ximian.com>
714
715         * mono-debug.c: Store debugging info on a per-domain basis and
716         free it on domain unload.  Add support for unloading symbol files.
717
718         * mono-debug.h
719         (MonoDebugList): New typedef.
720         (MonoSymbolTable):
721         - add `data_tables and `type_table'.
722         - replace 'symbol_files' and `num_symbol_files' with a
723           `MonoDebugList *'.
724         (mono_debug_data_table): Removed.
725         (mono_debug_list_add): New public function.
726         (mono_debug_list_remove): New public function.
727         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
728         (mono_debug_init_2_memory): Renamed into
729         mono_debug_open_image_from_memory().
730         (mono_debug_close_image): New public function.
731         (mono_debug_domain_create): Likewise.
732         (mono_debug_domain_unload): Likewise.
733         (MONO_DEBUGGER_VERSION): Bump to 60.
734
735         * mono-debug-debugger.h
736         (MonoDebuggerEvent):
737         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
738         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
739         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
740         - rename `THREAD_CREATED' and `THREAD_EXITED' into
741           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
742         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
743           meaning.
744         (mono_debugger_add_symbol_file): Removed.
745         (mono_debugger_add_type): Removed.
746         (mono_debugger_lookup_type): Removed.
747         (mono_debugger_lookup_assembly): Removed.
748
749         * domain.c
750         (mono_domain_create): Call mono_debug_domain_create().
751         (mono_init_internal): Call mono_debug_init_corlib().
752
753         * assembly.c
754         (mono_assembly_close): Call mono_debug_close_image().
755
756 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
757
758         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
759         mmap call.
760
761 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
762
763         * sgen-gc.c: ensure section->pin_queue_end is initialized
764         correctly when non pinning objects in the section have been found.
765
766 2007-08-22  Marek Habersack  <mhabersack@novell.com>
767
768         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
769         containing a list of directories separated by ':'. MSDN docs say
770         the directories should be separated with ';'. Part of a bugfix for
771         bug #81446
772
773 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
774
775         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
776         it should MonoType and not MonoClass.
777
778 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
779
780         * culture-info-table.h : regenerated.
781
782 2007-08-20  William Holmes  <billholmes54@gmail.com>
783
784         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
785          to call ReplaceFile Kernel32 on windows or in io-layer.
786         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
787         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
788          as an internal call.
789
790         Code is contributed under MIT/X11 license.
791
792 2007-08-20  Jb Evain  <jbevain@novell.com>
793
794         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
795         and MONO_EXCEPTION_FIELD_ACCESS.
796
797         * debug-helpers.[c|h]: new mono_field_full_name function.
798
799 2007-08-20  Mark Probst  <mark.probst@gmail.com>
800
801         * class.c: Removed class_security_level() and moved it to
802         security-core-clr.c.
803
804         * security-core-clr.c, security-core-clr.h: class_security_level()
805         is now public and renamed to mono_security_core_clr_class_level().
806         It also looks for security attributes in the classes a class is
807         nested in.
808
809 2007-08-20  Mark Probst  <mark.probst@gmail.com>
810
811         * security-core-clr.c, security-core-clr.h: CoreCLR security
812         utility functions.
813
814         * Makefile.am: Added security-core-clr.[ch].
815
816         * security-manager.c, security-manager.h: Functions and enum for
817         setting and getting the security mode.
818
819         * class.c: CoreCLR security checks.
820
821 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
822
823         * icall-def.h, process.c, process.h: implemented icall to get
824         user/system processor times.
825
826 2007-08-17  Mark Probst  <mark.probst@gmail.com>
827
828         * domain.c, threads.c, class-internals.h, domain-internals.h: New
829         reader-lock-free jit_info_table.
830
831 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
832
833         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
834
835         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
836
837         * object-internals.h (MonoException): Add missing _data member.
838
839 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
840
841         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
842         checking that only methods with matching qname or fqname are picked
843         from implemented interfaces.
844
845 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
846
847         * verify.c (do_newarr):added, do type verification of
848         newarr ops, push the right value on the eval stack.
849         * verify.c (mono_method_verify): use do_newarr
850
851
852 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
853
854         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
855         factored the common code into get_boxable_mono_type, which
856         is now using mono_type_get_full, this fixed byref related tests.
857
858 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
859
860         * class.c: added mono_type_get_full, this function has the same
861         behavior of mono_class_get_full but the returned MonoType has
862         all metadata of the associated token in case of a typespec token.
863         * class.c: added mono_type_retrieve_from_typespec, used by 
864         mono_type_get_full to retrieve the token type.
865         * class.c (mono_class_create_from_typespec): changed to use
866         mono_type_retrieve_from_typespec.
867         * class.c (mono_ldtoken): changed to use mono_type_get_full
868         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
869         * class-internals.h: exported mono_type_get_full for internal use.
870
871 2007-08-16  Jb Evain  <jbevain@novell.com>
872
873         * domain.c (supported_runtimes): add entry for
874         the 'moonlight' runtime version.
875
876 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
877
878         * verify.c (mono_method_verify): small typo sliped in.  
879
880 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
881
882         * verify.c (do_unbox_value): added, do type verification of
883         unboxing ops
884         * verify.c (mono_method_verify): use do_unbox_value
885
886
887 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
888
889         * verify.c (dump_stack_value): fixed typo, was printing string
890         instead of object on stack.
891         * verify.c (do_box_value): moved the byref check up as it leads
892         to invalid code and should be done earlier.
893         * verify.c: improved error messages for and ldobj
894
895 2007-08-15  William Holmes  <billholmes54@gmail.com>
896
897         * marshal.c (emit_marshal_custom): Omit the call to 
898           marshal_native_to_managed when calling native to managed 
899           and the argument is specified as an out argument.
900
901         Code is contributed under MIT/X11 license.
902
903 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
904
905         * verify.c: fixed the type checks for generics, function pointers and vectors.
906         Added type verification for ldobj and ldtoken. The verifier
907         would segfault if header or signature of a method contained references
908         to non-existant types.
909
910 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
911
912         * marshal.c (cominterop_get_ccw): Patch from
913         Bill Holmes to no walk up interface hierarchy. 
914         All parent methods should be present in the interface for COM.
915    
916         Code is contributed under MIT/X11 license.
917
918 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
919
920         * marshal.c (emit_marshal_com_interface): Patch from
921         Bill Holmes to handle COM Interfaces as return values
922         for native->managed calls.
923    
924         Code is contributed under MIT/X11 license.
925
926 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
927
928         * marshal.c (cominterop_get_idispatch_for_object): Implement
929         for runtime callable wrappers.
930    
931         Code is contributed under MIT/X11 license.
932
933 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
934
935         * pedump.c (main): changed from mono_init to mono_init_from_assembly
936         so 2.0 types are accessible
937
938
939 2007-08-13  Miguel de Icaza  <miguel@novell.com>
940
941         * domain.c (mono_init_internal): Call mono_assembly_load_friends
942         once we load mscorlib.   Due to the order in which we initialize,
943         the mono_assembly_load_full routine that loads mscorlib did not
944         load friends.   We now load it once we load the
945         mono_defaults.internals_visible_class class. 
946
947         * assembly.c: Expose the mono_load_friend_assemblies method.
948
949 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
950
951         * verify.c: improved the handling of boxing, better
952         type checking for unary ops and conversion. Fix bug
953         regarding managed pointer compatibility checking
954
955 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
956
957         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
958
959         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
960
961 2007-08-09  Raja R Harinath  <rharinath@novell.com>
962
963         * reflection.c (dup_type): Remove.
964         * class.c (dup_type): Remove.
965         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
966         instead of the dodgy 'dup_type'.
967         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
968         handle the case where 'dup_type' needed the second argument.
969
970 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
971
972         * domain.c: Fix a warning.
973
974 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
975
976         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
977         checking that methods with the same fqname are not overridden
978         with a method from an ancestor.
979
980 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
981
982         * threads.c (free_thread_static_data_helper): Avoid a crash if
983         thread->static_data is not yet set.
984
985 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
986
987         * marshal.c: Use correct image when emitting
988         native wrapper for COM calls.
989    
990         Code is contributed under MIT/X11 license.
991
992 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
993
994         * icall-def.h, security.c, security.h :
995           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
996
997 2007-08-07  Martin Baulig  <martin@ximian.com>
998
999         * mono-debug-debugger.h
1000         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
1001
1002         * domain.c (mono_domain_free): Call
1003         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
1004
1005 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
1006
1007         * verify.c (check_underflow, check_overflow): error message now returns IL offset
1008         * verify.c (in_same_block): code should test if either offset is inside the clauses
1009         * verify.c (mono_method_verify): push the exception into the eval stack of exception
1010         and filter blocks
1011
1012 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1013
1014         * image.c (mono_image_close): Fix a leak.
1015
1016         * object.c (mono_runtime_invoke_array): Avoid using alloca.
1017
1018         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
1019
1020 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
1021
1022         * domain.c, threads.c, threads-types.h: fix memory retention issue
1023         with thread static variables not being cleared on domain unload.
1024         Reuse thread static slots after domain unload.
1025
1026 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
1027
1028         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
1029         nullable type.
1030
1031         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
1032         now done in mono_runtime_invoke_array.
1033
1034         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
1035         receiver is a nullable type.
1036
1037         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
1038         generic parameter.
1039
1040 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
1041
1042         * marshal.c: Implement COM Objects as return type for 
1043         managed->unmanaged calls. Added Release calls for COM Object
1044         out/return values in managed->unmanaged calls.
1045
1046         Code is contributed under MIT/X11 license.
1047
1048 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
1049
1050         * threads.h, threads-type.h: move the hazard pointer declarations
1051         to the private header.
1052
1053 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
1054
1055         * file-io.c, appdomain.c: memory leak fixes.
1056
1057 2007-08-02  Dick Porter  <dick@ximian.com>
1058
1059         * socket-io.c
1060         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
1061         SO_REUSEADDR setting into io-layer/sockets.c.
1062
1063 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
1064
1065         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
1066         from Object when called on a generic parameter. Fixes #82211.
1067
1068 2007-08-01  Dick Porter  <dick@ximian.com>
1069
1070         * file-io.c (convert_share): Test FileShare values bit-by-bit.
1071         Fixes bug 79250 yet again.
1072
1073 2007-07-30  Martin Baulig  <martin@ximian.com>
1074
1075         Merged the `debugger-dublin' branch.
1076
1077         * mono-debug.h
1078         (MonoDebugDataTable): New typedef.
1079         (MonoDebugMethodAddressList): New typedef.
1080         (MonoDebugWrapperData): Removed.
1081         (MonoDebugSymbolTable): Removed `current_data_table',
1082         `current_data_table_size', `current_data_table_offset'.
1083         (MonoDebugDataItemType): Moved into mono-debug.c.
1084         (MonoDebugMethodJitInfo): Remove `address'.
1085         (mono_debug_data_table): New global variable.
1086         (mono_debug_lookup_method_addresses): New public function.
1087         (mono_debug_find_method): Take a `MonoMethod *', not a
1088         `MonoDebugMethodInfo *'.
1089
1090         * mono-debug.c: Drop support for the old symbol tables.
1091
1092 2007-06-28  Martin Baulig  <martin@ximian.com>
1093
1094         * mono-debug.c (mono_debug_debugger_version): New public variable.
1095
1096 2007-07-31  William Holmes  <billholmes54@gmail.com>
1097
1098         * metadata.c Changed mono_type_create_from_typespec to not insert
1099           the type into the hash map until after
1100           do_mono_metadata_parse_type has completed.
1101         Fixes Bug #82194
1102         Code is contributed under MIT/X11 license.
1103
1104 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
1105
1106         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
1107         generic parameter. Fixes #82211.
1108
1109 2007-07-27  Jb Evain  <jbevain@novell.com>
1110
1111         * pedump.c (dump_metadata, dump_metadata_header): dump
1112         versions contained in the metadata header.
1113
1114 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
1115
1116         * threads.c: register small_id_table with the GC.
1117
1118 2007-07-27  Mark Probst  <mark.probst@gmail.com>
1119
1120         * threads.c, threads.h, class-internals.h, object-internals.h:
1121         Hazard pointers, to be used by lock-free parallel algorithms.
1122
1123 2007-07-26  Dick Porter  <dick@ximian.com>
1124
1125         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
1126         routine on non-windows platforms, as I've not managed to think of
1127         a non-kludgy way of doing this.  Finishes off bug 78739.
1128
1129 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
1130
1131         * object.c: properly setup interface_bitmap in proxy vtables.
1132
1133 2007-07-25  Marek Habersack  <mhabersack@novell.com>
1134
1135         * appdomain.c (get_shadow_assembly_location): do not use TickCount
1136         to create unique shadow copy target directories, use the domain's
1137         serial number instead. Each domain gets a unique target directory
1138         that way.
1139
1140         * domain.c (mono_domain_create): added code to increment domain
1141         shadow copy serial number and cache the value in the current
1142         domain structure.
1143
1144         * domain-internals.h (struct _MonoDomain): added a new field -
1145         shadow_serial to hold the serial number used in generation of
1146         shadow-copy directories. This is to make sure that the directory
1147         name is unique for each and every domain created. We avoid a race
1148         condition with overriding assemblies already in use by other app
1149         domains.
1150
1151 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
1152
1153         * class.c (mono_bounded_array_class_get): fixed memory leak when 
1154         binding generic parameters.
1155
1156 2007-07-24  Raja R Harinath  <rharinath@novell.com>
1157
1158         * metadata.c (do_mono_metadata_parse_generic_class): Use
1159         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
1160         error.
1161
1162 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
1163
1164         * loader.c, class-internals.h, reflection.c: removed the per-method
1165         generics hashtable: we use the global one through the call of
1166         mono_class_inflate_generic_method ().
1167
1168 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1169
1170         * class.c, metadata.c, class-internals.h: introduce yet another
1171         generics global cache for inflated methods (fixes 98% of the perf
1172         issue in bug #81806).
1173
1174 2007-07-23  Raja R Harinath  <rharinath@novell.com>
1175
1176         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
1177         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
1178         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
1179         return a MonoGenericInst containing (a copy) of those types.
1180         (mono_metadata_inflate_generic_inst): Update to changes.
1181         (mono_metadata_parse_generic_inst): Likewise.
1182         (mono_get_shared_generic_inst): Likewise.
1183         * reflection.c (mono_class_bind_generic_parameters): Likewise.
1184         (mono_reflection_bind_generic_method_parameters): Likewise.
1185         * metadata-internals.h: Likewise.
1186         * icall.c (free_generic_context): Kill.
1187         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
1188
1189         * reflection.c (reflection_methodbuilder_to_mono_method): Use
1190         mono_metadata_type_dup.
1191         * marshal.c (mono_mb_create_method): Likewise.
1192
1193         * metadata.c (mono_metadata_type_dup): Rename from
1194         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
1195         MonoImage.  Handle a few more cases, esp. when no mempool is given.
1196         * marshal.c, metadata-internals.h: Update to changes.
1197
1198 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
1199
1200         * class.c: fixed a small leak for array classes and removed warning.
1201
1202 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
1203
1204         * loader.c (mono_method_get_param_token): Make this work on generic methods.
1205         Return 0x8000000 for return parameters. Fixes #82161.
1206
1207 2007-07-21  Marek Habersack  <grendello@gmail.com>
1208
1209         * appdomain.c (get_shadow_assembly_location): append the current
1210         ticks value to the path. Avoids overwriting the same assemblies by
1211         several threads at the same time.
1212
1213 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1214         and Raja R Harinath  <rharinath@novell.com>
1215
1216         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1217         Simplify slightly.
1218         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
1219         property for testing if a method is a generic method definition.
1220
1221 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1222
1223         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
1224
1225 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1226
1227         * verify.c: used function from private branch, reverted to the one in class.h 
1228
1229 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1230
1231         * verify.c: a typo slipped in and the code wont compile
1232
1233 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1234
1235         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
1236         disabled box instruction as it is doing the wrong thing
1237         improved stack dump messages, now it is easier to debug type related issues
1238
1239
1240 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
1241
1242         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
1243
1244 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1245
1246         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
1247         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
1248         grouped with class and valuetype. This change will simply 
1249         the code as it should be handled just like unmanaged pointers.
1250
1251 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1252
1253         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
1254
1255 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
1256
1257         * verify.c: several stack merge issues fixed, reference comparisons now
1258         check the type size. strict type check now works correctly.
1259         added more uses of IS_MANAGED_POINTER macro.
1260         fixed issues pointed by running the test suite against .net.
1261         
1262
1263 2007-07-19  Mark Probst  <mark.probst@gmail.com>
1264
1265         * class.c, loader.c, class-internals.h: Removed the
1266         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
1267         defines.
1268
1269         * icall.c: Better error checking in some internal reflection
1270         methods.
1271
1272 2007-07-18  William Holmes  <billholmes54@gmail.com>
1273
1274         * filewatcher.c : removed unused variable 'filename' in 
1275           ves_icall_System_IO_FSW_SupportsFSW
1276
1277 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
1278
1279         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
1280         obsolete, removed.
1281
1282 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
1283
1284         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
1285         
1286         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
1287
1288 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
1289
1290         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
1291         Implement generics support.
1292         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1293
1294         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
1295         type_args and method_args arguments.
1296         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
1297         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
1298         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
1299
1300 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
1301
1302         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
1303           It adds a rootimage parameter to mono_reflection_get_type_internal,
1304           adds new function mono_reflection_get_type_with_rootimage and use
1305           the rootimage to resolve the types instead of the current image
1306
1307 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1308
1309         * culture-info-table.h: Forgot to update after r78304.
1310
1311 2007-07-13  Raja R Harinath  <rharinath@novell.com>
1312
1313         * class.c (mono_class_is_open_constructed_type)
1314         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
1315
1316 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
1317
1318         * class.c (mono_bounded_array_class_get):  method fails if used with
1319         an incomplete TypeBuilder enum (no basetype field), fixed it by 
1320         avoiding calculating the size for such array as it cannot be instantiated.
1321         Fix bug #82015
1322
1323 2007-07-12  Raja R Harinath  <rharinath@novell.com>
1324
1325         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
1326         field.
1327         * metadata.c, reflection.c: Update to changes.
1328
1329 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
1330
1331         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
1332         mono_class_is_valid_enum, they are used to valide a enum when loading.
1333         * reflection.c: used new functions to throw TypeLoadException when and
1334         invalid enum is build with TypeBuilder. Fixes #82018
1335   
1336 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
1337
1338         * object.c: forgot commit of mono_class_setup_methods () to access
1339         iface->methods.
1340         * object-internals.h: added a few more handy fields to
1341         MonoIMTCheckItem.
1342
1343 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
1344
1345         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
1346         iface->methods.
1347
1348 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
1349
1350         * class-internals.h, object-internals.h, object.c: IMT-based
1351         interface invocation core from Massimiliano Mantione
1352         (massi@ximian.com) with a reworked arch-specific interface,
1353         bsearch implementation and a few bugfixes and memory savings by me.
1354
1355 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
1356
1357         * class.c (mono_class_create_from_typedef): mono would segfault if 
1358         an enum did not have a __value field. It now throws a TypeLoadException
1359         for such cases. Fix bug #82022
1360
1361 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1362
1363         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
1364
1365 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1366
1367         * class.c (mono_class_init): If a class is already inited but has
1368         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
1369
1370 2007-07-09  Mark Probst  <mark.probst@gmail.com>
1371
1372         * class.c: Properly handle the case of an unimplemented interface
1373         method.  Fixes: 81673.
1374
1375 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
1376
1377         * class-internals.h, object.c: cleanup patch from massi: use
1378         MonoVTable->interface_bitmap since the vtable interfaces offset array
1379         is going away.
1380
1381 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
1382
1383         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
1384         GetMDStreamVersion icall instead.
1385
1386 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
1387
1388         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
1389         not use mono_dl_build_path() with a full library name: makes
1390         fallbacks to libgaim and libfam work.
1391
1392 2007-07-06  William Holmes  <billholmes54@gmail.com>
1393
1394         * assembly.c: Added a continue statement in probe_for_partial_name when
1395          parse_assembly_directory_name fails.  Fixes : 82002
1396
1397 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
1398
1399         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
1400         and added a verification  for TYPEDBYREF.
1401         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
1402         make native int interchangeable with int32 and some small cleanup and formating.
1403         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
1404         handle byref of byref.
1405         * verify.c (push_local): handle byref of byref.
1406         * verify.c (do_binop): invalid mix of values is unverifiable
1407         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
1408         added visibility checks
1409         * verify.c (field related method): added visibility checks
1410         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
1411
1412 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
1413
1414         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
1415         string.
1416
1417 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
1418
1419         * profiler.c (mono_profiler_load): Fix an off-by-one error.
1420
1421         * marshal.c (emit_marshal_string): When returning a string from managed code,
1422         allways make a copy even for unicode strings. Fixes #81990.
1423
1424 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
1425
1426         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
1427         of byref generic inst types (bug #81997).
1428
1429 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
1430
1431         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
1432         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
1433
1434 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
1435
1436         * marshal.c (emit_marshal_string): Add support for unicode strings in
1437         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
1438
1439 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
1440
1441         * verify.c: field load/store are now verified, missing only access checks now
1442
1443 2007-06-28  Martin Baulig  <martin@ximian.com>
1444
1445         * mono-debug.c (mono_debug_debugger_version): New public variable.
1446
1447 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
1448
1449         * locales.c: When constructing DateTimeFormat or NumberFormat for
1450         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
1451         MonoCultureInfo contructed from the current locale is always
1452         read-only and has UseUserOverride set to true. All MonoCultureInfo
1453         instances returned for GetCultures have both IsReadOnly and
1454         UseUserOverride set to true. Fixes part of bug #81930.
1455
1456 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
1457
1458        * icall-def.h: Update System.__ComObject icalls
1459        * marshal.c: Avoid managed transition (and object creation)
1460        when looking up COM interface in RCW.
1461        * marshal.h: Ditto.
1462        
1463        Code is contributed under MIT/X11 license.
1464
1465 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
1466
1467         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
1468         to avoid crashes during assembly unloading.
1469
1470 2007-06-22  Raja R Harinath  <rharinath@novell.com>
1471
1472         Fix MethodInfo.IsGenericMethodDefinition
1473         * reflection.c (mono_reflection_bind_generic_method_parameters):
1474         Rearrange code to ensure we always uses a generic method definition.
1475         * class.c (mono_class_inflate_generic_method_full): Set
1476         'generic_container' field only for generic method definitions.
1477         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
1478         Use presense of 'generic_container' field as indication of being a
1479         generic method definition.
1480
1481 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
1482
1483         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1484
1485         * object-internals.h: Reflect changes in the layout of the managed Delegate
1486         class.
1487         
1488         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
1489         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
1490         runtime memory used by the dynamic method. Fixes #77146.
1491
1492 2007-06-21  Dick Porter  <dick@ximian.com>
1493
1494         * file-io.h: 
1495         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
1496         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
1497         81767.
1498
1499 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1500
1501         * reflection.c (method_encode_methodspec): Add a tripwire.
1502         * class.c (inflate_generic_type): The fully open generic type is
1503         not the same as the generic type definition.
1504
1505 2007-06-21  Martin Baulig  <martin@ximian.com>
1506
1507         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
1508
1509         * mono-debug-debugger.h
1510         (MonoDebuggerBreakpointInfo): Removed.
1511         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
1512         (mono_debugger_remove_breakpoint): Likewise.
1513         (mono_debugger_breakpoint_callback): Likewise.
1514         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
1515
1516 2007-06-21  Raja R Harinath  <rharinath@novell.com>
1517
1518         * metadata.c (mono_metadata_lookup_generic_class): The fully open
1519         generic type is not the same as the generic type definition.
1520         * class.c (mono_generic_class_get_class): Likewise.
1521
1522 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
1523
1524         * icall.c: The second argument to 
1525         System.Reflection.MethodBase.GetMethodFromHandleInternalType
1526         is a MonoType not a MonoClass.
1527
1528 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1529
1530         * verify.c: support for function pointers in the verifier
1531
1532 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
1533
1534         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
1535
1536 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
1537
1538         * assembly.c: removed Mono.Data.SqliteClient from the list of
1539         forward-compatible assemblies as it breaks the ABI (bug #81899).
1540
1541 2007-06-19  Raja R Harinath  <rharinath@novell.com>
1542
1543         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
1544         lookup/update with the loader lock.
1545         * reflection.c (mono_class_bind_generic_parameters): No need to
1546         protect mono_metadata_lookup_* with the loader lock.
1547         * class.c (inflate_generic_type): Likewise.
1548         
1549         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
1550         on a generic instantiated type.
1551
1552 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
1553
1554         *verify.c: produce meanfull error messages on verification error
1555         *verify.c: fixed some cases of verification errors reported as validation errors
1556         *pedump.c: fixed the error name array, now it shows validation errors properly
1557         *verify.h: fixed the contant that should be used for verification errors
1558
1559 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
1560
1561         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
1562         for bug #77596, 81858 and 80743 (generics data structures on domain
1563         unload).
1564
1565 2007-06-15  Raja R Harinath  <rharinath@novell.com>
1566
1567         Avoid allocating 'MonoGenericContext' on the heap.
1568         * class-internals (_MonoMethodInflated::context): Make field
1569         inline, not a pointer.
1570         * loader.c (method_from_methodspec): Allocate 'new_context' on the
1571         stack.  Use the context embedded within the inflated method as the
1572         hash key, rather than 'new_context'.
1573         * class.c (inflate_generic_context): Simplify.  Return a struct
1574         rather than allocating on the heap.
1575         (mono_class_inflate_generic_method_full): Update to changes.  Now,
1576         doesn't salt away a copy of the context -- simplifying the
1577         lifetime rules of a 'MonoGenericContext *'.
1578         (mono_method_get_context): Return pointer to embedded context.
1579         (setup_generic_array_ifaces): Allocate temporary context on stack.
1580         * reflection.c (inflate_mono_method): Likewise.
1581         (mono_reflection_bind_generic_method_parameters): Likewise.
1582         Use the context embedded within the inflated method as the hash key.
1583
1584         Avoid a source of allocation of 'MonoGenericContext'.
1585         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
1586         and 'cached_context' fields into embedded 'MonoGenericContext' field.
1587         * class.c: Update to changes.
1588         (mono_generic_class_get_context): Simplify drastically.  Now just
1589         returns a pointer to the field.
1590         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
1591         argument as a const pointer.
1592         (mono_metadata_generic_context_equal): Likewise.
1593         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
1594         Update to changes.
1595
1596 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
1597
1598         * verify.c improved the handling of brtrue/brfalse, factored out common code
1599
1600 2007-06-14  Raja R Harinath  <rharinath@novell.com>
1601
1602         Kill MonoGenericMethod.
1603         * class-internals.h (MonoGenericContext::method_inst): Rename from
1604         'gmethod' and convert to a MonoGenericInst.
1605         (MonoGenericMethod): Remove.
1606         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
1607         * loader.c (method_from_methodspec): Update to changes.  Use a
1608         MonoGenericContext as the key to the hashtable.
1609         * metadata.c (mono_metadata_generic_context_equal): Rename from 
1610         'mono_metadata_generic_method_equal' and take MonoGenericContext.
1611         (mono_metadata_generic_context_hash): Likewise from
1612         'mono_metadata_generic_method_hash'.  Change hash function.
1613         (mono_metadata_load_generic_params): Update to changes.
1614         (mono_get_shared_generic_method): Remove.
1615         * metadata-internals.h (mono_get_shared_generic_method): Remove.
1616         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
1617         (inflate_generic_context): Likewise.
1618         (mono_class_inflate_generic_method_full): Likewise.
1619         (setup_generic_array_ifaces): Likewise.
1620         (mono_class_create_from_typespec): Likewise.
1621         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
1622         (method_encode_methodspec): Update callsite.
1623         (reflection_methodbuilder_to_mono_method): Update to changes.
1624         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
1625         MonoGenericContext as the key to the hashtable.
1626         (inflate_mono_method): Update to changes.
1627
1628         * class-internals.h (MonoGenericMethod::container): Remove.
1629         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1630
1631 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
1632
1633         * profiler-private.h, profiler.c, profiler.h: added API to profile
1634         exception events.
1635
1636 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1637
1638         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
1639
1640 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
1641
1642         * verify.c: method invocation is now validated, now we verify parameter types on stack.
1643         Fixed overflow and underflow not aborting the verification process.
1644
1645 2007-06-13  Mark Probst  <mark.probst@gmail.com>
1646
1647         * class-internals.h (MonoStats): Added stats entries for dynamic
1648         code allocations.
1649
1650 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
1651
1652         * loader.c (mono_free_method): Free header->locals and header->clauses.
1653
1654         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
1655         dynamic case.
1656
1657         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
1658
1659         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
1660
1661 2007-06-12  Raja R Harinath  <rharinath@novell.com>
1662
1663         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
1664         the tables.
1665
1666 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1667
1668         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
1669
1670 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1671
1672         MonoGenericMethod on a diet
1673         * class-internals.h (_MonoMethodInflated::reflection_info): Move
1674         here ...
1675         (_MonoGenericMethod::reflection_info): ... from here.
1676         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
1677         Update to changes.
1678         * reflection.c (inflate_mono_method): Likewise.
1679         (mono_reflection_bind_generic_method_parameters): Likewise.
1680
1681 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1682
1683         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
1684         *verify.c: factored long ldarg forms to share code with short forms
1685
1686 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
1687
1688         *verify.c: fixed code formating factored some duplicate code
1689         into a new function
1690
1691         *verify.h: fixed binary incompatibility introduced earlier
1692
1693         *pedump.c: fixed formating
1694
1695 2007-06-11  Raja R Harinath  <harinath@gmail.com>
1696
1697         Fix assertion when disassembling Mono.C5.dll
1698         * loader.c (method_from_methodspec): Avoid inflating a method
1699         twice with the same context.  If the methodref is inflated, use
1700         the declaring method instead.
1701
1702         * class.c (mono_class_from_generic_parameter): Fix case similar to
1703         bug #81830 handled below, but for method containers.
1704
1705 2007-06-10  Raja R Harinath  <harinath@gmail.com>
1706
1707         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
1708         get_shared_generic_class.  Directly inflate the instance.
1709         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
1710         (inflate_generic_class): Delete.
1711         (get_shared_generic_class): Delete.  Move setting of
1712         'cached_class' and 'cached_context' ...
1713         * metadata.c (mono_metadata_lookup_generic_class): ... here.
1714
1715         * metadata.c (mono_metadata_lookup_generic_class): Change
1716         signature to take the components of a MonoGenericClass rather than
1717         an allocated MonoGenericClass.  Change semantics to be intern-like.
1718         * reflection.c (mono_class_bind_generic_parameters): Update to
1719         changes.  Make locking region tighter.
1720         * class.c (inflate_generic_class): Update to changes.
1721         (get_shared_generic_class): Likewise.
1722         * metadata-internals.h: Likewise.
1723
1724         * reflection.c (mono_class_bind_generic_parameters): Take and
1725         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
1726         (mono_reflection_bind_generic_parameters): Use
1727         'mono_class_bind_generic_parameters' rather than duplicate the code.
1728         * class.c (mono_bounded_array_class_get): Update to changes.
1729         * object-internals.h: Likewise.
1730
1731         * reflection.c (mono_class_bind_generic_parameters): Only support
1732         parameterizing generic type definitions.  Remove support for other
1733         open types.
1734
1735 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
1736
1737         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
1738
1739         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
1740         in the dynamic case.
1741
1742 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
1743
1744         * threads.c: When cleaning up thread, reset the Background bit.
1745         Fixes bug #81720.
1746
1747 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
1748
1749        * metadata.c: Move variable declarations to top of scope.
1750        * verify.c: Move variable declarations to top of scope.
1751
1752        Code is contributed under MIT/X11 license.
1753
1754 2007-06-08  Raja R Harinath  <rharinath@novell.com>
1755
1756         * reflection.c (mono_class_bind_generic_parameters): Replace
1757         open-coded loop with mono_metadata_inflate_generic_inst.
1758
1759         * class.c (get_shared_generic_class): Don't call
1760         mono_get_shared_generic_inst.  Use the container's own
1761         'class_inst'.
1762
1763         * metadata.c (mono_metadata_load_generic_params): Move
1764         initialization of 'context' field here from ...
1765         * class.c (mono_class_create_from_typedef): ... here, and ...
1766         * loader.c (mono_get_method_from_token): ... here.
1767
1768         * class.c (get_shared_generic_class): Rename from
1769         mono_get_shared_generic_class and make static.
1770         (mono_get_shared_generic_inst): Move to metadata.c.
1771         * loader.c (mono_get_shared_generic_method): Likewise.
1772         * class-internals.h, metadata-internals.h: Update to changes.
1773
1774         Fix #81830
1775         * class.c (mono_class_from_generic_parameter): Don't assume a
1776         generic container owner exists.  Generic containers from monodis
1777         don't have any.
1778
1779 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
1780
1781         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
1782         * verify.h: new typedefs to returns the non-verifiable status
1783         * verify.c: initial implementation of generics, stack merging and object compatibility check
1784
1785 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1786
1787         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1788         a MonoInternalHashTable again (fixed bug in internal hash table
1789         code).
1790
1791 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1792
1793         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1794         MonoInternalHashTable again (fixed bug in internal hash table
1795         code).
1796
1797 2007-06-06  Mark Probst  <mark.probst@gmail.com>
1798
1799         * class.c, image.c, class-internals.h, domain.c,
1800         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
1801         changes.  Have to figure out what makes them break the SWF
1802         regression.
1803
1804 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1805
1806         * class.c, image.c, class-internals.h (MonoImage): class_cache is
1807         a MonoInternalHashTable now.
1808
1809 2007-06-04  Mark Probst  <mark.probst@gmail.com>
1810
1811         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
1812         MonoInternalHashTable now.
1813
1814 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
1815
1816         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
1817         invoke_impl code.
1818
1819         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
1820
1821         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
1822         dependent trampoline.
1823
1824         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1825
1826         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
1827
1828 2007-05-29  Robert Jordan  <robertj@gmx.net>
1829
1830         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
1831
1832 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
1833
1834         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
1835
1836 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
1837
1838        * marshal.c: Fix interface lookup loops for
1839        cominterop_get_com_slot_for_method and 
1840        cominterop_get_method_interface. Only need to lookup
1841        if type is a class, else use interface type method is on.
1842
1843        Code is contributed under MIT/X11 license.
1844
1845 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1846
1847         * reflection.c: HasSecurity can be present even if no specially 
1848         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
1849         SecurityAttribute). Fix CAS regression tests on buildbot.
1850
1851 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
1852
1853        * appdomain.c: Add configure checks for header files.
1854        * image.c: Add configure checks for header files.
1855        * file-io.c: Add configure checks for header files.
1856        * debug-mono-symfile.c: Add configure checks for header files.
1857        * threadpool.c: Add configure checks for header files.
1858        * console-io.c: Add configure checks for header files.
1859        * profiler.c: Add configure checks for header files.
1860        * rawbuffer.c: Add configure checks for header files.
1861        * icall.c: Add configure checks for header files.
1862        * rand.c: Add configure checks for header files.
1863        * socket-io.c: Add configure checks for header files.
1864
1865        Code is contributed under MIT/X11 license.
1866
1867 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
1868
1869         * reflection.c (mono_custom_attrs_from_builders): Remove the 
1870         assertion as it breaks the build.
1871         
1872         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
1873
1874         * reflection.c (lookup_custom_attr): Make a copy here too.
1875
1876         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
1877         dynamic images.
1878
1879         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
1880         images.
1881
1882         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
1883         info.
1884
1885 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
1886
1887         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
1888         (load_cattr_value): Ditto.
1889
1890 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
1891
1892         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
1893
1894 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1895
1896         * threads.c: In "start_wrapper", set apartment_state to MTA if
1897         apartment_state is Unknown and we're running on 2.0 profile or
1898         higher.
1899         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
1900         to main method, then set apartment_state to Unknown on 1.0 profile,
1901         and MTA on 2.0 profile.
1902
1903 2007-05-16  Jb Evain  <jb@nurv.fr>
1904
1905         * class-internals.h (MonoDefaults): Add an attribute_class and
1906           customattribute_data_class.
1907         * domain.c (mono_init_internal): Populate them.
1908         * reflection.c: Use them to remove duplicates. Make a vew
1909         MonoClass variables `static'.
1910
1911 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
1912
1913         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
1914         step in implementing IMT, so that all isinst checks now can go
1915         through the bitmap.
1916         This was needed because vtables for TransparentProxy need to look
1917         like the vtable of the "target" class, so they need to point to
1918         its interface bitmap directly.
1919
1920         * object.c: inside "mono_class_create_runtime_vtable" and
1921         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
1922
1923 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
1924
1925         * object-internals.h
1926           culture-info.h : added territory field in MonoCulture and
1927           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
1928         * locales.c : fill territory field above too.
1929         * culture-info-table.h : regenerated.
1930
1931 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
1932
1933         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
1934         Fixes #81599.
1935
1936 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
1937
1938         * object.c: Always initialize apartment, even if 
1939         there is no custom attributes on entry point.
1940         
1941         Code is contributed under MIT/X11 license.
1942
1943 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
1944
1945         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
1946         * metadata.c: If no encoding is set, check for unicode
1947         on class.
1948         
1949         Code is contributed under MIT/X11 license.
1950
1951 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1952
1953         * threads.c: Handle if mono_thread_current returns NULL 
1954         
1955         Code is contributed under MIT/X11 license.
1956
1957 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
1958
1959         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
1960         in start_wrapper. Added mono_thread_init_apartment_state and
1961         mono_thread_cleanup_apartment_state.
1962         * object.c: Initialize thread apartment state on main thread
1963         by checking for STAThreadAttribute on entry point.
1964         * object-internals.h: Add apartment_state field to MonoThread.
1965         * threads-types.h: Add unmanaged definition of 
1966         System.Threading.ApartmentState, MonoThreadApartmentState.
1967         
1968         Code is contributed under MIT/X11 license.
1969         
1970 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
1971
1972         * class.c: Fix windows build.
1973         * class-internals.h: Fix windows build.
1974         
1975         Code is contributed under MIT/X11 license.
1976
1977 2007-05-08  Robert Jordan  <robertj@gmx.net>
1978
1979         * process.c (CreateProcess_internal):
1980         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
1981         .CreateNoWindow was specified. Fixes #81496.
1982
1983 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
1984
1985         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
1986         step in implementing IMT, replaced it with two compact arrays
1987         (interfaces_packed and interface_offsets_packed) and a bitmap that
1988         is used for isinst checks (interface_bitmap).
1989
1990         * class.c: (compare_interface_ids): compare function to pass to
1991         bsearch when looking for an interface with a given id.
1992         (mono_class_interface_offset): reimplemented using bsearch on
1993         interfaces_packed, getting the offset from interface_offsets_packed.
1994         (print_implemented_interfaces): utility debugging function.
1995         (setup_interface_offsets): reworked to initialize interfaces_packed,
1996         interface_offsets_packed and interface_bitmap.
1997
1998         * object.c: replaced all accesses to "MonoClass.interface_offsets"
1999         with uses of interfaces_packed and interface_offsets_packed.
2000
2001 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
2002
2003         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
2004         mono_class_interface_offset prototype to wrap all accesses to
2005         "MonoClass.interface_offsets".
2006
2007         * class.c: Implemented mono_class_interface_offset, and wrapped all
2008         accesses to "MonoClass.interface_offsets".
2009
2010         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
2011         "MonoClass.interface_offsets".
2012
2013 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
2014
2015         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
2016         GetMethodFromHandle overloads (bug #78637).
2017
2018 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
2019
2020         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
2021         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
2022
2023 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
2024
2025         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
2026         #81498.
2027
2028         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
2029         gracefully.
2030         (mono_custom_attrs_from_index): Ditto.
2031
2032         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
2033         Fixes #81501.
2034
2035 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
2036
2037         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
2038         is now allocated from a mempool.
2039
2040 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
2041
2042         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
2043         caller holds threads_lock, leading to deadlocks. Fixes #81476.
2044
2045 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
2046
2047         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
2048         mono_loader_clear_error () too late. Fixes #81463.
2049
2050 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
2051
2052         * culture-info-table.h : regenerated.
2053
2054 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
2055
2056         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
2057         is missing.
2058
2059 2007-04-25  Dick Porter  <dick@ximian.com>
2060
2061         * Makefile.am: Put the mingw enforced-optimisation back into the
2062         PLATFORM_WIN32 section.
2063
2064 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
2065
2066         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
2067         patch.
2068
2069         * image.c (mono_image_load_module): New API function to load a module reference.
2070
2071         * image.c (load_modules): Load modules lazily. Fixes #80812.
2072
2073         * class.c (mono_class_from_typeref): Use mono_image_load_module.
2074         
2075         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
2076
2077         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
2078         to mono_image_load_module_dynamic.
2079
2080 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
2081
2082         * marshal.c: Fix calling convention for CCW on non-windows
2083         platforms. STDCALL on windows, CDECL everywhere else to work 
2084         with XPCOM and MainWin COM.
2085         
2086         Code is contributed under MIT/X11 license.
2087
2088 2007-04-23  Martin Baulig  <martin@ximian.com>
2089
2090         Fix #80969.
2091
2092         * loader.c
2093         (method_from_memberref): Added `gboolean *used_context' argument.
2094         (mono_get_method_from_token): Likewise.
2095         (mono_get_method_full): Don't insert the method in the cache when
2096         `used_context' is true.
2097
2098 2007-04-23  Raja R Harinath  <rharinath@novell.com>
2099
2100         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
2101
2102         * reflection.c (mono_reflection_bind_generic_parameters): Don't
2103         create new MonoTypes for returned types.
2104         * class.c (mono_generic_class_get_class): Export mono-internal.
2105         * class-internals.h: Update to changes.
2106
2107 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
2108
2109         * threadpool.c, threadpool.h, icall-def.h: patch from
2110         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
2111
2112 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
2113
2114         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
2115         
2116         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
2117
2118         * threads.c (mono_thread_get_stack_bounds): New helper function.
2119
2120         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
2121         Correctly compute stack bounds when attaching. Fixes #81394.
2122
2123 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
2124
2125         * reflection.c: fix handling of doubles in custom attributes
2126         for the arm-fpa format (bug #81368).
2127
2128 2007-04-18  Raja R Harinath  <rharinath@novell.com>
2129
2130         * reflection.c (assembly_add_win32_resources): Mildly relax an
2131         bounds check to let the end pointer point just past the end of the
2132         allocated buffer.  (may fix #81384)
2133
2134 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
2135
2136         * culture-info-table.h : regenerated.
2137
2138 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
2139
2140         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
2141         the thread is aborted early.
2142
2143 2007-04-05  Dick Porter  <dick@ximian.com>
2144
2145         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
2146         FindFirstFile()/FindNextFile() to find entries.  This lets the
2147         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
2148         81038.
2149
2150         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
2151         the parameters of
2152         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
2153
2154 2007-04-04  Martin Baulig  <martin@ximian.com>
2155
2156         * debug-helpers.c
2157         (mono_method_desc_full_match): Add support for nested classes.
2158
2159 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
2160
2161         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
2162
2163 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
2164
2165         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
2166         waiting for too many threads.
2167
2168 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
2169
2170         * environment.c: Fix return value check on uname so we can get the 
2171         executing version on Solaris operating systems.
2172
2173 2007-03-28  Jb Evain  <jbevain@gmail.com>
2174
2175         * class.c (mono_type_get_name_recurse): Complete the
2176         fix for the creation of assembly qualified names for
2177         pointer types. Fixes #81208.
2178
2179 2007-03-27  Dick Porter  <dick@ximian.com>
2180
2181         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
2182         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
2183         changed.
2184
2185         * threads.c
2186         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
2187         the value of ReleaseMutex().
2188
2189 2007-03-27  Dick Porter  <dick@ximian.com>
2190
2191         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
2192         in little-endian order, not network endian, so must be converted
2193         to host endian here.  Fixes bug 80593.
2194
2195 2007-03-22  Jb Evain  <jbevain@gmail.com>
2196
2197         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
2198         qualified names for pointer types. Fixes #81208.
2199
2200 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
2201
2202         * marshal.c: Add support for PreserveSigAttribute. 
2203         
2204         Code is contributed under MIT/X11 license.
2205
2206 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
2207
2208         * process.c: Fix endianness issues. Fixes #81126.
2209
2210         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
2211         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
2212
2213         * image.c (mono_image_lookup_resource): Make this work on big-endian
2214         machines.Change API contract so the caller needs to free the return value.
2215         
2216         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
2217         API change.
2218         
2219 2007-03-14  Martin Baulig  <martin@ximian.com>
2220
2221         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
2222         mono_type_get_desc() as well.
2223
2224 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
2225
2226         * icall.c:  Fix environ access in VS.  
2227         
2228 2007-03-13  Alp Toker  <alp@atoker.com>
2229
2230         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
2231         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
2232         #63841.
2233
2234 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
2235
2236         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
2237         circular references among dynamic methods. Fixes #81091.
2238
2239         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
2240
2241 2007-03-09  Martin Baulig  <martin@ximian.com>
2242
2243         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
2244
2245 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
2246
2247         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
2248         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
2249         
2250         Code is contributed under MIT/X11 license.
2251         
2252 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
2253
2254         * loader.c: Reapply patch for bug #79424.
2255
2256 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2257
2258         * metadata.c (mono_type_to_unmanaged): Only convert object to
2259         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
2260
2261 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
2262
2263         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
2264         (and incorrectly set) is_reference field from MonoGenericInst.
2265
2266 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
2267
2268         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
2269         a little earlier.
2270
2271         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
2272
2273         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
2274
2275 2007-03-05  Miguel de Icaza  <miguel@novell.com>
2276
2277         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
2278         FileOptions.1 value to mean "temporary", map that to
2279         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
2280
2281         Fixes 80688
2282
2283 2007-03-03  Marek Habersack  <mhabersack@novell.com>
2284
2285         * appdomain.c: implement MS .Net style shadow copying. Copies of
2286         the assemblies are made in a subdirectory of the dynamic base
2287         directory, the assembly names are preserved.
2288         Copy .mdb and .config files along with the assemblies being shadowed.
2289
2290 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2291
2292         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
2293         (emit_marshal_handleref): Ditto.
2294
2295         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
2296         on Visual C++. Fixes #80671.
2297
2298 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
2299
2300         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
2301         for clone operations.
2302
2303 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
2304
2305         * marshal.c: Fix warnings.
2306
2307 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
2308
2309         * loader.c: allow case-insensitive matching of the dll name
2310         in dllmap handling when prefixed with "i:".
2311
2312 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
2313
2314         * threads.c: Fix #ifdef for dummy_apc function for VS.
2315
2316 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
2317
2318         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
2319
2320 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
2321         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
2322         giving precedence to the methods with a fully qualified name
2323         (InterfaceName.MethodName) when building the interface sections
2324         of the vtable.
2325
2326 2007-02-16  Dick Porter  <dick@ximian.com>
2327
2328         * threadpool.c (append_job): Fix fast-path array handling, so it's
2329         less likely the array will grow exponentially when the load is
2330         heavy.
2331
2332 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2333
2334         * metadata-internals.h, loader.c: fix dllmap lookup order
2335         for non-function maps, too, and prepare for fallback code.
2336
2337 2007-02-12  Robert Jordan  <robertj@gmx.net>
2338
2339         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
2340         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
2341         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
2342         GlobalFree. Fixes a part of bug #77075.
2343
2344 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
2345
2346         * loader.c: implemented typedef parent in field memberref.
2347
2348 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
2349
2350         * marshal.c: Fix warnings and remember to call Release on
2351         IUnknown of RCW.
2352         
2353         Code is contributed under MIT/X11 license.
2354
2355 2007-02-10  Miguel de Icaza  <miguel@novell.com>
2356
2357         * class-internals.h: Add MonoHandleRef definition, and
2358         handleref_class to mono_defaults. 
2359
2360         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
2361         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
2362
2363         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
2364         (do nothing on this stage)
2365         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
2366         (emit_marshal_handleref): New method, used for argument handling
2367         of HandleRefs. 
2368
2369 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
2370
2371         * class.c (mono_class_setup_parent): Lazily init com types.
2372         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
2373         init com types.
2374         * object.c (mono_remote_class_vtable): Lazily init com types.
2375         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
2376         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
2377         * domain-internals.h: Expose mono_init_com_types.
2378         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
2379         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
2380         Add support for COM Callable Wrapper marshalling.
2381         * marshal.h: Add icall definitions.
2382         * gc.c: Handle freeing of CCWs in finalizer code.
2383         
2384         Code is contributed under MIT/X11 license.
2385
2386 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
2387
2388         * reflection.c: changed all the signature encoding code to use
2389         a variable-sized buffer.
2390
2391 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2392
2393         * marshal.c: locking fixes: never take the loader lock
2394         or other runtime locks when holding the marshal lock
2395         (fixes bug#80664).
2396
2397 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
2398
2399         * marshal.c: make the delegate function pointer mapping
2400         work for the moving GC.
2401
2402 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
2403
2404         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
2405         for bug #80618.
2406
2407 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
2408
2409         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
2410         gmodule.
2411
2412 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
2413
2414         * threadpool.c: made the code moving-GC safe.
2415
2416 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
2417
2418         * assembly.c, boehm-gc.c, class-internals.h, class.c,
2419         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
2420         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
2421         warning cleanup.
2422         * reflection.c: warning cleanup, some threading and moving GC fixes.
2423
2424 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
2425
2426         * class.c, loader.c: create the needed Set/Get/Address array methods
2427         as well as the .ctors in mono_class_init (), fixes bug #80567.
2428
2429 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
2430
2431         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
2432         we doesn't decrease its alignment. Should fix the sparc build.
2433
2434 2007-01-24  Dick Porter  <dick@ximian.com>
2435
2436         * socket-io.c
2437         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2438         Create the returned object if we need to ignore an unsupported
2439         socket option.  Fixes a segfault reported by Atsushi.
2440
2441 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
2442
2443         * class.c, object.c: restrict GC-tracked fields to
2444         UIntPtr fields used inside corlib, so we provide better
2445         type info to the GC and also allow broken packing as in
2446         bug #80580.
2447
2448 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
2449
2450         * sgen-gc.c: removed duplicated function.
2451
2452 2007-01-19  Miguel de Icaza  <miguel@novell.com>
2453
2454         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
2455         value that means that the value is not supported, but that we
2456         should not return a failure, but instead report this as a
2457         successful operation.
2458
2459 2007-01-19  Raja R Harinath  <rharinath@novell.com>
2460
2461         Fix tests/bug79956.2.il
2462         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
2463         (mono_generic_class_get_class): If the generic definition in an
2464         enum, copy over other fields related to it.
2465
2466 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
2467
2468         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
2469         genericinst enums (bug #79215).
2470
2471 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
2472         * class.c: Fix bug 80307.
2473
2474 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
2475
2476         * image.c: if the file table is not present, try to load
2477         all the modules, since we don't have info about them
2478         having or not metadata (bug #80517).
2479         * assembly.c: allow mono_assembly_load_references () to
2480         work for netmodules.
2481
2482 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
2483
2484         * image.c, metadata-internals.h, object.c: execute module
2485         cctors when running on the 2 runtime if present (bug #80487).
2486
2487 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
2488
2489         * icall.c: optimized InitializeArray() on bigendian.
2490
2491 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
2492
2493         * icall.c: fix for the broken ARM FPA double format.
2494
2495 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
2496
2497         * icall.c: handle endian issues for r4 and r8 types, too, in
2498         the InitializeArray() icall.
2499
2500 2007-01-15  Miguel de Icaza  <miguel@novell.com>
2501
2502         * loader.c (mono_loader_error_prepare_exception): Clear the error
2503         once we have extracted the information from it, do this before we
2504         call into the JIT's class loading mechanisms.
2505
2506         * object.c (mono_class_create_runtime_vtable): Do not clear the
2507         loader error before calling mono_class_get_exception_for_failure
2508         as the loader error is needed inside
2509         mono_class_get_exception_for_failure to throw the error (thinko).
2510
2511         Fixes #80521
2512         
2513 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
2514
2515         * reflection.c: align fields rva data so it's faster to load at
2516         runtime.
2517
2518 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2519
2520         Prepare to simplify GenericMethod handling.
2521         * class-internals.h (mono_method_get_context): New accessor function.
2522         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
2523         rather than directly accessing '->context' field.
2524
2525         * class-internals.h (_MonoGenericParam.method): Move ...
2526         (_MonoGenericContainer): ... here.  Add into union with klass field.
2527         * class.c, icall.c, loader.c, metadata.c, reflection.c:
2528         Update to changes.
2529
2530 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
2531
2532         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
2533         the wrapper type enum and reduce relocations.
2534
2535 2007-01-12  Raja R Harinath  <rharinath@novell.com>
2536
2537         * reflection.c (inflate_mono_method): Reuse method instantiation
2538         from the generic method, if available.
2539
2540 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2541
2542         * marshal.c (emit_marshal_variant): Fix conv_arg
2543         type in last commit, based on whether parameter is byref.
2544         
2545 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2546
2547         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
2548         marshalling.
2549         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
2550         MONO_TYPE_OBJECT back for VARIANT support.
2551
2552 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
2553
2554         * marshal.c, marshal.h, icall-def.h: Implement 
2555         Marshal.ReAllocCoTaskMem.
2556
2557 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
2558
2559         * marshal.c: memory retention fixes: use the proper
2560         image cache for runtime_invoke method lookups.
2561
2562 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
2563
2564         * mempool.c: added code to help debug mempool allocations.
2565
2566 2007-01-11  Dick Porter  <dick@ximian.com>
2567
2568         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
2569         support (experimenting with faking it with IP_MTU_DISCOVER for
2570         systems that don't have IP_DONTFRAGMENT.)
2571         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
2572         icall.
2573
2574         * icall-def.h: new System.Net.Sockets.Disconnect icall.
2575
2576         * socket-io.h: Add new fields to MonoSocketAsyncResult
2577         corresponding to the new ones in Socket.cs.
2578
2579 2007-01-11  Raja R Harinath  <rharinath@novell.com>
2580
2581         Fix IronPython regression mentioned in #80249
2582         * metadata.c (do_mono_metadata_parse_generic_class): Clear
2583         'cached_context' field, since it may have been initialized as a
2584         side-effect of metadata parsing.
2585
2586         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
2587         (_MonoGenericClass.cached_class): Move here and rename from lone
2588         remaining field of ...
2589         (_MonoInflatedGenericClass): ... this.  Remove.
2590         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
2591         to changes.
2592
2593         Fix mcs/tests/test-128.cs regression.
2594         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2595         2007-01-10 change below.
2596         [MONO_TYPE_OBJECT]: Recurse into array case.
2597
2598 2007-01-11  Raja R Harinath  <harinath@gmail.com>
2599
2600         * class-internals.h (mono_get_inflated_generic_class): Remove.
2601         * class.c (mono_get_inflated_generic_class): Remove.
2602         (mono_generic_class_get_class): Rename from
2603         mono_class_create_generic.
2604         (mono_class_from_mono_type) [GENERICINST]: Use it.
2605         * reflection.c, metadata.c: Update to changes.  Use
2606         'mono_class_from_mono_type'.
2607
2608 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
2609
2610         * reflection.c: use passed type when encoding an array element
2611         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
2612
2613 2007-01-09  Robert Jordan  <robertj@gmx.net>
2614
2615         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
2616         result arguments (someDelegate.EndInvoke (unrelatedAres)).
2617         Fixes bug #80392.
2618
2619 2007-01-09  Raja R Harinath  <rharinath@novell.com>
2620
2621         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
2622
2623         * object.c (set_value): Avoid aliasing between type->data.klass
2624         and type->data.generic_class.
2625
2626         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
2627
2628 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2629
2630         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
2631         between type->data.klass and type->data.generic_class.
2632
2633 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
2634
2635         * marshal.c: In MS.NET, StringBuilder objects are not copied by
2636         value in out parameters.
2637
2638 2007-01-08  Raja R Harinath  <rharinath@novell.com>
2639
2640         Simplify invariant for MonoGenericClass::klass field.
2641         * class.c (mono_class_create_generic): Verify 'klass' is null.
2642         * metadata.c (do_mono_metadata_parse_generic_class): Don't
2643         initialize 'klass' field.
2644
2645 2007-01-05  Raja R Harinath  <rharinath@novell.com>
2646
2647         Ongoing work to avoid redundant data and simplify invariants.
2648         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
2649         'generic_class', and change type to a GenericInst.
2650         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
2651         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
2652
2653 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
2654
2655         * class.c : skip io-layer under PLATFORM_WIN32.
2656
2657 2007-01-03  Tor Lillqvist  <tml@novell.com>
2658
2659         Fix #80305: In a bundled executable, look in the bundled exe
2660         assembly to determine the runtime version. Add the possibility to
2661         bundle also the machine.config file.
2662         
2663         * assembly.c (mono_assembly_open_from_bundle): Make
2664         non-static. Allow being called even if we have no bundled
2665         assemblies, and return NULL right away in that case.
2666
2667         * domain-internals.h: Declare mono_assembly_open_from_bundle()
2668         here.
2669
2670         * domain.c (app_config_parse): Take an assembly exe file name as
2671         parameter instead of a config file name. Check for a bundled
2672         config file for that assembly by calling
2673         mono_config_string_for_assembly_file() (see below) before looking
2674         for one in the file system.
2675         (get_runtimes_from_exe): Corrsponding change to call of
2676         app_config_parse().
2677         (get_runtimes_from_exe): Check for bundled assembly exe file first
2678         by calling mono_assembly_open_from_bundle(). If no bundled
2679         assembly exe file is found, call mono_image_open() as before to
2680         look it up in the file system.
2681
2682         * mono-config.c: Add variable bundled_machinec_onfig.
2683         (mono_config_string_for_assembly_file): New function.
2684         (mono_config_for_assembly): Move code snippet that looks for a
2685         bundled assembly .config file into the above new function. Call
2686         it.
2687         (mono_register_machine_config, mono_get_machine_config): New
2688         functions to set and retrieve
2689
2690         * assembly.h: Declare mono_register_machine_config().
2691
2692         * mono-config.h: Declare mono_get_machine_config() and
2693         mono_config_string_for_assembly_file().
2694
2695         * icall.c: No declaration of environ necessary on Win32. It is
2696         declared (as a macro expanding to a function call) in stdlib.h.
2697         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
2698         New internal mono function. Returns the value of
2699         mono_get_machine_config() as a Mono string.
2700
2701         * icall-def.h: Add get_bundled_machine_config().
2702
2703 2007-01-04  Raja R Harinath  <rharinath@novell.com>
2704
2705         Remove redundant field
2706         * class-internals.h (_MonoGenericContext.container): Remove field.
2707         * loader.c (mono_method_get_signature_full): Don't parse a
2708         "container" for a signature parse when the signature is inflated
2709         immediately.
2710         (method_from_methodspec): Likewise, for a generic_inst.
2711         * class.c, metadata.c, reflection.c: Update to changes.
2712
2713 2006-01-04  Raja R Harinath  <rharinath@novell.com>
2714
2715         * class-internals.h (_MonoGenericClass): Rename 'context' field to
2716         'cached_context', and change semantics -- it starts off NULL, and
2717         is initialized on demand.
2718         * class.c (mono_generic_class_get_context): New accessor to
2719         replace 'context' field accesses.
2720         (mono_class_get_context): New helper.
2721         (*): Update to changes.
2722         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
2723
2724 2007-01-03  Miguel de Icaza  <miguel@novell.com>
2725
2726         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
2727         before the memcpy.   Fixes Marshal2 regression.
2728
2729 2007-01-02  Jb Evain  <jbevain@gmail.com>
2730
2731         * blob.h: add a MONO_TYPE_ENUM definition
2732         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
2733         fix the encoding of arrays of enums in custom attributes.
2734
2735         Fixes #79666.
2736
2737 2007-01-01  Miguel de Icaza  <miguel@novell.com>
2738
2739         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
2740         string is null terminated, but only cut the string short if it
2741         overflows the buffer.   
2742         
2743         (mono_string_to_byvalstr): Also fix this routine.   The code here
2744         was not properly terminating a string (it was only terminated
2745         because of the previous catch-all memset). 
2746
2747         I left the memset, because I do not know if applications expect
2748         the runtime to clear this region. 
2749
2750         Fixes #79944.
2751
2752         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
2753         Clear the error before returning to unmanaged code to prevent the
2754         runtime from being confused later on (fixes  80420).
2755         (ves_icall_type_from_name): Always call mono_loader_clear_error
2756         after parsing a type that could have failed.
2757         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
2758
2759         * loader.c (mono_loader_clear_error): Fix indentation.
2760
2761 2006-12-28  Martin Baulig  <martin@ximian.com>
2762
2763         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
2764
2765 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
2766
2767         * reflection.c: patch from Rolf Bjarne Kvinge to fix
2768         getting a token for an EnumBuilder.
2769
2770 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
2771
2772         * reflection.c: be more careful in case resource generation
2773         fails to create the data array.
2774
2775 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
2776
2777         * sgen-gc.c: write barrier for clone and fix unregister handles.
2778
2779 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
2780
2781         * reflection.c: some fixes needed in the generics code for the moving GC.
2782
2783 2006-12-22  Robert Jordan  <robertj@gmx.net>
2784
2785         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
2786         account. Fixes bug #80299.
2787
2788 2006-12-21  Raja R Harinath  <rharinath@novell.com>
2789
2790         Fix WaitHandle usage in delegates.
2791         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
2792         * object.c (mono_wait_handle_new): Use the property set method to
2793         initialize the handle.
2794         (mono_wait_handle_get_handle): New.
2795         * threadpool.c (mono_async_invoke): Use it.
2796         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
2797         Likewise.
2798         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
2799
2800 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
2801
2802         * marshal.c (emit_marshal): Call emit_marshal_variant and
2803         emit_marshal_com_interface when applicable.
2804         (emit_marshal_variant, emit_marshal_com_interface): Add
2805         methods for this case and remove if's from emit_marshal_object.
2806         
2807 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
2808
2809         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
2810
2811 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
2812
2813         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
2814         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
2815         and GlobalFree on Windows. Remove FIXME.
2816
2817 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2818
2819         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
2820         implementation for managed objects.
2821
2822 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
2823
2824         * object.c: implemented code to be used for checking
2825         that no reference field overlaps with non-references.
2826
2827 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2828
2829         * threadpool.c: fix queue code to be compatible with the
2830         moving GC.
2831
2832 2006-12-18  Miguel de Icaza  <miguel@novell.com>
2833
2834         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
2835         in structures by throwing ArgumentNullException.
2836
2837         (emit_marshal_safehandle): Also when they are null parameters.
2838
2839         (emit_marshal_safehandle): Add support for ref
2840         SafeHandles parameters
2841
2842 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
2843
2844         * profiler.c: updated to use the mono-dl API instead of
2845         gmodule.
2846
2847 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2848
2849         * profiler.c: updated to use the mono-dl dynamic loading
2850         API instead of gmodule.
2851
2852 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
2853
2854         * profiler.c: use readlink, older versions of glib don't have
2855         g_file_read_link ().
2856
2857 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2858
2859         * profiler.c: try to detect the path to mono if libc fails to provide
2860         a useful name (bug #80286).
2861
2862 2006-12-16  Raja R Harinath  <rharinath@novell.com>
2863
2864         Fix #80242
2865         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
2866         instance, use the generic type definition instead.
2867         (ves_icall_Type_GetNestedTypes): Likewise.
2868         * class.c (mono_class_create_generic): Always set the
2869         nested_classes of a generic instance to NULL, even if the generic
2870         type definition has nested types.
2871
2872 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
2873
2874         * marshal.c (mono_string_from_bstr): Revert previous Windows change
2875         and fix on Linux.
2876         
2877 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2878
2879         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
2880         my arguments were in the wrong order.   I also fixed the Windows
2881         version which seems to have had the same issue.
2882
2883         (mono_free_bstr): On Unix, this is g_free.
2884         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
2885         conversions (for the tests in corlib to pass).
2886
2887 2006-12-14  Miguel de Icaza  <miguel@novell.com>
2888
2889         * marshal.c (emit_ptr_to_object_conv): For now, ignore
2890         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
2891         exception if a ref SafeHandle in a struct has changed).
2892         
2893         (emit_struct_conv): Do not perform layout checks for classes
2894         derived from SafeHandle, as those are specially handled. 
2895
2896         (emit_object_to_ptr_conv): Add support for
2897         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
2898
2899         (emit_marshal_safehandle): Implement conversion of return values
2900         of safehandles (MARSHAL_ACTION_CONV_RESULT).
2901         
2902         * threads.c: WaitHandle now is compiled with two different handles
2903         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
2904         for 2.0.
2905         
2906         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
2907         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
2908         these routines to cope with both kinds of fields.
2909
2910 2006-12-12  Miguel de Icaza  <miguel@novell.com>
2911
2912         * metadata.c (mono_type_to_unmanaged): Handle the case where
2913         type->data.klass is a SafeHandle, and in that case, return the
2914         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
2915         MONO_MARSHAL_CONV_SAFEHANDLE. 
2916
2917 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2918
2919         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
2920         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
2921         calling emit_marshal_object.
2922
2923         (emit_marshal_safehandle): Implement marshalling of
2924         SafeHandle parameters (no ref support yet).
2925
2926         (MarshalAction): Document the defines as I implement
2927         them for SafeHandle.
2928
2929         (emit_marshal_object): indentation police.
2930
2931         * class-internals.h: Define MonoSafeHandle.
2932         Add safehandle_class to MonoDefaults type.
2933
2934         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
2935         list of classes to check for fields. 
2936
2937         * domain.c (mono_init_internal): Add SafeHandle to the list of
2938         mono_defaults loaded.
2939
2940 2006-12-15  Raja R Harinath  <rharinath@novell.com>
2941
2942         Fix #80253
2943         * reflection.c (mono_reflection_bind_generic_parameters): If the
2944         generic type definition is a type builder, ensure that it is fully
2945         initialized before instantiating it.  Kill some dead code.
2946
2947 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
2948
2949         * object.c: clear the loader_error () before loading
2950         more metadata stuff (bug #80258).
2951
2952 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
2953
2954         * icall.c, icall-defs.h: type modifiers icalls for
2955         parameters and properties.
2956
2957 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
2958
2959         * object.c, icall.c: fixed warnings.
2960
2961 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2962
2963         * marshal.c: fixed a couple of leaks and coding style in a few places.
2964
2965 2006-12-08  Dick Porter  <dick@ximian.com>
2966
2967         * process.c: Cope with NULL ProcessStartInfo arguments on windows
2968         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
2969         80173.
2970
2971 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
2972
2973         * process.c: ProcessStartInfo may have only filename set and
2974         arguments can be NULL.
2975
2976 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2977
2978         * icall.c: fix leak found by Robert Jordan.
2979
2980 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
2981
2982         * marshal.c, marshal.h: generate managed method to access an element
2983         of a multi-dimensional array.
2984
2985 2006-11-30  Paolo Molaro (lupus@ximian.com)
2986
2987         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
2988
2989 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
2990
2991         * icall.c: back out GetFields () fix until the serialization code is
2992         fixed to not depend on the incorrect behaviour.
2993
2994 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
2995
2996         * profiler.c: provide defaults if none are set.
2997
2998 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
2999
3000         * Makefile.am, attrdefs.h: new public header file with
3001         constants for attributes for use by embedders.
3002
3003 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
3004
3005         * icall.c: GetFields () fix for bug #80064.
3006
3007 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
3008
3009         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
3010         removed long unused icalls.
3011
3012 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
3013   
3014         * marshal.c: 
3015                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
3016                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
3017                 can be generated without a delegate class.
3018                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
3019         
3020         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3021
3022 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3023
3024         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
3025         #80069.
3026
3027 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
3028
3029         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
3030         icall-def.h: added icalls needed by System.GC.
3031
3032 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
3033
3034         * loader.c: ensure the class in catch clauses is handled
3035         correctly for generics methods (fixes bug#79980).
3036
3037 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
3038
3039         * monitor.h, monitor.c: added mono_locks_dump () function
3040         to help debug deadlocks involving managed locks.
3041
3042 2006-11-13  Dick Porter  <dick@ximian.com>
3043
3044         * file-io.c (get_file_attributes): If the file is a symlink try
3045         and get the stat data for the target, but also add the
3046         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
3047         the specs for the windows symlink support, but will probably have
3048         to be reworked when I have test data from a vista machine.  Fixes
3049         bug 79887.
3050
3051 2006-11-13  Dick Porter  <dick@ximian.com>
3052
3053         * gc.c (mono_domain_finalize): 
3054         * marshal.c (mono_delegate_begin_invoke): 
3055         * threadpool.c (socket_io_init, mono_thread_pool_init)
3056         (mono_thread_pool_finish): 
3057         * monitor.c (mono_monitor_try_enter_internal): 
3058         * threads.c (mono_thread_resume, mono_thread_init)
3059         (mono_thread_suspend_all_other_threads)
3060         (mono_thread_execute_interruption): 
3061         * appdomain.c (mono_domain_unload): Check for NULL error returns
3062         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
3063         75733.
3064
3065 2006-11-11  Miguel de Icaza  <miguel@novell.com>
3066
3067         * process.c
3068         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
3069         Only close the handle if the value of the handle is not
3070         INVALID_HANDLE_VALUE.  This just makes the process a bit more
3071         robust.
3072
3073         Improvement for #75733, so that we do not run into this problem. 
3074
3075         
3076         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
3077         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
3078         internal variables.  Fixes #79462 
3079         
3080
3081 2006-11-09  Dick Porter  <dick@ximian.com>
3082
3083         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3084         Use poll() not select().  Fixes bug 79397.
3085
3086 2006-11-09  Raja R Harinath  <rharinath@novell.com>
3087
3088         Fix #79872
3089         * assembly.c (mono_assembly_load_from_full): Check that the given
3090         image has an assembly manifest.
3091
3092 2006-11-09  Ankit Jain  <jankit@novell.com>
3093
3094         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
3095         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
3096         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
3097
3098 2006-11-07  Dick Porter  <dick@ximian.com>
3099
3100         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3101         Put the old resolver behaviour back for pre-2.0 profiles.
3102
3103 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
3104
3105         * threadpool.c: precise GC and locking fixes.
3106
3107 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
3108
3109         * class.c: don't load types that have an explicit unaligned
3110         managed reference. Provide better info in the TypeLoad exception.
3111         Part of the fix for bug #79744.
3112         * object.c: use the correct check for class type load issues.
3113
3114 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
3115
3116         * class.c: enforce alignment of fields with managed references
3117         even when Pack=1 is forced by the user (bug #77788).
3118
3119 2006-11-03  Dick Porter  <dick@ximian.com>
3120
3121         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
3122         If the address reverse lookup fails, return it as the hostname
3123         anyway.  Fixes bug 79721.
3124
3125 2006-11-03  Dick Porter  <dick@ximian.com>
3126
3127         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
3128         Fix build on Windows.
3129
3130 2006-11-02  Dick Porter  <dick@ximian.com>
3131
3132         * icall-def.h: 
3133         * object-internals.h: 
3134         * exception.c (mono_get_exception_thread_interrupted): 
3135         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
3136         Fixes bug 74525.
3137
3138         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
3139         Check for pending Thread.Interrupt.
3140
3141 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
3142         * loader.c: Fixed bug 79684.
3143
3144 2006-10-27  Dick Porter  <dick@ximian.com>
3145
3146         * file-io.c (get_file_attributes): Force symlinks to directories
3147         to be returned as a regular file.  Fixes bug 79733.
3148 2006-10-26  Dick Porter  <dick@ximian.com>
3149
3150         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
3151         CreateFile to open a directory then we need to set the
3152         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
3153
3154 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
3155
3156         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
3157         friends.
3158
3159 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3160
3161         * sgengc.c: small cleanup of timer code.
3162
3163 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3164
3165         * sgen-gc.c: fix some warnings and start adding support for
3166         complete object removal on domain unload.
3167
3168 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
3169
3170         * assembly.c: build_assembly_name should not consider a version
3171         number without build or revision number invalid. Fixes bug #79715.
3172
3173 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
3174
3175         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
3176         call kernel32 function OutputDebugString directly.
3177         
3178         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
3179         
3180 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
3181
3182         * reflection.c: small cleanup, using a function to insert a MonoString
3183         in the string heap.
3184
3185 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
3186
3187         * reflection.c: moving GC fixes.
3188
3189 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
3190
3191         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
3192         all the objects with finalizers belonging to an unloading appdomain.
3193
3194 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
3195
3196         * sgen-gc.c: added ability to allocate even when the nursery is fully
3197         pinned and fixed a couple of bugs.
3198
3199 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3200
3201         * threads.h: Revert the last change for now.
3202
3203         * threads.h (mono_thread_get_pending_exception): Rename this to
3204         mono_thread_get_undeniable_exception ().
3205
3206 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
3207
3208         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
3209         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
3210         when fname does not refer to valid assembly. This result in a more
3211         meaningful error message.
3212         * exception.c: added mono_get_exception_bad_image_format2 which 
3213         constructs a BadImageFormatException using the ctor taking a custom
3214         message and the file name. Passing in a NULL msg results in a default
3215         message.
3216         * exception.h: define mono_get_exception_bad_image_format2 function.
3217         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
3218         when file name pointed to an invalid IL image. Use 
3219         mono_get_exception_file_not_found2 to construct FileNotFoundException,
3220         as this results in a more meaningful error message.
3221
3222 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
3223
3224         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
3225         #79465.
3226
3227 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
3228
3229         * metadata.c (mono_type_size): Change the align parameter to guint32 for
3230         consistency with the other _size functions.
3231         (mono_type_stack_size): Ditto.
3232
3233         * class.c object.c icall.c: Fix warnings caused by the above change.
3234
3235         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
3236
3237         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
3238
3239         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
3240
3241 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3242
3243         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
3244         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
3245         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
3246         threadpool.h, threads-types.h: mark more internal functions.
3247
3248 2006-10-11  Dick Porter  <dick@ximian.com>
3249
3250         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
3251         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
3252         reproduce the bug even before applying the fix.)
3253
3254 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
3255
3256         * reflection.c: allow retrieving attributes for arguments in generic
3257         methods (bug #79241).
3258
3259 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
3260
3261         * debug-mono-symfile.c: properly check fopen () result (found by
3262         coverity).
3263
3264 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
3265
3266         * reflection.c: make error message clearer and fixed two
3267         issuelets found by Coverity.
3268
3269 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
3270
3271         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
3272
3273 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3274
3275         * object-internals.h, gc-internal.h, profiler-private.h:
3276         mark internal functions.
3277
3278 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3279
3280         * reflection.c: put data in the text section.
3281         * icall.c: recognize more types in type_from_typename ().
3282         * process.c, marshal.c: added some GC FIXMEs.
3283
3284 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3285
3286         * loader.c: check for NULL before initializing.
3287
3288 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
3289
3290         * gc.c (finalizer_thread): Use a non-alertable wait here.
3291
3292         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
3293         until the correct solution is found.
3294
3295 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3296
3297         * reflection.c (mono_module_get_object): Avoid an assert when operating on
3298         modules with no metadata. Fixes #79596.
3299
3300         * image.c (load_metadata_ptrs): Put back the error message when
3301         the #- heap is encountered since the support is not complete yet.
3302
3303 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
3304
3305         * gc.c: do not allow the user to SuppressFinalize () a
3306         delegate because it would leak the trampoline if present.
3307
3308 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
3309
3310         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
3311         PropertyPtr table.
3312
3313 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
3314
3315         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
3316
3317         * metadata.c (mono_metadata_get_param_attrs): Ditto.
3318
3319         * row-indexes.h: Add definitions for *Ptr tables.
3320
3321         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
3322
3323         * metadata.c (mono_metadata_translate_token_index): New helper function to
3324         translate table indexes used in uncompressed metadata.
3325         (mono_metadata_decode_table_row): Ditto.
3326         (mono_metadata_decode_table_row_col): Ditto.
3327
3328         * metadata.c: Add table schema for *Ptr tables.
3329
3330         * class.c loader.c: Use the new helper function to access the affected metadata
3331         tables.
3332         
3333         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
3334         #38532.
3335         
3336 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
3337
3338         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
3339         sequences which can be unbounded in size. Fixes #79583.
3340
3341 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
3342
3343         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
3344         static initialization.
3345
3346         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
3347
3348         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
3349
3350         * domain.c (mono_domain_free): Free up type_init_exception_hash.
3351
3352         * object.c (mono_runtime_class_init): Implement correct semantics when a static
3353         ctor fails, i.e. throw the same exception on subsequent accesses.
3354         
3355 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
3356
3357         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
3358         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
3359         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
3360         Handle marshalling of interfaces and VARIANTs contained in structs.
3361         
3362         Code is contributed under MIT/X11 license.
3363         
3364 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
3365
3366         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
3367         
3368         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
3369         mempool.
3370
3371 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3372
3373         * console-io.c: ignore previous SIGINT handler.
3374
3375 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
3376
3377         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
3378         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
3379         #79460, #79461, #79485.
3380
3381         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
3382
3383         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
3384         #79217.
3385
3386 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
3387
3388         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
3389         could be generated from it.
3390
3391 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
3392
3393         * rand.c: fix read loop to correctly handle EINTR.
3394
3395 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3396
3397         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
3398         internal calls are defined to keep methods closer to the declaring
3399         type and allow a significant reduction in runtime relocations and
3400         memory usage.
3401
3402 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
3403
3404         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
3405         exception message to have FileNotFoundException use the default
3406         assembly load error message. Fixes bug #79426.
3407         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
3408
3409 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3410
3411         * threadpool.c: (start_thread_or_queue) use the root domain when
3412         creating the thread instead of the async object one.
3413
3414 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
3415
3416         * class.c, object.c, class-internals.h, reflection.c:
3417         for arrays, store element_size inside MonoClass (speedup
3418         for array object creation).
3419
3420 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
3421
3422         * icall.c: fixed CodeBase to use the file name and not the module
3423         name (bug #79365).
3424
3425 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3426
3427         * mono-debug.c, mono-debug.h: export find_method as
3428         mono_debug_find_method ().
3429
3430 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
3431
3432         * debug-helpers.c, class-internals.h: added a few functions useful
3433         when debugging under gdb.
3434
3435 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3436
3437         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
3438         characters that need special handling.
3439
3440 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
3441
3442         * mono-config.c: make the os/cpu specification more flexible,
3443         allowing lists and negation.
3444
3445 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
3446
3447         * marshal.c: COM Interop fixes. Handle case where method->klass.
3448         is interface. Handle BSTR/MonoString when null. Use CDECL as 
3449         calling convention on non-windows platforms. This is for
3450         compatibility with XPCOM and MainWin COM.
3451         
3452         Code is contributed under MIT/X11 license.
3453         
3454
3455 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
3456
3457         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
3458         correctly. Fixes #79217.
3459
3460         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
3461
3462 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
3463
3464         * mono-config.c: allow both an os and cpu attribute for dllmap
3465         and dllentry elemnets to enable a single config file to be used
3466         for multiple architectures.
3467
3468 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
3469
3470         * loader.c: MonoLoaderError was cleared too soon on load failure.
3471         Fixes bug #79424.
3472
3473 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
3474
3475         * icall.c: use the defining class vtable when accessing a
3476         static field, not a pobblibly derived class.
3477
3478 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
3479
3480         * icall.c string-icalls.c: Remove references to unicode.h.
3481
3482         * unicode.h unicode.c Makefile.am: Remove these unused source files.
3483
3484         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
3485
3486         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
3487         indicating the image where custom marshaller types should be looked up.
3488         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
3489         custom marshallers, instead of corlib. Fixes #79425.
3490
3491 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
3492
3493         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
3494
3495 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
3496
3497         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
3498         Implement Environment.ProcessorCount.
3499         
3500         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
3501         Implement Environment.ProcessorCount.
3502         
3503         * icall.c: 
3504         Add Environment.ProcessorCount icall.
3505         
3506         Patch by Jason McFall.
3507
3508 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3509
3510         * assembly.c: don't append .exe/.dll when the filename already contains
3511         one of those extensions.
3512
3513 2006-09-12  Martin Baulig  <martin@ximian.com>
3514
3515         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
3516         to array interfaces.
3517
3518 2006-09-11  Martin Baulig  <martin@ximian.com>
3519
3520         * reflection.c (mono_image_build_metadata): Create the
3521         MethodImpl's after emitting all types and methods, so we don't
3522         need another fixup pass for them.
3523
3524 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
3525
3526         * class.c (mono_class_from_name_case): Fix regression introduced by the last
3527         change.
3528
3529 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
3530
3531         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
3532         unload.
3533
3534 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
3535
3536         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
3537         args is not set. Fixes #78926.
3538
3539 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
3540
3541         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
3542
3543         * image.c (load_class_names): Move this to class.c, and rename it to 
3544         'mono_image_init_name_cache'.
3545         (load_modules): Fix a warning.
3546
3547         * class.c icall.c image.c: Initialize image->name_cache lazily.
3548
3549         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
3550         on its name using information in the AOT file.
3551
3552         * class.c (mono_class_from_name): Use the new hook function.
3553
3554 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
3555
3556         * reflection.c (mono_param_get_objects): Handle enum default parameter values
3557         correctly.
3558
3559         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
3560         Fixes #79289.
3561         
3562 2006-09-06  Martin Baulig  <martin@ximian.com>
3563
3564         * icall.c (mono_lookup_internal_call): Small fix.
3565
3566 2006-09-05  Raja R Harinath  <rharinath@novell.com>
3567
3568         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
3569         double g_free.
3570
3571 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
3572
3573         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
3574         when --debug is specified.
3575
3576 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
3577
3578         * class.c (setup_generic_array_ifaces): Fix a warning.
3579
3580 2006-09-04  Miguel de Icaza  <miguel@novell.com>
3581
3582         * Temporarily remove the patch to assemly.c that checks the
3583         assembly versions as it breaks our gacutil.
3584
3585 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
3586
3587         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
3588
3589         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
3590         a net 1.0 runtime.
3591
3592         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
3593         created using the default ctor. Fixes #79152.
3594         (mono_string_builder_to_utf16): Ditto.
3595
3596 2006-09-01  Martin Baulig  <martin@ximian.com>
3597
3598         Fix handling of the generic array interfaces.
3599
3600         * class-internals.h
3601         (MonoDefaults): Removed `generic_array_class' and added
3602         `generic_ilist' class.
3603
3604         * class.c
3605         (mono_bounded_array_class_get): Add the new generic array interfaces.
3606         (setup_generic_array_ifaces): New static method; create vtable
3607         entries for each method in the generic array interfaces.
3608
3609         * metadata.c
3610         (select_container): Allow "parent-less" generic methods.
3611
3612         * marshal.c
3613         (mono_marshal_get_generic_array_helper): New public method.
3614
3615         * icall.c
3616         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
3617         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
3618         moved the interncall into System.Array.
3619
3620 2006-09-01  Raja R Harinath  <rharinath@novell.com>
3621
3622         A few more cases of avoiding work on types with ->byref set.
3623         Has the real fix for #79238
3624         * icall.c (is_generic_parameter): New helper.
3625         (ves_icall_Type_GetGenericParameterPosition): Use it.
3626         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
3627         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3628         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
3629         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
3630         reference types.
3631         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
3632         reference types.
3633         (ves_icall_Type_get_IsGenericInstance): Likewise.
3634         (ves_icall_Type_get_IsGenericType): Likewise.
3635
3636 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
3637
3638         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
3639         class if possible.
3640
3641         * mempool.h (mono_mempool_get_allocated): New helper function.
3642
3643         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
3644         change.
3645
3646         * mempool.c: Fix warnings and the calculation of stats.
3647
3648         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
3649
3650         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
3651
3652         * loader.c (mono_get_method_from_token): Update method_count stat.
3653
3654         * class-internals.h (MonoStats): Add some stats.
3655
3656 2006-08-31 Robert Jordan  <robertj@gmx.net>
3657
3658         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
3659         with managed variants.
3660         All code is contributed under the MIT/X11 license.
3661         
3662 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
3663
3664         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
3665         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
3666
3667         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
3668
3669         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
3670         with cycles in classes.
3671
3672         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
3673
3674         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
3675         missing a [MarshalAs] directive. Fixes #79203.
3676
3677         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
3678         klass->marshal_info. Fixes #79217.
3679
3680 2006-08-30  Martin Baulig  <martin@ximian.com>
3681
3682         Committing a patch from Joachim Ante <joe@otee.dk>:
3683         Add support for binary data symbol stores.
3684
3685         * debug-mono-symfile.c
3686         (mono_debug_open_mono_symbol_file): Renamed into
3687         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
3688         arguments.
3689
3690         * mono-debug.c
3691         (mono_debug_open_image): Added `raw_contents' and `size' args.
3692         (mono_debug_init_2_memory): New public function.
3693
3694 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
3695
3696         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
3697
3698 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3699
3700         * appdomain.c: implement support for ShadowCopyFiles.
3701
3702 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3703
3704         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
3705         when value is NULL (and should remove CID #51).
3706
3707 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3708
3709         * image.c: moved 2 functions to ../utils.
3710
3711 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3712
3713         * gc.c: cope with the target object of a GC handle being NULL
3714         (bug #78877).
3715
3716 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
3717
3718         * class.c: recursively check parent's explicit implementations
3719         of interface methods (fixes bug #79125).
3720
3721 2006-08-19  Miguel de Icaza  <miguel@novell.com>
3722
3723         * filewatcher.c: Avoid warnings when building, do not redefine
3724         constants that are defined.
3725
3726         Remove warnings.
3727
3728 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3729
3730         * image.c: don't fail when the link points to an absolute path.
3731
3732 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
3733
3734         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
3735         Fix CID #3.
3736
3737 2006-08-17  Miguel de Icaza  <miguel@novell.com>
3738
3739         * image.c (full_path): A new method used to obtain the actual path
3740         of an assembly even in the presence of symbolic links.  
3741
3742         This is necessary for the case where we are running a binary that
3743         has been GACed, but we are using the "published" path name
3744         ($prefix/mono/1.0/blah.exe) which happens to point to the real
3745         file in the GAC.
3746
3747         This was the source of the failure for the `xsp' command with the
3748         recent AppDomain changes, as far as the runtime was concerned,
3749         there were two different assemblies: $prefix/mono/1.0/blah.exe and
3750         $prefix/mono/gac/blah/version/blah.exe.
3751
3752         (do_mono_image_open): use full path
3753
3754 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3755
3756         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
3757
3758 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
3759
3760         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
3761         domain_id is supplied. Fix CID #241 and corlib's unit tests.
3762
3763 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3764
3765         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
3766         small structures. Fixes #78990.
3767
3768 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
3769
3770         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
3771
3772         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
3773
3774 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3775
3776         * appdomain.c:
3777         * marshal.c: don't load all the assemblies from a domain into newly
3778         created ones. The new domains might have different rules and load
3779         assemblies from different locations. Fixes bug #76757.
3780
3781         Patch by Lluis. Conflicts resolved by Brian Crowell.
3782
3783 2006-08-16  Alp Toker  <alp@atoker.com>
3784
3785         * socket-io.c: First half of the fix for #79084.
3786         Set sa_size to the length of the content, not that of the struct.
3787         Don't add NULL suffix to the content, this should be done in
3788         managed code if needed.
3789
3790 2006-08-14  Raja R Harinath  <rharinath@novell.com>
3791
3792         Fix part of #79012
3793         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
3794         mono_metadata_parse_type returns NULL.
3795
3796 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
3797
3798         * normalization-tables.h : new file for string normalization data.
3799         * locales.c, locales.h, icall.c :
3800           added load_normalization_resource() for string normalization,
3801           and icall as well.
3802         * Makefile.am : added normalization-tables.h to the sources.
3803
3804 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
3805
3806         * marshal.c: Add more helper functions to reduce code duplication and use them
3807         everywhere.
3808
3809 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
3810
3811         * marshal.c: Fix non-x86 stdcall warnings.
3812         
3813         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
3814         them everywhere.
3815
3816 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
3817
3818         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
3819         type check on multi-dimensional arrays. Fixes #79000.
3820
3821 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
3822
3823         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
3824         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
3825         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
3826         * class-internals.h: add is_com_object to class structure.
3827         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
3828         null checks to COM object marshalling. Fix .ctor call on RCW.
3829         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
3830         
3831         All code is contributed under the MIT/X11 license.
3832
3833 2006-08-09  Dick Porter  <dick@ximian.com>
3834
3835         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
3836         racing mono_monitor_allocator_lock() somewhere, so don't delete
3837         the critical section for now.  Found by running and exiting
3838         monodevelop.
3839
3840 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
3841
3842         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
3843         (ves_icall_System_ComObject_FindInterface): Ditto.
3844         (ves_icall_System_ComObject_CacheInterface): Ditto.
3845
3846         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
3847         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
3848
3849 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3850
3851         * threadpool.c: treat pipes from process asynchronous reads as sockets
3852         when reading from them, so we get select/poll or epoll to wait for
3853         data.
3854
3855 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
3856
3857         * loader.c: Fix a typo (CID #233) in the null check.
3858
3859 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
3860
3861         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
3862         Hopefully fixes #78949.
3863         
3864         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
3865         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
3866         bytes. Fixes #78972.
3867
3868 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3869
3870         * filewatcher.c: we need to set errno here.
3871
3872 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3873
3874         * filewatcher.c: let Win32Exception get the error value.
3875
3876 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3877
3878         * filewatcher.c: translate errno into win32 errors for Win32Exception
3879         to know what happened.
3880
3881 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
3882
3883         * threadpool.c: Fix more warnings.
3884
3885         * assembly.c (search_loaded): Fix warnings.
3886
3887         * threadpool.c (mono_thread_pool_finish): Fix warnings.
3888         (mono_async_invoke): Ditto.
3889
3890 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
3891
3892         * object.c (mono_remote_class_vtable): Need to create proxy vtable
3893         entries for __ComObject type in addition to ComImport types.
3894         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
3895         about hash table.
3896         
3897         All code is contributed under the MIT/X11 license.
3898
3899 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3900
3901         * image.c: avoid tentative loading of modulerefs that contain
3902         no metadata (P/Invoke library names).
3903
3904 2006-07-28  Dick Porter  <dick@ximian.com>
3905
3906         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
3907         mono_loader_lock() somewhere, so don't delete the critical section
3908         for now.  Found by running and exiting monodevelop.
3909
3910 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3911
3912         * filewatcher.c: define the inotify syscalls when we're building on
3913         linux and have sys/syscall.h. The build system might not have support
3914         for inotify but the target system might have it.
3915
3916 2006-07-26  Miguel de Icaza  <miguel@novell.com>
3917
3918         * domain.c: Documentation updates.
3919
3920         * loader.c (mono_free_method): Do not release the method
3921         information if we are being profiled, as profilers will use this
3922         information at shut down to present some data to the user.
3923
3924         This is needed so that the profiler does not crash, as the
3925         profiler tends to keep MonoMethods around, and they might become
3926         invalid if we free these.
3927
3928         (mono_get_method_constrained): Return the original CIL stream
3929         method as well, so verification can be performed against it.
3930
3931 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3932
3933         * filewatcher.[ch]: support for inotify file system watcher.
3934         * icall.c: add new internal calls for the inotify file system watcher.
3935
3936 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3937
3938         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
3939         #78888.
3940
3941 2006-07-20  Dick Porter  <dick@ximian.com>
3942
3943         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
3944         warning.
3945
3946 2006-07-20  Dick Porter  <dick@ximian.com>
3947
3948         * threads.c (start_wrapper): Do the thread cleanup while we still
3949         hold a reference to its object.  Fixes bug 78123.
3950
3951 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
3952
3953         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
3954         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
3955           "managed-to-managed".
3956         * icall.c: Redirect string constructors that take sbyte* to
3957           ves_icall_System_String_ctor_RedirectToCreateString.
3958         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
3959           to CreateString () methods with matching signature.
3960         * reflection.c: Use original security informations for
3961           MONO_WRAPPER_MANAGED_TO_MANAGED.
3962         * security-manager.c: Use original security informations for
3963           MONO_WRAPPER_MANAGED_TO_MANAGED.
3964         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
3965           that is a placeholder and only its address should be used.
3966         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
3967           that is a placeholder and only its address should be used.
3968
3969 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
3970
3971         Begin implementing COM Interop.
3972         * appdomain.c: Increment corlib version.
3973         * class.c: Set ComImport classes' parent to __ComObject.
3974         * loader.c: Mark cominterop methods as such.
3975         * domain.c: Add __ComObject class to MonoDefaults structure.
3976         * image.c: Add 2 hashtables to the image for COM Interop related methods
3977         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
3978         using the mempool allocator
3979         
3980         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
3981         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
3982         declaration for mono_metadata_type_dup_mp.
3983         
3984         * debug-helpers.c: Added strings for two additional wrapper types
3985         * object.c: Create proxy objects for ComImport classes
3986         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
3987         and added __ComObject class to MonoDefaults structure.
3988         
3989         * object-internals.h: Finish MonoRealProxy definition, and add definition of
3990         MonoComInteropProxy and MonoComObject.
3991         
3992         * marshal.c: Added support for COM Interop
3993         (signature_cominterop): Converts managed signature to corresponding
3994         unmanaged COM signature.
3995         (cominterop_get_function_pointer): gets unmanaged function pointer via
3996         COM object vtable
3997         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
3998         (cominterop_get_method_interface): returns interface type that method is defined on
3999         (mono_mb_emit_cominterop_call): emits native call to function pointer
4000         gotten from vtable
4001         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
4002         that matches signature of unmanaged function.
4003         (cominterop_get_native_wrapper): wrapper around adjusted method call.
4004         (cominterop_get_invoke): forwards call from proxy to __ComObject
4005         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
4006         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
4007         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
4008         
4009         * marshal.h: Added Marshal icall declarations.
4010         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
4011         so we can access them in finalizer
4012         
4013 2006-07-14  Dick Porter  <dick@ximian.com>
4014
4015         * object.c (mono_type_initialization_cleanup): Fix a race
4016         condition by temporarily commenting out the critical section
4017         deletion.
4018
4019 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
4020
4021         * reflection.c (create_custom_attr): Fix some warnings.
4022         (create_custom_attr_data): Ditto.
4023         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
4024         types. Fixes #78855.
4025
4026 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
4027
4028         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
4029
4030         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
4031
4032 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
4033
4034         * reflection.c (resolve_object): Add support for DynamicMethod.
4035
4036         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
4037         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
4038
4039 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
4040
4041         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
4042         don't leak GPtrArray's pdata has we have no use (nor free) for it.
4043
4044 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
4045
4046         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
4047         Fixes #77888.
4048
4049 2006-06-30  Raja R Harinath  <rharinath@novell.com>
4050
4051         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
4052         slightly: remove a shadow local variable.
4053
4054 2006-06-29  Raja R Harinath  <rharinath@novell.com>
4055
4056         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
4057         definition that introduces the virtual function slot.
4058         Also fix Coverity #105.
4059
4060 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
4061
4062         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
4063         for dynamic assemblies. Fixes #78724.
4064
4065 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
4066
4067         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
4068         Fixes #78722.
4069
4070 2006-06-21  Martin Baulig  <martin@ximian.com>
4071
4072         * reflection.c
4073         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
4074         fixes #76484.
4075
4076 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
4077
4078         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
4079
4080 2006-06-20  Raja R Harinath  <rharinath@novell.com>
4081
4082         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
4083         nor TYPEREFs.
4084         * class.c (mono_class_create_from_typespec): Add 'context' argument.
4085         Inflate result if necessary.
4086         (mono_class_get_full): Remove old version.  Rename from
4087         'mono_class_get' and add 'context' argument.  Pass it to
4088         ..._create_from_typespec.
4089         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
4090         (mono_ldtoken): Revert change below.
4091
4092 2006-06-20  Martin Baulig  <martin@ximian.com>
4093
4094         * class.c (mono_ldtoken): Don't pass the generic context to
4095         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
4096
4097 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
4098
4099         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
4100         and later freeing it. Fixes #78638.
4101
4102 2006-06-15  Miguel de Icaza  <miguel@novell.com>
4103
4104         * icall.c (mono_class_get_throw): Revert over-zealous error
4105         throwing, the caller for mono_class_get_throw will cope with
4106         errors when classes are not properly initialized already.
4107
4108         The code still copes with loader exceptions though.
4109
4110         Fixes the regression in reftype1 and reftype3 from the CAS tests.
4111         
4112 2006-06-14  Miguel de Icaza  <miguel@novell.com>
4113
4114         Fixes the `make run1' version of RuntimeAbort (to be commited,
4115         source is in Bugzilla).
4116         
4117         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
4118         FALSE on class loading failure instead of returning true.
4119
4120         * class.c (mono_class_create_from_typedef): It is possible for
4121         mono_metadata_interfaces_from_typedef_full to fail if a class is
4122         not found, cope with this.
4123         
4124
4125 2006-06-14  Dick Porter  <dick@ximian.com>
4126
4127         * socket-io.c: 
4128         * process.c: Fix a bunch of signed/unsigned warnings from gcc
4129         4.1.1
4130
4131 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
4132
4133         * culture-info-table.h : oops, forgot to make it nsync with r61548.
4134
4135 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4136
4137         * icall.c: Another fix for building mono in Visual Studio.
4138
4139 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
4140
4141         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
4142         
4143 2006-06-09  Martin Baulig  <martin@ximian.com>
4144
4145         * debug-mono-symfile.c: Put this back and really fix it this
4146         time. Sorry for all the trouble.
4147
4148 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
4149
4150         * icall.c (mono_class_get_throw): Fix a warning.
4151         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
4152         ReflectionTypeLoadException if needed. Fixes #78606.
4153
4154         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
4155         (mono_class_init): Ditto.
4156
4157         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
4158         ref_only exceptions.
4159         (mono_loader_clear_error): Make this work even if there is no error.
4160
4161 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
4162
4163         * object-internals.h marshal.c marshal.h icall.c: Implement method 
4164         Marshal.GetComSlotForMethodInfo using internal call.
4165
4166 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
4167
4168         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
4169         a function for signalling it.
4170
4171         * class.c (mono_class_from_typeref): Use the new kind of loader error when
4172         a referenced assembly is not found.
4173
4174         * loader.c (mono_loader_error_prepare_exception): Add support for 
4175         LOADER_ERROR_ASSEMBLY. Fix formatting.
4176
4177 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
4178
4179         * domain.c appdomain.c class-internals.h marshal.c: Add support 
4180         for VARIANT marshalling on windows and increment corlib version
4181         since Variant struct was added.
4182
4183 2006-06-03  Miguel de Icaza  <miguel@novell.com>
4184
4185         * debug-mono-symfile.c: Revert Martin's previous patch which broke
4186         stack trace line information:
4187
4188         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
4189         (Martin) when looking up B which is between A and C, return A not C.
4190
4191         Bug is #78573.
4192
4193         Thanks to Alexander Olk for tracking this down.
4194
4195 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
4196
4197         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
4198         
4199         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
4200         avoid clobbering its value.
4201         (mono_string_to_lpstr): Fix a warning on windows.
4202
4203 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4204
4205         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
4206
4207         * reflection.c loader.c: Removed references to 'dummy' flag.
4208
4209         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
4210
4211         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
4212         it gets GC tracking.
4213
4214         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
4215         GC tracking.
4216         
4217         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
4218
4219         * marshal.c threadpool.c: Update callers of mono_async_result_new.
4220
4221         * appdomain.c: Bump corlib version.
4222
4223 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4224
4225         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4226         CEE_STIND_REF when working with object references.
4227
4228 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
4229
4230         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
4231         Fixes #78539.
4232
4233 2006-05-30  Miguel de Icaza  <miguel@novell.com>
4234
4235         * loader.c (method_from_memberref): Fix argument value for
4236         mono_loader_set_error_method_load (I was passing the MonoClass
4237         instead of the class name char *).
4238
4239 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
4240
4241         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
4242         CEE_STIND_REF when working with object references.
4243
4244 2006-05-30  Martin Baulig  <martin@ximian.com>
4245
4246         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
4247         mono_method_full_name() change and replace the ':' with a '.'
4248         here.
4249
4250 2006-05-30  Martin Baulig  <martin@ximian.com>
4251
4252         * debug-mono-symfile.c
4253         (mono_debug_symfile_lookup_location): Fix the algorithm:
4254         when looking up B which is between A and C, return A not C.
4255
4256 2006-05-29  Martin Baulig  <martin@ximian.com>
4257
4258         * mono-debug.h
4259         (MonoDebugMethodInfo): Make the typedef public.
4260         (MonoDebugSourceLocation): New public struct.
4261
4262         * mono-debug.c
4263         (mono_debug_source_location_from_address): Removed.
4264         (mono_debug_source_location_from_il_offset): Removed.
4265         (mono_debug_il_offset_from_address): Removed.
4266         (mono_debug_address_from_il_offset): Removed.
4267         (mono_debug_lookup_method): New public function.
4268         (mono_debug_lookup_source_location): New public function; replaces
4269         the old mono_debug_source_location_from_*() functions; see the
4270         inline documentation.
4271         (mono_debug_free_source_location): New public function.
4272         (mono_debug_print_stack_frame): New public function; see the
4273         inline documentation.
4274
4275         * debug-mono-symfile.c
4276         (mono_debug_find_source_location): Renamed into
4277         mono_debug_symfile_lookup_location(); only take a
4278         `MonoDebugMethodInfo *' and an `offset' argument; added inline
4279         documentation.
4280         (mono_debug_find_method): Renamed into
4281         mono_debug_symfile_lookup_method().
4282
4283 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
4284
4285         * assembly.c (mono_assembly_open_full): Dont overwrite the status
4286         returned by mono_image_open_full ().
4287
4288         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
4289         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
4290         #78517.
4291
4292         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
4293         #78518.
4294
4295 2006-05-27  Miguel de Icaza  <miguel@novell.com>
4296
4297         * class.c (mono_class_from_typeref): handle missing images
4298         earlier, deals with bug #78418.   Refactor code; 
4299
4300         Fix a warning introduced in my previous commit (some stale code
4301         from before I revisited my patch).
4302
4303         * class.c (mono_class_create_from_typedef): On failure, remove the
4304         class from the MonoImage->class_cache as the class is not
4305         initialized;   Fixes the leak pointed out by Paolo.
4306
4307 2006-05-25  Dick Porter  <dick@ximian.com>
4308
4309         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
4310         DeleteCriticalSections until I figure out which one may still be
4311         sometimes locked when mono_thread_cleanup is called.
4312
4313 2006-05-24  Dick Porter  <dick@ximian.com>
4314
4315         * threads.c (mono_thread_cleanup): Move the threading cleanup out
4316         of mono_thread_manage and back into its own function, so it can be
4317         called after the finalizer thread has finished.
4318
4319         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
4320
4321 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
4322
4323         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
4324         Fixes #78495.
4325
4326         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
4327         with non-blittable elements.
4328         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
4329
4330 2006-05-24  Martin Baulig  <martin@ximian.com>
4331
4332         * mono-debug-debugger.h (MonoDebuggerEvent): Added
4333         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
4334
4335         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
4336         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
4337         `mono_debugger_event_handler' to NULL.
4338
4339 2006-05-24  Martin Baulig  <martin@ximian.com>
4340
4341         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
4342
4343 2006-05-24  Martin Baulig  <martin@ximian.com>
4344
4345         * mono-debug-debugger.h
4346         (mono_debugger_create_notification_function): Added
4347         `MonoCodeManager *' argument.
4348
4349 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
4350
4351         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
4352
4353 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
4354
4355         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
4356         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
4357         implementation.
4358
4359 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
4360
4361         * icall.c: precise GC support: objects can't be stored in unmanaged
4362         memory anymore, even if they are kept alive by other references: since
4363         they can move the GC needs to be able to always find them.
4364
4365 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
4366
4367         * object.c: precise GC support for static fields. Support
4368         for moving GCs: write barriers and pinned allocation for interned
4369         strings.
4370
4371 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
4372
4373         * domain.c, domain-internals.h: precise GC support for the MonoDomain
4374         structure.
4375
4376 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
4377
4378         * class.c, gc.c: sgen and precise GC updates.
4379
4380 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
4381
4382         * marshal.h, marshal.c: added write barrier wrapper and precise type
4383         fixes.
4384
4385 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
4386
4387         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
4388         support.
4389
4390 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
4391
4392         * reflection.c: precise and sgen GC updates.
4393
4394 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
4395
4396         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
4397
4398 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
4399
4400         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
4401
4402 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
4403
4404         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
4405         MONO_TYPE_OBJECT. Fixes #78462.
4406
4407 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
4408
4409         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
4410         and blittable types.
4411
4412 2006-05-17  Miguel de Icaza  <miguel@novell.com>
4413
4414         * class.c (mono_class_get_exception_for_failure): Implement parts
4415         of a TODO: if the loader error is set (instead of the class
4416         error), we return a Loader exception that can be properly thrown
4417         elsewhere.
4418
4419         This was exposed by some Winforms 2.0 code that I tried to run
4420         (Atsushi pointed me to it).
4421
4422 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
4423
4424         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
4425         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
4426         
4427         * marshal.c (emit_marshal_vtype): Add limited support for 
4428         UnmanagedType.LPStruct. Fixes #78427.
4429
4430         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
4431         Applied a patch from kangaroo to fix #77523.
4432
4433 2006-05-17  Martin Baulig  <martin@ximian.com>
4434
4435         * threads.c
4436         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
4437         (debugger_thread_created): Removed.
4438         (debugger_thread_exited): Removed.
4439
4440 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
4441
4442         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4443
4444         * object-internals.h (MonoReflectionResource): Sync with managed version.
4445
4446 2006-05-12  Wade Berrier <wberrier@novell.com>
4447
4448         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
4449
4450 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
4451
4452         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
4453         functions try to allocate from the image mempool.
4454
4455 2006-05-12  Dick Porter  <dick@ximian.com>
4456
4457         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
4458
4459 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
4460
4461         * object.c: The FieldGetter and FieldSetter methods require the full
4462         name of the class, not only the name. Fixes bug #78277.
4463
4464 2006-05-11  Miguel de Icaza  <miguel@novell.com>
4465
4466         * loader.c (method_from_memberref): Do not pass the NULL klass to
4467         mono_loader_set_error_() methods.  Pass the non-NULL value
4468         (class). 
4469
4470 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
4471
4472         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
4473         (mono_assembly_close): Null out assembly->image->references after freeing it.
4474
4475         * image.c (mono_image_close): Free image->references.
4476         
4477         * reflection.c (mono_image_basic_init): Fix a small memory leak.
4478
4479 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4480
4481         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
4482         before checking if it's NULL (g_assert).
4483
4484 2006-05-10  Martin Baulig  <martin@ximian.com>
4485
4486         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
4487         I thought I already killed that two months ago, but now it somehow reappeared.
4488
4489 2006-05-10  Martin Baulig  <martin@ximian.com>
4490
4491         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
4492
4493 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
4494
4495         * reflection.c: Allocate memory for dynamically created methods in the image
4496         mempools.
4497
4498 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
4499
4500         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
4501         don't use the ad pointer before checking if it's NULL (g_assert).
4502
4503 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
4504
4505         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
4506         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
4507
4508         * marshal.c: Allocate all signatures from mempools.
4509
4510         * marshal.c: Allocate some more signatures from mempools.
4511
4512 2006-05-09  Miguel de Icaza  <miguel@novell.com>
4513
4514         * object.c (mono_load_remote_field): The code used to provide a
4515         temporary variable for returning results if the user did not
4516         provide a result pointer.  But our temporary variable was allocted
4517         on the satck.
4518
4519         Fix calling code to always pass a result area.   Coverity ID 103.
4520
4521 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
4522
4523         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
4524         value, not the old. Fixes #78312.
4525         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
4526
4527         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
4528         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
4529         per-image cache.
4530
4531         * assembly.c (mono_assembly_close): Free image->references.
4532
4533         * assembly.c (mono_assembly_names_equal): Fix a warning.
4534         (mono_assemblies_cleanup): Cleanup more global data.
4535
4536         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
4537
4538         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
4539         ptr_cache and image->modules.
4540
4541         * image.c (mono_image_init): Allocate array_cache lazily.
4542         
4543 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4544
4545         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
4546         behavior was changed recently and has bad side effects.
4547
4548 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
4549
4550         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
4551         
4552         * assembly.c (mono_assembly_close): Remove a debug printf.
4553
4554         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
4555
4556         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
4557         to also allow for temporary references between mono_image_open ()/close ().
4558
4559         * domain.c (get_runtimes_from_exe): Add a FIXME.        
4560
4561 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
4562
4563         * marshal.c: Fix support for dynamic methods.
4564
4565         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
4566
4567         * marshal.c (mono_marshal_cleanup): New cleanup function.
4568
4569         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
4570         image mempools.
4571
4572         * class.c (mono_class_init): Fix leaking class->nested_classes.
4573
4574         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
4575
4576         * image.c (mono_image_init): Initialize the new cashes.
4577
4578         * image.c (mono_image_close): Destroy the new cashes.
4579
4580         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
4581
4582         * mempool.c (mono_mempool_strdup): New helper function.
4583
4584         * class-internals.h: Add prototype for mono_loader_unlock ().
4585
4586         * domain.c (mono_jit_info_table_find): Fix a warning.
4587         (mono_debugger_check_runtime_version): Ditto.
4588
4589         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
4590         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
4591         functions to these modules.
4592
4593         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
4594         metadata modules.
4595         
4596         * marshal.c (mono_free_bstr): Fix a warning.
4597
4598         * assembly.c (mono_assembly_open_full): Fix another small leak.
4599
4600         * object.c: Fix some unload leaks in the remoting code.
4601
4602         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
4603         function.
4604
4605         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
4606
4607         * reflection.c: Fix some unload leaks in dynamic assemblies.
4608
4609 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
4610
4611         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
4612         * marshal.h: Add BSTR support on Win32
4613         * icall.c: Add BSTR icalls
4614         * metadata.h: Add BSTR enums
4615
4616 2006-04-28  Miguel de Icaza  <miguel@novell.com>
4617
4618         Work to catch the crash from #76795 and turn it into an
4619         exception.   As I stubbed out pieces of the VisualBasic support,
4620         I found a number of places where the code was failing and I added
4621         checks to those places. 
4622         
4623         * metadata.c (do_mono_metadata_parse_generic_class): Make this
4624         function return a status code.  If we fail to parse the signature
4625         from mono_metadata_parse_generic_inst, return FALSE.
4626
4627         * loader.c (mono_get_method_from_token): If we fail to load the
4628         method (mono_class_get) return NULL.   
4629
4630         * (method_from_memberref): Return NULL if we are unable to parse
4631         the method signature
4632
4633         (mono_loader_error_prepare_exception): Since we now use the
4634         loader_error flag internally to stop processing, and obtaining
4635         exceptions that might be thrown will walk this code path the
4636         proper way of going from a MonoLoaderError into a
4637         MonoException was convoluted.   This new routine encapsulates the
4638         process of turning the error into an exception and *clearing* the
4639         error afterwards.
4640         
4641 2006-04-27  Miguel de Icaza  <miguel@novell.com>
4642
4643         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
4644         with missing assemblies), and to cope with:
4645
4646                 * Missing fieldref from a non-existing assembly.
4647                 * Missing methodref from a non-existing assembly.
4648
4649         The first batch of work to address *some* of the issues from 76661.
4650         
4651         * object.c (mono_class_create_runtime_vtable): If we fail to
4652         initialize the class raise the exception here. 
4653
4654         * metadata.c (mono_class_get_overrides_full): If any methods fail
4655         to load return the failure to the caller.
4656
4657         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
4658         flagging assemblies that failed to load.   
4659
4660         Do not crash if we are unable to load the assembly.
4661
4662         (mono_assembly_close): Do nothing with REFERENCE_MISSING
4663         assemblies. 
4664
4665         * loader.c (mono_loader_set_error_type_load): Change the
4666         convention to always pass unallocated strings, so we make our own
4667         copies (I know our own code had duplicated strings before, but
4668         this keeps the normal conventions).
4669         (method_from_memberref): Call mono_loader_set_error_method_load
4670         for all possible failures of loading the class. 
4671         Remove assert, turn into a loader error.
4672
4673         (mono_loader_error_to_exception): Move this routine from mini
4674         (mini_loader_error_to_exception) there was no need to have that in
4675         mini. 
4676
4677         * class.c (mono_class_from_typeref): If we were not able to load
4678         the assembly with mono_assembly_load_reference, call the
4679         mono_loader_set_error_type_load to register the problem.
4680
4681         (mono_class_setup_fields): If we fail to load the type from
4682         mono_metadata_parse_type_full, call mono_class_set_failure and
4683         break from the loop.
4684
4685         If class->exception_type is set, we do not layout the fields as
4686         that might crash the runtime, and instead return (from breaking
4687         from the previous loop).
4688
4689         (mono_class_setup_vtable): This now returns a boolean indicating
4690         whether the table was properly setup.   The decision is driven by
4691         mono_class_get_overrides_full which might run into non-existing
4692         methods. 
4693         
4694         (mono_class_init): Returns TRUE on success or FALSE if there was a
4695         problem in loading the type (incorrect assemblies, missing
4696         assemblies, methods, etc).
4697
4698         When we call mono_class_setup_fields we also check for a potential
4699         error inside this call (either a class exception or a general
4700         loader exception).
4701
4702         (mono_class_create_from_typedef): If the parent fails to load
4703         (calling mono_class_get_full) return NULL.
4704         
4705         ** Important **
4706
4707         calls to mono_metadata_parse_type_full should be checked
4708         everywhere and set the mono_class_set_failure
4709         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
4710
4711         The current patch checks the places where my manually constructed
4712         tests show the errors are showing up, but we should do it
4713         everywhere. 
4714
4715         ** Important2 **
4716
4717         mono_class_init return values should be tested everywhere, like
4718         the previous case this is something that we should audit
4719         everywhere and not only on the cases exposed by the tests I
4720         created. 
4721
4722 2006-04-26  Miguel de Icaza  <miguel@novell.com>
4723
4724         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
4725         boolean parameter and instead pass the information on `options'
4726         parameter (FileOptions).
4727
4728         * icall.c: Register the new signature for MonoIO.Open.
4729
4730         * debug-helpers.c (dis_one): Trying to understand how coverity
4731         works.  Fix Run 5, item 78.
4732
4733 2006-04-26  Dick Porter  <dick@ximian.com>
4734
4735         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
4736         dereference.
4737
4738 2006-04-25  Martin Baulig  <martin@ximian.com>
4739
4740         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
4741
4742         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
4743         debugger_thread_created().
4744         (debugger_gc_push_all_stacks): Don't handle the main thread in any
4745         special way.
4746         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
4747         (mono_debugger_finalize_threads): New function; undo the effects
4748         of mono_debugger_init_threads().
4749         (mono_debugger_create_all_threads): Removed.
4750
4751 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
4752
4753         * image.c (mono_image_close): Tidy up trace messages.
4754
4755         * assembly.c (mono_assembly_close): Ditto.
4756
4757         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
4758         no longer references an already freed assembly. Fixes #78168.
4759
4760 2006-04-21  Dick Porter  <dick@ximian.com>
4761
4762         * threads.c (mono_thread_detach): Fix reference counting when
4763         detaching threads.
4764
4765 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
4766
4767         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
4768         #78155.
4769
4770 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
4771
4772         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
4773         (mono_type_to_stind): Ditto.
4774
4775         * marshal.c: Use the new helper functions to simplify code.
4776
4777         * image.c (mono_image_close): Add some code for help debug assembly unloading
4778         problems.
4779
4780         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
4781         image mempool.
4782
4783         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
4784         assembly was already loaded in another appdomain. Fixes #78083.
4785
4786 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
4787
4788         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
4789         referenced assemblies.
4790         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
4791
4792         * domain.c (mono_domain_free): Add a trace message.
4793
4794         * appdomain.c (add_assemblies_to_domain): Ditto.        
4795
4796         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
4797         field.  
4798
4799 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4800
4801         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
4802
4803 2006-04-12  Martin Baulig  <martin@ximian.com>
4804
4805         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
4806         `USE_INCLUDED_LIBGC'.   
4807
4808 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
4809
4810         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
4811         the patch contains ../ and a small directory name later. Hopefully fixes
4812         #78035.
4813
4814 2006-04-10  Martin Baulig  <martin@ximian.com>
4815
4816         Clean up the debugger's thread-handling code.
4817
4818         The debugger's thread-handling code has been moved from
4819         ../mini/debug-debugger.c to threads.c.  We now iterate directly
4820         over the `threads' hash, keep track of exiting threads and also
4821         use proper locking.
4822
4823         We can now debug XSP and XSP based applications with the debugger.
4824
4825         * object-internals.h (MonoThread): Added `gpointer end_stack'.
4826
4827         * threads.h
4828         (MonoThreadCallbacks): Removed; this was only used by the debugger.
4829         (mono_install_thread_callbacks): Likewise.      
4830
4831         * threads.c (mono_thread_callbacks): Removed.
4832         (debugger_thread_created, debugger_thread_exited): New static functions.
4833         (start_wrapper): Call debugger_thread_created().
4834         (thread_cleanup): Call debugger_thread_exited().
4835         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
4836         (mono_debugger_init_threads): New public function.
4837         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
4838         iterate directly over the `threads' hash and also use proper locking.
4839
4840         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
4841
4842         * mono-debug-debugger.h
4843         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
4844
4845 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
4846
4847         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
4848         argument type=array. Fixes #78057.
4849
4850 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
4851
4852         * culture-info-table.h : regenerated. Fixed bug #69652.
4853
4854 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
4855
4856         * loader.c metadata.c: Reapply a variant r59116.
4857         
4858         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
4859
4860         * class.c (mono_class_setup_interface_offsets): New internal function.
4861
4862         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
4863         interfaces too. Fixes #77398.
4864
4865         * reflection.c (encode_cattr_value): Add support for 
4866         parameter type=object, argument type=array.
4867         (load_cattr_value): Ditto. Fixes #77916.
4868
4869         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
4870         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
4871
4872         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
4873         a byval char array and CharSet is Ansi.
4874
4875         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
4876
4877 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
4878
4879         * metadata.c: Add some locking comments.
4880         
4881         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
4882         mempool.
4883         (mono_metadata_free_method_signature): Don't free the signature itself.
4884
4885         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
4886
4887         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
4888         reference the same MonoImage.
4889         (mono_assembly_load_from_full): Add an assert.
4890
4891 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
4892
4893         * image.c (mono_image_close): Don't put the image we are about to free into the
4894         loaded_images_guid_hash.
4895
4896         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
4897         to reduce code duplication.
4898
4899         * marshal.c: Register the native functions called by this module as icalls, to
4900         somewhat centralize the creation of MonoMethodSignature's.
4901
4902         * loader.c (mono_method_signature): Add a cache for method signatures.
4903
4904         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
4905         the parameter attributes of a method.
4906         (mono_metadata_parse_method_signature_full): Refactored the computation of
4907         parameter attributes into a separate function. Also avoid one allocation in
4908         most cases.
4909
4910         * assembly.c (mono_assembly_close): Ditto.
4911
4912         * image.c (mono_image_close): Log trace messages with INFO level.
4913
4914         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
4915
4916         * image.c reflection.c: Correct reference counting of image modules.
4917         
4918         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
4919         of this function from the image mempool.
4920         
4921         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
4922         to allow more cached types to be used.
4923
4924         * mono-debug.c (mono_debug_add_method): Appled patch from
4925         David S. Miller  <davem@sunset.davemloft.net>: Access 
4926         minfo->lexical_blocks[] entry elements using read32().
4927
4928 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
4929
4930         * loader.c (mono_free_method): No longer free the method header for non-dynamic
4931         methods as it is allocated from the mempool.
4932
4933         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
4934         image mempool.
4935
4936         * metadata-internals.h: Add comments describing the reference counting scheme
4937         used for MonoImage and MonoAssembly.
4938
4939         * image.c assembly.c reflection.c: Rework reference counting of images and 
4940         assemblies so they are freed when the runtime is shut down. Free some 
4941         additional memory structures when an image is unloaded.
4942         
4943 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
4944
4945         * class.c loader.c reflection.c: Allocate more data structures in
4946         the image mempool.
4947
4948 2006-03-31  Miguel de Icaza  <miguel@novell.com>
4949
4950         * icall.c
4951         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
4952         build on pre glib 2.4 systems.
4953
4954 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
4955
4956         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
4957
4958         * icall.c: Fix some warnings.
4959
4960 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
4961
4962         * culture-info-table.h : regenerated.
4963
4964 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
4965
4966         * threads.c, object-internals.h, verify.c: changed the culture caching
4967         code to use a normal MonoArray for storage so the GC can keep track of
4968         them easily. Fixed bits of the cache logic, too and simplified the
4969         code.
4970
4971 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
4972
4973         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
4974         thread for non-Boehm GCs.
4975
4976 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
4977
4978         * domain.c, object.c, domain-internals.h: reduce the amount of memory
4979         needed to keep track of the data for static fields.
4980
4981 2006-03-29  Raja R Harinath  <rharinath@novell.com>
4982
4983         Fix #75172
4984         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
4985         for interface classes.  Use 'num_methods' instead.
4986         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
4987         before using '->vtable_size' field.
4988
4989 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
4990
4991         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
4992         doesn't contain managed pointers, so use a normal hashtable.
4993
4994 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
4995
4996         * reflection.c, class-internals.h, domain.c: fixed handling of types
4997         used as values for objects in custom attributes (bug #77915):
4998
4999 2006-03-24  Martin Baulig  <martin@ximian.com>
5000
5001         * class.c (mono_class_setup_fields): Added support for generic
5002         instances; fixes #77580.
5003
5004 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5005
5006         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
5007
5008 2006-03-24  Dick Porter  <dick@ximian.com>
5009
5010         * file-io.c (get_file_attributes): More stat macro breakage.
5011         Fixes bug 77759.
5012
5013 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
5014
5015         * profiler.c: added the file=filename option in the default profiler
5016         to output the profile data to filename.
5017
5018 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5019
5020         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
5021         bug #77877.
5022
5023 2006-03-22  Martin Baulig  <martin@ximian.com>
5024
5025         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
5026         allocated `MonoClassField *' in `fb->handle'.
5027
5028 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
5029
5030         * class.c, image.c, metadata-internals.h: implemented new mechanism to
5031         allocate interface ID to save memory and allow better ID reuse on
5032         appdomain unload. setup_generic_vtable () removal from Martin.
5033
5034 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5035
5036         * object.h, appdomain.c, domain.c, exception.c, icall.c,
5037         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
5038         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
5039         write barriers for reference stores with managed objects accessed with
5040         C structures in the runtime and in embedding programs.
5041
5042 2006-03-20  Raja R Harinath  <rharinath@novell.com>
5043
5044         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
5045         'interface_id' and 'max_interface_id' fields of MonoClasses
5046         representing open generic types.
5047
5048 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
5049
5050         * object.h, object.c, icall.c: added functions to deal with
5051         storing valuetypes that contain references in managed objects.
5052         * reflection.c, string-icalls.c, threads.c, marshal.c: small
5053         fixes and comments around uses of mono_array_addr ().
5054
5055 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
5056
5057         * object.h, icall.c, monitor.c: object.GetHashCode ()
5058         implementation that supports the moving garbage collector.
5059
5060 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
5061
5062         * icall.c, threads-types.h, threads.c: implemented finalizer for
5063         LocalDataStoreSlot.
5064
5065 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
5066
5067         * metadata.c (mono_type_size): Add a fixme.
5068         (mono_type_stack_size): Ditto.
5069
5070         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
5071         'type_forwarders' field.
5072
5073         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
5074         attribute from net 2.0.
5075
5076         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
5077         from class.c.
5078
5079         * class.c (mono_class_setup_fields): Fix a warning.
5080         
5081         * class.c (mono_class_from_name): Add support for assemblyref entries
5082         in the EXPORTEDTYPE table.
5083
5084         * reflection.c: Add support for handling type forwarders under net 2.0.
5085
5086         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
5087         
5088 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
5089
5090         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
5091         overwriting entries in ModuleBuild->types, also clean up the code
5092         a little. Fixes #77774.
5093
5094 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
5095
5096         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
5097         load friend assembly info when present.
5098
5099 2006-03-14  Raja R Harinath  <rharinath@novell.com>
5100
5101         Fix crasher on gtest-158.cs.
5102         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
5103         the return value if the MonoClass we want is yet in an
5104         inconsistent state.
5105         * class.c (mono_class_create_from_typedef): Add an comment
5106         explaining an order dependency between mono_class_setup_parent and
5107         mono_class_setup_mono_type.
5108
5109 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
5110
5111         * class.c: documentation updates and events bug fix.
5112
5113 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
5114
5115         * class.c: some cleanup, locking fixes.
5116
5117 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
5118
5119         * class.c: fix the generics code to setup nested
5120         type info to the instantiated type (bug #77770).
5121
5122 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
5123
5124         * marshal.c: fixed a few type correctness issues.
5125
5126 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5127
5128         * loader.c: the Set/Get/Addrtess array methods should be public.
5129
5130 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
5131
5132         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
5133         
5134         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
5135         info->wrapper.
5136
5137 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
5138
5139         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
5140
5141         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
5142
5143         * mempool.c (mono_mempool_alloc): Speed this up a bit.
5144         (mono_mempool_alloc0): Ditto.
5145
5146 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5147
5148         * socket-io.c:
5149         (create_object_from_sockaddr): it was allocating 4 extra bytes
5150         for the AF_UNIX data. Fixes bug #77747.
5151
5152 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
5153
5154         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
5155
5156 2006-03-09  Dick Porter  <dick@ximian.com>
5157
5158         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
5159         Fixes bug 76966 again.
5160
5161 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
5162
5163         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
5164         names from r57532
5165         * appdomain.c: Bumped corlib version to 48 (due to r57532)
5166
5167 2006-03-07  Martin Baulig  <martin@ximian.com>
5168
5169         * object.c
5170         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
5171
5172 2006-03-07  Martin Baulig  <martin@ximian.com>
5173
5174         * class.c
5175         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
5176         regression introduced in r56970; see gtest-252.cs.
5177
5178         * loader.c (mono_get_method_constrained): Correctly handle generic
5179         methods; see gtest-253.cs.
5180
5181 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
5182
5183         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
5184
5185 2006-03-04  Martin Baulig  <martin@ximian.com>
5186
5187         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
5188         compute the parent type at runtime, just like we're already doing
5189         it for interfaces.
5190
5191         * reflection.c
5192         (mono_reflection_bind_generic_parameters): Don't compute the
5193         parent type anymore.
5194
5195         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
5196
5197 2006-03-04  Martin Baulig  <martin@ximian.com>
5198
5199         * mono-debug-debugger.h
5200         (mono_debugger_create_notification_function): Allocate memory at
5201         runtime and return a pointer to it.
5202
5203 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
5204
5205         * assembly.c: Fix windows build.
5206         
5207         * assembly.c: Fix build.
5208
5209         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
5210
5211         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
5212         
5213 2006-03-03  Dick Porter  <dick@ximian.com>
5214
5215         * process.c
5216         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5217         Check parameters before dereferencing them.  Fixes Aaron's part of
5218         bug 77393.
5219
5220 2006-03-03  Raja R Harinath  <rharinath@novell.com>
5221
5222         Fix performance regression.
5223         * loader.c (find_method_in_class): Add 'from_class' argument.
5224         Rename 'klass' argument to 'in_class'.  The signature is compared
5225         against the method in 'in_class', and the corresponding method is
5226         returned from 'from_class'.
5227         (find_method): Walk both 'in_class' and 'from_class' in parallel.
5228         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
5229         type definition and generic instantiation in parallel.
5230         (mono_get_method_constrained): Update to changes.
5231
5232 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
5233
5234         * threads.c: make sure the domain is correct, too when doing
5235         mono_thread_attach ().
5236
5237 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
5238
5239         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
5240         windows. Fixes #77683.
5241
5242 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
5243
5244         * object.h, *: introduced specific way to set elements of an array
5245         of references to be used as write barrier. Still need to audit the
5246         uses of mono_array_addr.
5247
5248 2006-03-01  Miguel de Icaza  <miguel@novell.com>
5249
5250         * object-internals.h: New field to cache the assmebly name, patch
5251         from Tambet Ingo (tambet@ximian.com)
5252
5253 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
5254
5255         * decimal.h, class-internals.h, metadata-internals.h,
5256         file-io.h: mark a few function declarations as internal, to
5257         reduce the number of PLT entries.
5258
5259 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5260
5261         * file-io.c: fix typo in warning message.
5262
5263 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
5264
5265         * loader.c: on unix, lookup the "*A" version of a function
5266         if charset is auto as a second option before failing.
5267
5268 2006-02-28  Raja R Harinath  <rharinath@novell.com>
5269
5270         * class.h (mono_class_inflate_generic_method): Revert to two
5271         argument version.
5272         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
5273         (mono_class_inflate_generic_method_full): Add.
5274         * class.c (mono_class_inflate_generic_method_full): Rename from
5275         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
5276         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
5277         * loader.c, reflection.c: Update to changes.
5278
5279 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
5280
5281         * icall.c: const fixes and small improvements.
5282
5283 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5284
5285         * threadpool.c: for asynchronous connect(), enable the same workaround
5286         for BSD 6 as for the Mac. Fixes bug #77637.
5287
5288 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
5289
5290         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
5291         formatted classes. Fixes #77524.
5292
5293 2006-02-24  Raja R Harinath  <rharinath@novell.com>
5294
5295         * class.c (inflate_generic_type): Add a couple more
5296         micro-optimizations.
5297         (inflate_generic_context): Don't use the 'gmethod' from
5298         'inflate_with'.
5299         (mono_class_inflate_generic_method): If the method has generic
5300         parameters, but the passed-in context doesn't have a 'gmethod',
5301         create one.  Use the possibly simplified generic instantiation
5302         from the declaring class instead of the one passed in.
5303
5304 2006-02-24  Raja R Harinath  <harinath@gmail.com>
5305
5306         Make generic method signature and method header handling lazy.
5307         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
5308         (inflate_generic_header): Likewise.
5309         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
5310         parameter to avoid inflating types.
5311         (mono_get_inflated_method): Empty out.
5312         * class.h (mono_class_inflate_generic_method): Update to changes.
5313         * loader.c (mono_get_method_from_token): Don't parse signature for
5314         generic methods, nor methods of generic classes.
5315         (mono_method_signature): Rename from 'mono_method_signature'.
5316         Inflate signature on demand.
5317         (mono_method_get_header): Inflate method header on demand.
5318         * reflection.c: Update to changes.
5319
5320 2006-02-23  Raja R Harinath  <rharinath@novell.com>
5321
5322         * metadata.c (mono_metadata_inflate_generic_inst): If the
5323         instantiation is closed, don't bother expanding it in the new
5324         context.
5325         * class.c (inflate_generic_class): If the generic instantiation
5326         doesn't change after inflation, return the argument itself.
5327         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
5328         Add bounds checks.
5329         (inflate_generic_context): If neither the generic class nor the
5330         generic method instantiations change, return the original context.
5331         * reflection.c (mono_method_get_object): Do
5332         'mono_get_inflated_method' before accessing the ->klass field.
5333         (inflate_mono_method): Don't create a MonoGenericMethod unless
5334         necessary.
5335         (inflate_method): Don't pass a constructed type as the declaring
5336         type of a methodbuilder.
5337
5338 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
5339
5340         * object.c: fix memory overwrite.
5341
5342 2006-02-22  Dick Porter  <dick@ximian.com>
5343
5344         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
5345         it doesn't work any more.
5346         (mono_threads_request_thread_dump): Fix unused variable warnings.
5347
5348 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
5349
5350         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
5351         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
5352         the public header file.
5353
5354 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
5355
5356         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
5357
5358 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
5359
5360         * class-internals.h, object.c: reduce the size of MonoVTable
5361         and store the interface_offsets array at negative offsets.
5362
5363 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
5364
5365         * metadata.c: tweak table descriptors data structures to reduce
5366         size and runtime relocations.
5367
5368 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5369
5370         * marshal.c: fix some types and opcodes to be type-safe
5371         in marshaling wrappers.
5372
5373 2006-02-21  Ankit Jain  <jankit@novell.com>
5374
5375         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
5376
5377 2006-02-21  Raja R Harinath  <rharinath@novell.com>
5378
5379         * metadata.c (get_constraints): Relax debugging checks for monodis.
5380
5381 2006-02-21  Ankit Jain  <jankit@novell.com>
5382
5383         * metadata.c (mono_metadata_load_generic_params): Move the code
5384         checking for ambiguous generic params from here to mono/dis/get.c
5385         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
5386
5387 2006-02-21  Raja R Harinath  <harinath@gmail.com>
5388
5389         Fix assertion triggered when compiling nemerle.
5390         * class.c (mono_get_shared_generic_inst): Rename from
5391         get_shared_inst and make non-static.
5392         * loader.c (mono_get_shared_generic_method): New.  Used to create
5393         the MonoGenericContext-equivalent of a MonoGenericContainer.
5394         (mono_get_method_from_token): Initialize the 'context' field of
5395         the created MonoGenericContainer.
5396         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
5397         * metadata.c (get_constraints): Add sanity check.
5398         * class-internals.h: Add new internal methods.
5399
5400         * reflection.c (verify_safe_for_managed_space): New sanity check.
5401         Currently checks that owner-less generic parameters aren't allowed
5402         in managed space.
5403         (mono_type_get_object): Use it.
5404         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
5405         that are now in mono_type_get_object.
5406         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
5407
5408 2006-02-19  Raja R Harinath  <harinath@gmail.com>
5409
5410         * metadata.c (mono_type_create_from_typespec): Rename from
5411         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
5412         argument and caching of types in the generic container.
5413         (unwrap_arrays, find_generic_param): Remove.
5414         * metadata-internals.h: Update.
5415         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
5416
5417 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
5418
5419         * class.c (mono_class_get_exception_for_failure): Fix a warning.
5420
5421         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
5422         return values. Fixes #77581.
5423
5424         * class.c (mono_fnptr_class_get): Switch name and name_space.
5425
5426         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
5427         classes and add support for [In, Out] attributes.
5428         (mono_marshal_free_asany): Ditto. Fixes #77524.
5429
5430 2006-02-18  Raja R Harinath  <harinath@gmail.com>
5431
5432         * class.c (mono_class_from_generic_parameter): Make more robust to
5433         incomplete MonoGenericContainers from monodis.
5434
5435 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5436
5437         * class-internals.h: added some more exception types.
5438         * class.c, metadata.c: added a few checks to handle missing
5439         types.
5440
5441 2006-02-17  Raja R Harinath  <rharinath@novell.com>
5442
5443         Use owner-less generic-params some more.
5444         * class.c (my_mono_class_from_generic_parameter): Remove.
5445         (mono_class_from_generic_parameter): Handle null image,
5446         param->name and param->owner.
5447         (mono_class_from_mono_type): Update.
5448         (mono_class_create_from_typespec): Remove 'container' parameter.
5449         If that parameter is non-null, the result is always inflated by
5450         'mono_class_get_full' anyway.
5451         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
5452         parameter.
5453         (mono_class_get_full): Update.
5454
5455         * class.c (inflate_generic_type) [GENERICINST]: If the generic
5456         instance is not open, don't bother inflating.
5457         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
5458         parse metadata for inflated classes.
5459         (_mono_class_get): Change GenericContext* parameter to
5460         GenericContainer*.
5461         (mono_class_create_from_typespec): Likewise.  Simplify, and
5462         implement trivially.  All the cases are handled in
5463         mono_class_from_mono_type.  Don't inflate returned class.
5464         (mono_class_get_full): Delegate GENERICINST optimization to
5465         inflate_generic_type.
5466         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
5467
5468 2006-02-16  Dick Porter  <dick@ximian.com>
5469
5470         * socket-io.c (create_object_from_sockaddr): Fix typo.
5471         (create_sockaddr_from_object): Check array lengths before
5472         potentially accessing items off the end.
5473         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
5474         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
5475         (ves_icall_System_Net_Sockets_Socket_Send_internal)
5476         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
5477         length checks to avoid wraparound overflows.
5478         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
5479         contents of the array of sockets
5480         (hostent_to_IPHostEntry2)
5481         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
5482         Check return value of inet_ntop ().
5483         (addrinfo_to_IPHostEntry): Fix typo
5484
5485 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5486
5487         Type metadata parsing doesn't use generic-instantiation information.
5488         * metadata.c (mono_metadata_parse_array_full): Change
5489         MonoGenericContext* parameter to MonoGenericContainer*.
5490         (mono_metadata_parse_type_full): Likewise.
5491         (mono_type_create_from_typespec_full): Likewise.
5492         (mono_metadata_parse_mh_full): Likewise.
5493         (mono_metadata_parse_generic_inst): Likewise.
5494         (do_mono_metadata_parse_generic_class): Likewise.
5495         (do_mono_metadata_parse_type): Likewise.
5496         * metadata-internals.h: Update to changes.
5497         * class.c (mono_class_find_enum_basetype): Likewise.
5498         (mono_class_setup_fields): Likewise.
5499         (mono_class_create_from_typespec): Likewise.
5500         * loader.c (method_from_methodspec): Likewise.
5501         (mono_get_method_from_token): Likewise.
5502         (mono_method_get_header): Likewise.
5503
5504 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
5505
5506         * marshal.c: handle additional GENERICINST case (patch from
5507         Thong Nguyen <tum@veridicus.com>).
5508         Fix a few cases where LDIND_I/STIND_I was used for references.
5509
5510 2006-02-16  Raja R Harinath  <rharinath@novell.com>
5511
5512         * reflection.c (mono_reflection_get_token): Remove unused variable.
5513
5514 2006-02-16  Martin Baulig  <martin@ximian.com>
5515
5516         * reflection.c (mono_reflection_get_token): Add support for fields
5517         in instantiated generic types.
5518
5519         * icall.c
5520         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
5521
5522 2006-02-15  Martin Baulig  <martin@ximian.com>
5523
5524         * icall.c
5525         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
5526         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
5527         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
5528         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
5529
5530 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
5531
5532         * class.c, metadata.c, metadata.h, object.c, icall.c,
5533         marshal.c: changed mono_type_get_underlying_type () to do
5534         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
5535         Fixed handling of instantiated generic valuetypes (bug #75479).
5536
5537 2006-02-15  Raja R Harinath  <rharinath@novell.com>
5538
5539         * metadata.c (mono_metadata_decode_signed_value): Simplify.
5540         Delegate to mono_metadata_decode_value, and work on the returned value.
5541
5542         * icall.c (ves_icall_MonoType_GetGenericArguments):
5543         Add consistency check here too.
5544         
5545 2006-02-15  Ankit Jain  <jankit@novell.com>
5546
5547         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
5548         char/short etc.
5549
5550 2006-02-15  Ankit Jain  <jankit@novell.com>
5551
5552         * metadata.c (mono_metadata_decode_signed_value): New function to decode
5553         signed values, used only for representing lower bounds of arrays.
5554         (mono_metadata_parse_array_full): Use new
5555         mono_metadata_decode_signed_value to decode lower bounds.
5556
5557 2006-02-14  Martin Baulig  <martin@ximian.com>
5558
5559         * reflection.c
5560         (mono_reflection_get_token): Support "MonoGenericMethod" and
5561         "MonoGenericCMethod" and allow generic instances / methods.
5562
5563 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
5564
5565         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
5566         to obtain the terminal size using an ioctl.
5567
5568         * object.c (mono_nullable_init): Revert this as nullable reference
5569         types are not valid.
5570         (mono_nullable_box): Ditto.
5571
5572 2006-02-09  Dick Porter  <dick@ximian.com>
5573
5574         * threads.c (mono_thread_detach): Drop a reference to the thread
5575         we're detaching.
5576
5577 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
5578
5579         * object.c (mono_nullable_init): Handle nullable reference types.
5580         (mono_nullable_box): Ditto. Fixes #77446.
5581
5582 2006-02-07  Martin Baulig  <martin@ximian.com>
5583
5584         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
5585
5586 2006-02-07  Ankit Jain  <jankit@novell.com>
5587
5588         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
5589         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
5590         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
5591         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
5592         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
5593         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
5594
5595 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
5596
5597         * class.c (mono_class_create_generic): Set type_token as well.
5598
5599         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
5600         compatible with MS.
5601
5602 2006-02-02  Martin Baulig  <martin@ximian.com>
5603
5604         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
5605         has never been used so far.
5606
5607 2006-02-02  Martin Baulig  <martin@ximian.com>
5608
5609         * mono-debug-debugger.h: Changed comment at the top of this file;
5610         the header is not installed, but it's safe to #include it from
5611         within the JIT.
5612
5613         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
5614         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
5615
5616 2006-02-02  Martin Baulig  <martin@ximian.com>
5617
5618         * mono-debug.h
5619         (MonoSymbolTable): Removed the `metadata_info' field.
5620
5621         * mono-debug.c
5622         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
5623
5624         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5625         (mono_debugger_add_builtin_types): Removed.
5626         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
5627         (mono_debugger_create_notification_function): We now operate on a
5628         pre-allocated area; take a `gpointer' and return `void'.
5629
5630         * mono-debug-debugger.c
5631         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
5632         (mono_debugger_add_builtin_types): Removed.
5633
5634 2006-02-02  Martin Baulig  <martin@ximian.com>
5635
5636         * threads.c (mono_debugger_create_all_threads): New public method.
5637
5638 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
5639
5640         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
5641         breaks on several platforms.
5642
5643 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
5644
5645         * assembly.c: the VS.NET build doesn't supply default values for
5646         MONO_ASSEMBLIES and MONO_CFG_DIR.
5647
5648 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
5649
5650         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
5651         helper function.
5652
5653         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
5654
5655         * loader.c (method_from_memberref): Fix a warning.
5656
5657         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
5658
5659         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
5660         with explicit layout. Fixes #77433.
5661
5662 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
5663
5664         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
5665         max_interface_id is initialized before using it. Fixes #77398.
5666         (ves_icall_Type_GetInterfaces): Ditto.
5667
5668 2006-01-30  Raja R Harinath  <rharinath@novell.com>
5669
5670         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5671         allocate memory for parameter attributes when parsing memberref
5672         signatures.
5673         * loader.c (mono_loader_set_error_method_load): Don't warn.
5674         (method_from_memberref): Ensure MissingMethodException gets thrown
5675         if method is not found.  Make warning more informative.
5676
5677 2006-01-29  Raja R Harinath  <harinath@gmail.com>
5678
5679         Fix #77397
5680         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
5681         return true if is byref.
5682         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
5683         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
5684         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
5685
5686 2006-01-27  Raja R Harinath  <rharinath@novell.com>
5687
5688         Fix tests/find-method.2.il
5689         * loader.c (find_method, find_method_in_class): Remove is_inflated
5690         argument.  Revert 2006-01-18 change.
5691         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
5692         is generic, search for method in its generic definition.
5693         * class.c (mono_class_setup_vtable_general): Print generic
5694         arguments of generic types in debugging printf.
5695
5696 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
5697
5698         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
5699
5700         * threads.c (mono_threads_request_thread_dump): New helper function.
5701
5702 2006-01-25  Raja R Harinath  <rharinath@novell.com>
5703
5704         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
5705
5706 2006-01-25  Ankit Jain  <jankit@novell.com>
5707
5708         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
5709         move definition to ..
5710         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
5711         
5712 2006-01-25  Ankit Jain  <jankit@novell.com>
5713             Raja R Harinath  <rharinath@novell.com>
5714
5715         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
5716         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
5717         as necessary.
5718
5719 2006-01-25  Martin Baulig  <martin@ximian.com>
5720
5721         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
5722         `MonoDebuggerThread' into debug-debugger.c.
5723
5724 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
5725
5726         * profiler.c: fix printing of data.
5727
5728 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
5729
5730         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
5731           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
5732
5733 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
5734
5735         * object.c: fix deadlock related to string interning.
5736
5737 2006-01-23  Martin Baulig  <martin@ximian.com>
5738
5739         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
5740
5741         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
5742
5743 2006-01-23  Martin Baulig  <martin@ximian.com>
5744
5745         * mono-debug.h: Moved the prototypes of some functions which are
5746         used by the JIT here from mono-debug-debugger.h.
5747
5748 2006-01-21  Martin Baulig  <martin@ximian.com>
5749
5750         * Makefile.am: Don't install mono-debug-debugger.h.
5751
5752 2006-01-21  Martin Baulig  <martin@ximian.com>
5753
5754         * mono-debug-debugger.h: Enforce the private status of this header
5755         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
5756         Moved some stuff from mono-debugger-jit-wrapper.h here.
5757
5758 2006-01-20  Raja R Harinath  <rharinath@novell.com>
5759
5760         * class.c (mono_class_from_typeref): Add a sanity test to help
5761         catch lack of assembly load/search hooks.
5762
5763 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
5764
5765         * marshal.c (emit_struct_conv): Relax the fields with same offset
5766         check even more. Fixes #77230.
5767
5768 2006-01-18  Martin Baulig  <martin@ximian.com>
5769
5770         * loader.c (find_method_in_class): Added `gboolean is_inflated'
5771         argument; if false, we compare the uninstantiated signatures.
5772         (method_from_memberref): Compare the uninstantiated signatures;
5773         fixes #76417.
5774
5775 2006-01-18  Robert Jordan  <robertj@gmx.net>
5776
5777         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
5778         Clear the weak link. Fixes bug #77170.
5779
5780         * gc.c (mono_gchandle_free):
5781         Reflect *-gc.c changes (tiny optimization).
5782
5783 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
5784
5785         * metadata.c (mono_metadata_signature_dup): Applied patch from
5786         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
5787         Fixes #77288.
5788
5789 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
5790
5791         * marshal.c (emit_struct_conv): Allow fields with the same offset when
5792         marshalling from native to managed code. Fixes #77230.
5793
5794 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5795
5796         * threadpool.c: fix problem (Mac only) when more than one asynchronous
5797         connect. Fixes bug #77020.
5798
5799 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
5800
5801         * class.c: fixed id assignement for nested interfaces (bug #77275).
5802         Added also better info for --print-vtable debugging.
5803
5804 2006-01-12  Martin Baulig  <martin@ximian.com>
5805
5806         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
5807         interfaces on-the-fly; fixes #76625.
5808
5809         * class-internals.h
5810         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
5811         don't need that anymore.
5812
5813 2006-01-12  Miguel de Icaza  <miguel@novell.com>
5814
5815         * socket-io.c
5816         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
5817         To avoid initing the nested_classes when not needed I turned the
5818         PeerCredData as a toplevel internal class, as it has to be shared
5819         anyways. 
5820
5821         Fixes the CASA issue.
5822
5823 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
5824
5825         * domain.c: Accessors for MonoJitInfo
5826
5827         * profiler-private.h: Add jitinfo to the end jit hook
5828
5829         * profiler.[ch]: Define new hooks, called after jitting which give
5830         the MonoJitInfo that was compiled
5831
5832 2006-01-10  Martin Baulig  <martin@ximian.com>
5833
5834         * class.c (mono_class_setup_events): Add support for generic
5835         classes; fixes #76440.
5836
5837 2006-01-06  Raja R Harinath  <rharinath@novell.com>
5838
5839         Fix #77160.
5840         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
5841         on passed-in method.
5842
5843 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5844
5845         * object.c (mono_runtime_invoke_array): Add Nullable support.
5846
5847         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
5848
5849 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
5850
5851         * file-io.c: Don't consider sockets as directory and avoid an endless
5852         loop. Fix bug #76966.
5853
5854 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
5855
5856         * object.c (mono_nullable_init): New helper function.
5857         (mono_nullable_box): Ditto.
5858
5859         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
5860
5861         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
5862
5863         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
5864         
5865 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
5866
5867         * class.c (mono_class_is_assignable_from): Make T assignable to 
5868         Nullable<T>.
5869
5870 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
5871
5872         * appdomain.c: Bump corlib version to 46.
5873         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
5874         serialization purpose) and changed ves_icall_System_Reflection_
5875         Assembly_get_code_base signature to accept a boolean (to escape, or 
5876         not, the assembly code base).
5877
5878 2005-12-23  Dick Porter  <dick@ximian.com>
5879
5880         * icall.c: 
5881         * threads-types.h: 
5882         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
5883         CreateEvent icall now returns "created" boolean parameter.
5884
5885 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
5886
5887         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
5888         #76967.
5889
5890         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
5891         when attr_klass is an interface. Fixes #77045.
5892
5893 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
5894
5895         * marshal.c (emit_struct_conv): Fix previous patch.
5896         
5897         * marshal.c (emit_struct_conv): Add a check for fields with the same
5898         offset.
5899
5900 2005-12-20  Raja R Harinath  <rharinath@novell.com>
5901
5902         Fix regression in Mono.C5.
5903         * class.c (mono_class_create_generic): If 'klass' is an interface
5904         set up the interface offsets.
5905         (mono_class_is_assignable_from): Don't throw away generic arguments.
5906
5907 2005-12-19  Raja R Harinath  <rharinath@novell.com>
5908
5909         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
5910         type parameters.
5911
5912 2005-12-15  Raja R Harinath  <rharinath@novell.com>
5913
5914         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
5915         dead store.
5916         (do_mono_metadata_parse_generic_class): Don't pass the current
5917         generic context when parsing the type being instantiated: it
5918         cannot use it, anyway.
5919
5920         * loader.c (method_from_memberref): Don't inflate a signature if
5921         it doesn't contain any type parameters.
5922
5923 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
5924
5925         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
5926
5927 2005-12-14  Martin Baulig  <martin@ximian.com>
5928
5929         * class.c
5930         (mono_type_get_name_recurse): Don't return null for type
5931         parameters and open generic classes.
5932         (mono_class_setup_methods): Don't exclude generic instances.
5933         (mono_get_unique_iid): Use different IDs for different
5934         instantiations of the same generic type.
5935         (mono_class_setup_vtable): Only use setup_generic_vtable() for
5936         open generic instances; create a normal vtable for closed generic
5937         instances.
5938         (mono_class_setup_vtable_general): We're now also called for
5939         closed generic instances.
5940
5941         * reflection.c
5942         (mono_reflection_bind_generic_parameters): Correctly use
5943         mono_metadata_lookup_generic_inst() everywhere.
5944
5945 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
5946
5947         * object.c (mono_class_create_runtime_vtable): Call 
5948         mono_class_setup_vtable ().
5949
5950         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
5951         function.
5952         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
5953         #76959.
5954
5955         * loader.c (mono_loader_set_error_type_load): Print the type load
5956         warnings to the console so they are more visible to the user.
5957         (mono_loader_set_error_method_load): Ditto.
5958
5959         * reflection.c (ensure_runtime_vtable): Revert the last change as it
5960         is still broken.
5961         
5962         * reflection.c (ensure_runtime_vtable): Fix build.
5963
5964         * reflection.c (ensure_runtime_vtable): Disable an optimization which
5965         doesn't work in all cases.
5966
5967 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
5968
5969         * object.c (mono_array_new_full): Treat a single dimensional array
5970         with 0 lower bounds as an szarray. Fixes #76973.
5971
5972         * reflection.c (custom_attr_visible): Really fix this.
5973
5974 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
5975
5976         * reflection.c (custom_attr_visible): Allow nested public attributes
5977         as well.
5978
5979         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
5980         interface check.
5981
5982 2005-12-12  Raja R Harinath  <harinath@gmail.com>
5983
5984         * class.c (set_generic_param_owner): Delete.
5985         (mono_class_create_from_typedef): Don't set ->owner field of
5986         generic parameters to "param containers" of enclosing classes.
5987         * reflection.c (mono_reflection_initialize_generic_parameter):
5988         Likewise.
5989
5990 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
5991
5992         * reflection.c (custom_attr_visible): Fix build.
5993
5994 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
5995
5996         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
5997         private attributes.
5998         
5999         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
6000         handling of null parameter defaults.
6001
6002 2005-12-09  Raja R Harinath  <rharinath@novell.com>
6003
6004         * class.c (mono_class_from_generic_parameter): Don't set
6005         klass->generic_container.
6006         (my_mono_class_from_generic_parameter): Likewise.
6007
6008 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
6009
6010         * reflection.c (load_public_key): Fix a warning.
6011         (method_encode_code): Fix unaligned accesses.
6012
6013 2005-12-07  Martin Baulig  <martin@ximian.com>
6014
6015         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
6016
6017         * reflection.c
6018         (write_generic_param_entry): Encode our custom attrs.
6019
6020         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
6021
6022 2005-12-07  Martin Baulig  <martin@ximian.com>
6023
6024         * reflection.c (encode_new_constraint): Removed; we don't use the
6025         `NewConstraintAttribute' anymore.
6026
6027 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
6028
6029         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
6030         not fire a TypeResolve event when Assembly.GetType () is called.
6031
6032 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
6033
6034         Beginning of support for nullable types in the runtime. Parts of
6035         this patch are from Martin.
6036
6037         * appdomain.c (MONO_CORLIB_VERSION): Bump
6038
6039         * domain.c (mono_init_internal): get the nullable type
6040
6041         * class.c (mono_class_is_nullable): New method
6042         (mono_class_get_nullable_param): New mehod
6043         (mono_class_create_generic): In types T? set cast_class to T
6044
6045         * class-internals.h (MonoDefaults): new nullable default class
6046         (mono_class_get_nullable_param, mono_class_get_nullable_param):
6047         new methods.
6048
6049 2005-12-05  Raja R Harinath  <rharinath@novell.com>
6050
6051         * metadata.c (select_container): New.  Refactor code to select the
6052         appropriate GenericContainer given the type of generic parameter
6053         we are looking for.
6054         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
6055         not a MonoGenericContext.  Use select_container.  Update parameters.
6056         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
6057         and MONO_TYPE_MVAR.
6058         (unwrap_arrays): Remove duplicate tests.
6059         (find_generic_param): Rename from 'has_same_context'.  Now walks a
6060         generic instantiated class to find any arguments that are generic
6061         parameters.
6062         (mono_type_create_from_typespec_full): Use find_generic_param to
6063         avoid evicting some generic instantiations from the typespec
6064         cache.
6065
6066 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
6067
6068         * reflection.c: fixed writing of doubles on ARM FPA.
6069
6070 2005-12-02  Robert Jordan  <robertj@gmx.net>
6071
6072         * icall.c: Fixed EventInfo.ReflectedType (#76829).
6073
6074 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6075
6076         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
6077         least on SUSE 10 they are not the same (on debian, they are just the
6078         same thing).
6079
6080 2005-12-01  Raja R Harinath  <rharinath@novell.com>
6081
6082         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
6083         DeclaringType for VARs and MVARs.
6084         * class.c (set_generic_param_owner): Fix initialization of owner
6085         fields.
6086
6087 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
6088
6089         * icall.c: fixed Enum.ToObject() to correctly convert the values.
6090
6091 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6092
6093         * threadpool.c: workaround for a bug that shows up on the Mac:
6094         select()+connect() on a blocking socket is not like it should
6095         be, so we proceed to connect() in that case, wasting the I/O
6096         threadpool thread until connect succeedes. Fixes bug #75436.
6097
6098 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6099
6100         * threadpool.c: fix typo when setting file descriptor states.
6101
6102 2005-11-28  Raja R Harinath  <rharinath@novell.com>
6103
6104         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
6105         * metadata.c (mono_metadata_parse_method_signature_full): Don't
6106         create a temporary signature container.
6107         (mono_metadata_parse_generic_param): Update to changes.
6108         (mono_type_create_from_typespec_full): Update to changes.
6109         * loader.c (method_from_memberref): Don't use a
6110         MonoGenericContainer while parsing a memberref signature.
6111         (method_from_methodspec): Remove dead-store of the 'container'
6112         variable.  It's overwritten before use.
6113
6114         * metadata.c (mono_type_create_from_typespec_full): Make debugging
6115         checks tighter.
6116         (mono_metadata_parse_generic_param): Likewise.
6117         * loader.c (find_method_in_class): Does not need a
6118         MonoGenericContainer.  Use 'mono_method_signature' rather than
6119         'mono_method_signature_full'.
6120         (find_method, mono_get_method_constrained, method_from_memberref):
6121         Update to changes.
6122
6123         * metadata.c (mono_type_create_from_typespec_full): Ensure that
6124         owner-less generic-parameters are never evicted from the typespec
6125         cache.
6126
6127         * loader.c (method_from_memberref): Don't use the current context
6128         when parsing signatures.
6129         (method_from_methodspec, mono_get_method_from_token): Update to changes.
6130
6131         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
6132         side-effects in g_assert.
6133         * loader.c (mono_get_method_from_token): Resolve klass earlier so
6134         that we don't potentially lose information.
6135
6136 2005-11-26  Dick Porter  <dick@ximian.com>
6137
6138         * icall.c:
6139         * threads.c: icalls to implement basic (ie, not named)
6140         System.Threading.Semaphore.
6141
6142 2005-11-24  Dick Porter  <dick@ximian.com>
6143
6144         * process.c
6145         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
6146         Use GetProcessId() if it's available.
6147
6148 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
6149
6150         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
6151
6152 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6153             Ankit Jain  <jankit@novell.com>
6154
6155         * loader.c (mono_get_method_from_token): Initialize 'method' field
6156         of all generic parameters before parsing the signature.  Remove
6157         code that "fixed"-up MVAR references.
6158
6159 2005-11-23  Ankit Jain  <jankit@novell.com>
6160
6161         * metadata.c (mono_metadata_has_generic_params):
6162         (mono_metadata_load_generic_param_constraints):
6163         (mono_metadata_load_generic_params): Move duplicate code ...
6164         (mono_metadata_get_generic_param_row): ... here. Returns the
6165         first row-id in GenericParam table for a given owner (token).
6166         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
6167         prototype.
6168
6169 2005-11-23  Raja R Harinath  <rharinath@novell.com>
6170             Ankit Jain  <jankit@novell.com>
6171
6172         * metadata.c (mono_metadata_class_equal): Pass signature_only when
6173         comparing VARs too.
6174         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
6175         type->data.generic_param only if the type is an MVAR.
6176         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
6177         leak owner-less VARs and MVARs into managed space.
6178
6179 2005-11-21  Martin Baulig  <martin@ximian.com>
6180
6181         * class-internals.h
6182         (MonoMethod): Moved the `generic_container' here from
6183         `MonoMethodNormal' since we now also need it for
6184         `MonoMethodPInvoke';
6185         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
6186         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
6187         an union containing both `MonoMethodNormal' and
6188         `MonoMethodPInvoke'.
6189
6190         * loader.c
6191         (mono_get_method_from_token): Allow implementing generic methods
6192         as interncalls.
6193
6194         * threads.c
6195         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
6196         icall.
6197
6198 2005-11-17  Dick Porter  <dick@ximian.com>
6199
6200         * icall.c: 
6201         * process.h: 
6202         * process.c: Split the Process Start_internal icall into
6203         ShellExecuteEx_internal and CreateProcess_internal, which are
6204         called depending on whether UseShellExecute is true.  Fixes bug
6205         76670.
6206
6207         * appdomain.c (MONO_CORLIB_VERSION): Incremented
6208
6209 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
6210
6211         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
6212         'msize' parameters, use the information in 'mspec' instead.
6213         (emit_object_to_ptr_conv): Ditto.
6214
6215         * marshal.c (emit_struct_conv): Handle explicit layout structs with
6216         fields out of order. Fixes #76733.
6217
6218 2005-11-17  Ankit Jain  <jankit@novell.com>
6219
6220         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
6221
6222 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
6223
6224         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
6225           bug #76575.
6226
6227 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6228
6229         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
6230         for types with non-auto layout. Fixes #76717.
6231
6232 2005-11-16  Ankit Jain  <jankit@novell.com>
6233
6234         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
6235         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
6236         if generic_context is null.
6237           (mono_metadata_generic_param_equal): param->owner can be null.
6238           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
6239         null.
6240
6241 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
6242
6243         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
6244         the correct value.
6245
6246 2005-11-15  Martin Baulig  <martin@ximian.com>
6247
6248         * object.c (set_value): Use mono_class_from_mono_type() instead of
6249         the hack for generic instances; fixes #76136.
6250
6251 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
6252
6253         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
6254         fields.
6255
6256         * image.c (load_metadata_ptrs): Initialize the new fields.
6257
6258         * reflection.c (create_dynamic_mono_image): Ditto.
6259
6260         * reflection.c (build_compressed_metadata): Use the new fields.
6261
6262         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
6263         icall.
6264
6265         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
6266         icall.
6267         
6268 2005-11-15  Ankit Jain  <jankit@novell.com>
6269             Raja R Harinath  <harinath@gmail.com>
6270
6271         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
6272         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
6273         new per-generic_container cache if the cached MonoType's context matches
6274         the current context.
6275           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
6276         to the expected context.
6277           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
6278
6279 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6280
6281         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
6282         we changed the signature of an icall.
6283         * icall.c: Modify to mono_double_ParseImpl return true/false 
6284         depending on the success, instead of throwing the exception. This will
6285         help us in Double.TryParse methods.
6286         
6287 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
6288
6289         * marshal.c (emit_marshal_object): Throw an exception when
6290         marshalling 'object' instead of crashing. Fixes #76696.
6291
6292 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6293
6294         * class-internals.h: Add prototype for mono_type_get_full_name ().
6295
6296 2005-11-11  Dick Porter  <dick@ximian.com>
6297
6298         * threads.c (mono_thread_manage): Make sure the main thread has
6299         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
6300
6301 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
6302
6303         * loader.c (mono_loader_set_error_type_load): Log a warning to the
6304         console about the missing type.
6305         (mono_loader_set_error_method_load): Ditto.
6306
6307 2005-11-09  Miguel de Icaza  <miguel@novell.com>
6308
6309         * mono-config.c (mono_get_config_dir): Set the system defaults if
6310         none is specified.
6311
6312         * assembly.c (mono_set_dirs): New API entry point to set the
6313         assembly and the config directory in one call
6314
6315 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
6316
6317         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
6318         the ftnptr was created from a delegate in a domain other than the
6319         current domain. Fixes #75377.
6320
6321         * exception.h exception.c: Add mono_get_exception_not_supported ().
6322
6323 2005-11-08  Martin Baulig  <martin@ximian.com>
6324
6325         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
6326
6327 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
6328
6329         * security-manager.h: Added definitions to deal with strongname key 
6330         pairs bigger (and smaller) than 1024 bits.
6331         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
6332         adjust wrt the public key length being used.
6333
6334 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6335
6336         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
6337           Windows build (r51396-51397).
6338
6339 2005-11-03  Martin Baulig  <martin@ximian.com>
6340
6341         * class.c (mono_class_setup_vtable_general): Also add generic
6342         methods to the vtable; fixes #76581.
6343
6344 2005-11-01  Miguel de Icaza  <miguel@novell.com>
6345
6346         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
6347         sure that we lookup GetString method from the System.Text.Encoding
6348         class, not the derived class or we get an empty method.
6349
6350         Fixed class #76612.
6351
6352 2005-10-25  Miguel de Icaza  <miguel@novell.com>
6353
6354         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
6355         if it has been previously set (embedders). 
6356
6357         Make mono_set_rootdir available also on Unix.
6358
6359 005-10-24  Robert Jordan  <robertj@gmx.net>
6360
6361         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
6362
6363 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
6364
6365         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
6366         only calls which are made to native code use this flag.
6367
6368         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
6369
6370 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
6371
6372         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
6373         Add support for FieldBuilders.
6374
6375 2005-10-29  Martin Baulig  <martin@ximian.com>
6376
6377         * mono-debug.c
6378         (mono_debug_using_mono_debugger): New public method; returns
6379         whether we're running inside the debugger.
6380
6381 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
6382
6383         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
6384         for Method/Constructor/FieldBuilders.
6385
6386 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
6387
6388         * reflection.c (module_add_cattrs): Save custom attributes for global methods
6389         and fields as well.
6390
6391 2005-10-26  Martin Baulig  <martin@ximian.com>
6392
6393         * mono-debug-debugger.c
6394         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
6395
6396 2005-10-24  Raja R Harinath  <harinath@gmail.com>
6397
6398         * icall.c (base64_to_byte_array): Don't pass an out-of-range
6399         integer to isspace.
6400
6401 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
6402
6403         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
6404         when passing valuetypes byref. Fixes #76502.
6405
6406 2005-10-19  Jackson Harper  <jackson@ximian.com>
6407
6408         * profiler.c: Don't put a . in front of types that are not in a
6409         namespace.
6410
6411 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
6412
6413         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
6414
6415 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
6416
6417         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
6418         #76436.
6419         (mono_marshal_get_ldflda_wrapper): Fix a warning.
6420
6421 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6422
6423         * assembly.c metadata-internals.h icall.c: Define an additional
6424         parameter for mono_assembly_name_parse_full, so we can avoid creating
6425         S.R.AssemblyName.Version when no version info wasn't passed.
6426         
6427 2005-10-09  Miguel de Icaza  <miguel@novell.com>
6428
6429         * class.c (mono_type_get_full_name): Reimplement method that was
6430         removed. 
6431
6432         * image.c: Some docs
6433
6434 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
6435
6436         * profiler.c (output_newobj_profile): Fix printing of Total memory
6437         on x86.
6438
6439 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6440
6441         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
6442
6443 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
6444
6445         * threads.c: remove debug output.
6446
6447 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
6448
6449         * threads.c (mono_thread_manage): Fix crashes if more than 64
6450         threads need to be aborted. Hopefully fixes #75899.
6451
6452         * assembly.c (mono_stringify_assembly_name): New helper function.
6453
6454         * class.c: Use mono_stringify_assembly_name instead of the similar
6455         static function.
6456
6457         * assembly.h assembly.c: Add support for calling a postload search 
6458         hook if an assembly cannot be loaded.
6459
6460         * appdomain.c: Register new search hooks which call the AssemblyResolve
6461         events in AppDomain. Fixes #75231
6462
6463 2005-10-07  Martin Baulig  <martin@ximian.com>
6464
6465         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
6466         methods without debug info.
6467
6468 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
6469
6470         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
6471         wrappers.
6472
6473 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6474
6475         * file-io.c: now that we return symlinks, use lstat and, when the file
6476         is a symbolic link, stat, to get the file attributes. Also avoid the
6477         conversion to/from utf16/external.
6478
6479 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
6480
6481         * class.c (mono_class_layout_fields): Compute klass->has_references
6482         correctly if an embedded valuetype is not yet initialized. Fixes
6483         #76331.
6484
6485 2005-10-04  Martin Baulig  <martin@ximian.com>
6486
6487         * metadata.c
6488         (mono_metadata_load_generic_param_constraints): New public
6489         function; splitted the constraints loading out from
6490         mono_metadata_load_generic_params().
6491
6492         * class.c (mono_class_create_from_typedef): Call
6493         mono_metadata_load_generic_param_constraints() after setting up
6494         the type and creating our parent; fixes #75329.
6495
6496 2005-10-04  Martin Baulig  <martin@ximian.com>
6497
6498         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
6499         non-dynamic parent classes.
6500
6501 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6502
6503         * file-io.c : win32 build fix (ETXTBSY seems not found).
6504
6505 2005-10-04  Martin Baulig  <martin@ximian.com>
6506
6507         * reflection.c
6508         (mono_image_get_methodspec_token): Make the cache actually work;
6509         fixes #75974.
6510
6511 2005-10-04  Martin Baulig  <martin@ximian.com>
6512
6513         * class.c (mono_class_name_from_token): Removed the unneccessary
6514         `MonoGenericContext *' argument.
6515
6516 2005-10-04  Martin Baulig  <martin@ximian.com>
6517
6518         * loader.c
6519         (method_from_methodspec): Make the caching work again; fixes the
6520         performance regression from #76262.
6521
6522 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6523
6524         * file-io.c:
6525         * file-io.h:
6526         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
6527         GetFileSystemEntries that performs the same work but without going
6528         into io-layer, locking, etc.
6529
6530 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
6531
6532         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
6533         ThreadState_Stopped as well. Fixes #76047.
6534
6535 2005-09-29  Martin Baulig  <martin@ximian.com>
6536
6537         * class.c
6538         (inflate_generic_context): If the new context has a `gmethod', set
6539         its `container' that that gmethod's `container'.
6540
6541         * metadata.c
6542         (mono_metadata_parse_generic_param): Simplify things;
6543         `generic_container = generic_context->container;' is just fine.
6544
6545         * loader.c (method_from_methodspec): Code cleanups.
6546
6547 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
6548
6549         * decimal.c: fix warning (and let gcc generate correct
6550         code on ARM with optimizations).
6551
6552 2005-09-28  Martin Baulig  <martin@ximian.com>
6553
6554         * loader.c
6555         (method_from_memberref): Added `MonoGenericContext *class_context'
6556         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
6557         (method_from_methodspec): If we're a memberref, use the enclosing
6558         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
6559
6560 2005-09-28  Martin Baulig  <martin@ximian.com>
6561
6562         * object.c (mono_runtime_invoke_array): Added support for
6563         MONO_TYPE_GENERICINST; fixes #75917.
6564
6565 2005-09-27  Martin Baulig  <martin@ximian.com>
6566
6567         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
6568         `k->byval_arg.type' to determine the actual type.
6569
6570         * loader.c (method_from_methodspec): Removed some hacks.
6571
6572 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
6573
6574         * class-internals.h (mono_field_is_deleted): Do the test for
6575         rtspecialname before we check the actual name of the field. This
6576         prevents us from dereferencing a pointer into the string table,
6577         saving us from accessing a few pages
6578
6579         * *.c: Replace the use of {Enter,Leave}CriticalSection with
6580         macros. This will allow a deadlock debugger to easily be plugged
6581         in.
6582
6583 2005-09-27  Martin Baulig  <martin@ximian.com>
6584
6585         * loader.c (method_from_methodspec): Create a "signature"
6586         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
6587
6588 2005-09-27  Martin Baulig  <martin@ximian.com>
6589
6590         * class.c
6591         (inflate_generic_class): Correctly set the new context's
6592         container.
6593
6594         * loader.c
6595         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
6596         instead of a `MonoGenericContext *'.
6597         (mono_method_signature_full): Take a `MonoGenericContainer *'
6598         instead of a `MonoGenericContext *'.
6599
6600         * metadata.c
6601         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
6602         instead of a `MonoGenericContext *'.
6603         (mono_metadata_parse_method_signature_full): Likewise.
6604
6605 2005-09-26  Martin Baulig  <martin@ximian.com>
6606
6607         * class.c
6608         (mono_class_from_generic_parameter): Set `klass->generic_container'
6609         (mono_class_from_generic_parameter): Likewise.
6610         (mono_bounded_array_class_get): We inherit the generic container
6611         from the element class.
6612
6613         * loader.c
6614         (find_method, find_method_in_class): Take a `MonoGenericContext *'
6615         argument rather than computing it here.
6616         (method_from_memberref): Correctly set the generic context before
6617         parsing the signature.  Fixes #75681.
6618
6619 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
6620
6621         * object.c (mono_class_has_special_static_fields): Fix warnings.
6622
6623 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6624
6625         * assembly.c: Add parse_public_key function, to
6626         par the public keys. Also added mono_assembly_name_parse_full,
6627         to define it the parsed key should be freed or not.
6628         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
6629         to parse a long format assembly name.
6630         * metadata-internals.h: Keep mono_assembly_name_parse_full as
6631         private, since calling it to preserve the key requires
6632         freeing it manually.
6633         
6634 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
6635
6636         * locales.c : removed HAVE_ICU part.
6637
6638 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
6639
6640         * object.c (mono_class_create_runtime_vtable): Avoid calling 
6641         field_is_special_static if the klass has no special static fields.
6642
6643         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
6644         (MonoCachedClassInfo): Likewise.
6645
6646         * object.c (mono_class_has_special_static_fields): New helper function.
6647
6648 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6649
6650         * class.c (mono_class_create_from_typedef): Don't call 
6651         interfaces_from_typedef_full for enums.
6652         (mono_class_create_from_typedef): Compute the base types of enums directly
6653         without calling mono_class_setup_fields ().
6654         (mono_class_find_enum_basetype): New helper function.
6655
6656         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
6657         one place inside the string heap.
6658         
6659 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
6660
6661         * class.c: locking fixes, code cleanups, some docs added.
6662         Allocate some data structures in the image mempool.
6663
6664 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6665
6666         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6667         the example code.
6668         
6669 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
6670
6671         * class-internals.h, class.c, reflection.c: reduce memory taken by
6672         MonoClass.
6673
6674 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
6675
6676         * metadata.c, metadata.h, loader.h: documentation updates, code and
6677         API cleanups.
6678
6679 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
6680
6681         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
6682         the example code.
6683
6684         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
6685         page faults caused by the runtime while reading metadata.
6686
6687 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6688
6689         * socket-io.c: the field names were changed 3 months ago and no one
6690         realized until bug #76077 got filed!
6691
6692 2005-09-20  Martin Baulig  <martin@ximian.com>
6693
6694         * icall.c (assembly_icalls): Removed some unused debugger icalls.
6695
6696 2005-09-20  Martin Baulig  <martin@ximian.com>
6697
6698         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
6699         write the rank into the class entry.
6700
6701 2005-09-20  Martin Baulig  <martin@ximian.com>
6702
6703         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
6704
6705 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
6706
6707         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6708
6709         * icall.c (custom_attrs_defined_internal): New icall.
6710
6711         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
6712         function.
6713         (mono_custom_attrs_construct_by_type): New helper function.
6714
6715 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
6716
6717         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
6718         terminate the resulting string. Fixes #76123.
6719
6720 2005-09-16  Martin Baulig  <martin@ximian.com>
6721
6722         * mono-debug.c
6723         (mono_debug_add_method): Ignore inflated methods for the moment.
6724
6725 2005-09-14  Martin Baulig  <martin@ximian.com>
6726
6727         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
6728
6729 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
6730
6731         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
6732         return a success/failure indication.
6733         (mono_metadata_interfaces_from_typedef_full): Ditto.
6734         (get_constraints): Ditto.
6735
6736 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
6737
6738         * marshal.c (emit_marshal_array): Fix handling of null arrays.
6739         
6740         * marshal.c (emit_marshal_array): Add support for returning string
6741         arrays from delegates. Fixes #76063.
6742
6743         * marshal.c: Use the emit_ldloc/stloc macros where possible.
6744
6745 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
6746
6747         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
6748         icall.
6749
6750 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
6751
6752         * reflection.c icall.c: Fix after mono_get_exception_type_load
6753         signature change.
6754
6755         * assembly.c (mono_assembly_get_assemblyref): New helper function.
6756         (mono_assembly_load_reference): Use the new helper.
6757
6758         * class-internals.h (MonoLoaderError): New structure containing 
6759         information about type loading errors.
6760
6761         * class-internals.h loader.c: Add APIs to store per-thread loader
6762         error information.
6763
6764         * loader.c class.c: Set the loader error if needed.
6765
6766         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
6767
6768 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
6769
6770         * decimal.c: fixed to handle the broken ARM fp format.
6771
6772 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
6773
6774         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
6775         broken.
6776
6777 2005-09-06  Martin Baulig  <martin@ximian.com>
6778
6779         * domain.c (supported_runtimes): Added v2.0.50727.
6780
6781 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
6782
6783         * culture-info.h: reduce the size of some structures.
6784
6785 2005-09-05  Martin Baulig  <martin@ximian.com>
6786
6787         Reflect latest API changes in the August CTP.
6788
6789         * icall.c
6790         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
6791         ("MonoType.HasGenericArguments"): Removed.
6792         ("MonoMethod.BindGenericParameters"): Renamed to
6793         "MakeGenericMethod".
6794         ("MethodBuilder.BindGenericParameters"): Renamed to
6795         "MakeGenericMethod".    
6796
6797 2005-09-05  Martin Baulig  <martin@ximian.com>
6798
6799         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
6800
6801 2005-09-05  Martin Baulig  <martin@ximian.com>
6802
6803         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6804
6805         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
6806         generic_container is non-NULL.
6807
6808 2005-09-05  Martin Baulig  <martin@ximian.com>
6809
6810         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6811
6812         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
6813
6814 2005-08-29  Michal Moskal  <malekith@nemerle.org>
6815
6816         * reflection.c (encode_locals,
6817         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
6818         for large generic types.
6819
6820 2005-09-05  Martin Baulig  <martin@ximian.com>
6821
6822         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6823
6824         * class.c (mono_dup_array_type): New public method.
6825         (mono_metadata_signature_deep_dup): New public method.
6826         (dup_type): Correctly duplicate array and function types.
6827
6828 2005-09-05  Martin Baulig  <martin@ximian.com>
6829
6830         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6831
6832         * reflection.c (get_default_param_value_blobs): Handle generic types
6833         and generic methods.
6834
6835 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
6836
6837         * class.c: Fixed error reporting (method/class were inversed) for 
6838         inheritance demands.
6839         * security-manager.c|h: Added the AppDomain when calling the managed
6840         System.Security.SecurityManager.InheritanceDemand method.
6841
6842 2005-09-01  Raja R Harinath  <rharinath@novell.com>
6843
6844         * reflection.c (encode_marshal_blob): 'marshaltype' and
6845         'marshaltyperef' are alternate sources for the custom marshaler
6846         name.
6847
6848 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
6849
6850         * class.c: fix creation of array classes with rank == 1
6851         (patch by Ankit Jain <jankit@novell.com>).
6852
6853 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
6854
6855         * object.c: fix check for creating the bound data for arrays vs
6856         szarrays.
6857
6858 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6859
6860         * object.c: configuration file name is now based on the executable name,
6861         not the image name. Fixes bug #75931.
6862
6863 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
6864
6865         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
6866         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
6867
6868 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
6869
6870         * rand.c: Use wincrypt.h instead of WinCrypt.h.
6871
6872 2005-08-24  Ankit Jain  <jankit@novell.com>
6873             Raja R Harinath  <rharinath@novell.com>
6874
6875         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
6876           called by it recursively.
6877           (mono_class_init): Remove special case in pending_init handling, since it's
6878           superseded by the fix to mono_class_from_typeref.
6879
6880 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
6881
6882         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
6883         BROKEN_THREAD_START stuff.
6884
6885 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
6886
6887         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
6888         trampoline.
6889
6890         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
6891         
6892         * object.c (mono_delegate_ctor): Replace the original function address with
6893         a delegate trampoline.
6894
6895 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
6896
6897         * icall.c: add boolean argument to base64_to_byte_array and 
6898         InternalFromBase64String to control whether a whitespace-only string
6899         is allowed (or should casue a FormatException to be thrown). We need
6900         this as the behavior has changed between MS.NET 1.x and 2.0, and we
6901         to match the MS behaviour in both profiles.
6902         * appdomain.c: Bump corlib version.
6903
6904 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6905
6906         This patch implements a big portion of publisher policy
6907         support, used to bind assembly versions and redirect
6908         one assembly from version A to version B.
6909
6910         * assembly.c:
6911         New GSList loaded_assembly_bindings, for storing the cached
6912         assembly bindings.
6913         (assembly_binding_maps_name): New static function for checking if a 
6914         assembly binding information maps an assembly name.
6915         (mono_assembly_binding_info_free): New function for freeing
6916         assembly binding information resources.
6917         (get_publisher_policy_info): New static function for retrieving 
6918         assembly binding information from a MonoImage.
6919         (compare_versions): New static function for comparing an assembly
6920         binding information data and the version of an assembly name.
6921         (check_policy_versions): New static function for checking if an
6922         assembly binding info mapping an assembly name is valid for it.
6923         (mono_assembly_load_publisher_policy): New static function for
6924         loading the 'policy.major.minor.MyAssembly' image for an assembly
6925         with an assembly name 'aname'.
6926         (mono_assembly_bind_version): New static function for updating
6927         assembly redirection.
6928         (mono_assembly_apply_binding): New static function for applying
6929         assembly binding.
6930         (search_binding_loaded): New static function for searching 
6931         loaded assembly binding infos in the cache domain.
6932         (mono_assembly_load_full): Don't apply assembly binding for
6933         reflection only assemblies.
6934
6935         * metadata-internals.h: Add MonoAssemblyBindingInfo,
6936         which contains information about assembly binding. Also
6937         declare signature for mono_config_parse_publisher_policy ()
6938         function, used to retrieve pub policy info.
6939         
6940         * mono-config.c:
6941         (publisher_policy_start): New static function used to parse publisher 
6942         policy config files.
6943         (publisher_policy_parser): New static MonoParseHandler containing 
6944         the functions used when parsing config files.
6945         (mono_config_parse_publisher_policy): New function for parsing
6946         publisher policy files.
6947         
6948 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
6949
6950         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
6951
6952         * marshal.c (mono_delegate_free_ftnptr): Ditto.
6953
6954         * object.c (mono_get_addr_from_ftnptr): New helper function.
6955
6956         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
6957
6958         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6959
6960 2005-08-19  Dick Porter  <dick@ximian.com>
6961
6962         * threads.c, threads.h, appdomain.c, appdomain.h,
6963         profiler-private.h, monitor.c, object.c, object-internals.h,
6964         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
6965         store the thread ID, so it can hold a 64 bit value if needed.
6966
6967 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
6968
6969         * reflection.c (mono_reflection_create_dynamic_method): Store the
6970         handle class into the method references as well so ldtoken works in
6971         dynamic methods.
6972
6973         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
6974         types.
6975
6976 2005-08-19  Ankit Jain <jankit@novell.com>
6977
6978         Fix #75847.
6979         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
6980           here rather than using the method signature of a arbitrary function
6981           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
6982           two arguments.
6983           Hack done with Harinath.
6984
6985 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6986
6987         * threadpool.c: disable printing stack traces when we get a exception
6988         in a threadpool thread. I need to do more testing to figure out which
6989         cases actually print this. Fixes bug #75828.
6990
6991 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6992
6993         * icall.c: there might be ignored whitespace after the last '='. This
6994         fixes length computation and bug #75840.
6995
6996 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
6997
6998         * assembly.c (mono_assembly_load_full): Consider .exe extension as
6999         well. Fixes #75809.
7000
7001         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
7002         #75784.
7003         
7004         * reflection.c (create_custom_attr_data): Ditto.
7005
7006 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
7007
7008         * locales.c, culture-info.h : removed RegionLCIDMap.
7009         * culture-info-tables.h : regenerated.
7010
7011 2005-08-16  Martin Baulig  <martin@ximian.com>
7012
7013         * class.c (mono_type_get_name_recurse): Small fix.
7014
7015 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7016
7017         * locales.c : indentation fixie.
7018
7019 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
7020
7021         * object-internals.h,
7022           locales.h,
7023           locales.c,
7024           culture-info.h,
7025           icall.c : added RegionInfo table support.
7026         * culture-info-table.h : regenerated for region support.
7027
7028 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
7029
7030         * reflection.c (resolve_object): handle all kinds of MonoMethod
7031         including generic ones
7032
7033 2005-08-12  Ankit Jain <jankit@novell.com>
7034
7035         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
7036           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
7037
7038 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
7039
7040         * process.c: Don't close a thread handle when it's NULL. This is a
7041         workaround for bug #75733.
7042
7043 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
7044
7045         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
7046
7047 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
7048
7049         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
7050
7051 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7052
7053         * threadpool.c: if a work item in the thread pool has a callback that
7054         catches a exception, don't propagate it after invoking the callback.
7055         Fixes bug #75336.
7056
7057 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
7058
7059         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
7060
7061         * class-internals.h (MonoCachedClassInfo): Add some new fields.
7062
7063         * class.c (mono_class_init): Load field info lazily in the AOT case.    
7064
7065         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
7066
7067 2005-08-03  Ankit Jain  <jankit@novell.com>
7068
7069         Fix #75683.
7070         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
7071           PInvoke calling convention is 0.
7072
7073 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
7074
7075         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
7076         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
7077
7078 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
7079
7080         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
7081         to handle threads not started by the GC (patch by Michael Meeks
7082         <michael.meeks@novell.com>).
7083
7084 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
7085
7086         * reflection.c: Make buffer used in emitting types larger for some
7087         big generic types (patch by Michal Moskal).
7088
7089 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
7090
7091         * mono-debug.c: Fix some (not all) alignment problems.
7092
7093 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7094
7095         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
7096         Invoke mono_image_load_from_data_full passing the refonly
7097         parameter.
7098
7099         * assembly.c
7100         (mono_assembly_open_from_bundle): Add the refonly argument, 
7101         in order to pass it to other methods it calls to.
7102         (do_mono_assembly_open): Add the refonly argument, in order 
7103         to pass it to other methods it calls to.
7104         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
7105         the refonly parameter to it.
7106
7107         * image.c: Add loaded_images_refonly_hash and
7108         loaded_images_refonly_guid_hash to cache the reflection
7109         only loaded images.
7110         (mono_images_init): Initialize the hash tables used for
7111         caching the reflection only images.
7112         (load_modules): Invoke mono_image_open_full passing the refonly
7113         parameter to load the modules the correct way.
7114         (build_guid_table): Add the refonly argument, to re-build the 
7115         correct hash table.
7116         (do_mono_image_open): Added the refonly argument, in order to
7117         define it for the loaded image.
7118         (mono_image_loaded_full): New function, which receives an
7119         additional parameter to look for the image in the refonly or
7120         non-refonly section.
7121         (mono_image_loaded): Updated, using mono_image_loaded_full.
7122         (mono_image_loaded_by_guid_full): The same case that happens
7123         with mono_image_loaded_full.
7124         (mono_image_loaded_by_guid): Likewise.
7125         (register_image): Use the ref_only variable inside MonoImage
7126         to decide in which hash table store the current image.
7127         (mono_image_open_from_data_full): Rename
7128         mono_image_open_from_data to mono_image_open_from_data_full,
7129         adding the refonly argument, to define the ref_only variable 
7130         inside MonoImage.
7131         (mono_image_open_from_data): Return 
7132         mono_image_open_from_data_full.
7133         (mono_image_open_full): Rename mono_image_open to
7134         mono_image_open_full, receiving the new refonly argument,
7135         to pass it to inner methods.
7136         (mono_pe_file_open): Update this function, to open
7137         a MonoImage as a non-refonly image.
7138         (mono_image_close): Use the refonly variable inside
7139         MonoImage to remove the image from the correct caches.
7140
7141         * image.h: Add the signatures of mono_image_open_full,
7142         mono_image_open_from_data_full, mono_image_loaded_full,
7143         mono_image_loaded_by_guid_full.
7144
7145         * metadata-internals.h: Add the ref_only field to 
7146         MonoImage.
7147         
7148 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7149
7150         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
7151         Fix the last behavior, which used to load the assemblies and
7152         extract MonoReflectionAssemblyName information, instead of
7153         extract it from the metadata tables. Needed for Reflection
7154         Only assemblies.
7155         
7156 2005-07-29  Martin Baulig  <martin@ximian.com>
7157
7158         * mono-debug-debugger.c
7159         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
7160         not initialized.
7161
7162         * mono-debug.c
7163         (mono_debug_address_from_il_offset): Check whether we have
7164         debugging support before attempting to take the lock.
7165         (mono_debug_source_location_from_address): Likewise.
7166         (mono_debug_source_location_from_il_offset): Likewise.
7167         (mono_debug_il_offset_from_address): Likewise.
7168         (mono_debug_address_from_il_offset): Likewise.
7169
7170 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
7171
7172         * class.c (mono_class_from_name_case): Add support for dynamic images.
7173         Fixes #75650.
7174
7175         * object.c (mono_class_compute_gc_descriptor): Add a workaround
7176         for #75479.
7177
7178 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7179         
7180         * reflection.c (mono_method_get_object): Fix warning.
7181
7182 2005-07-28  Martin Baulig  <martin@ximian.com>
7183
7184         * mono-debug.c
7185         (mono_debug_add_wrapper): Also write the wrapper type.
7186
7187 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
7188
7189         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
7190         
7191         * class.c (mono_class_init): Avoid reading nested classes if the AOT
7192         data indicates the class has none.
7193
7194 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
7195
7196         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
7197         loader lock with the debugger lock. Prevents deadlocks for beagle.
7198
7199         Beagle can now run on an smp box for a weekend without any
7200         issues. Woohoo!
7201
7202 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
7203
7204         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
7205         in a module. Fixes #75629.
7206
7207 2005-07-26  Martin Baulig  <martin@ximian.com>
7208
7209         * mono-debug.c (mono_debug_add_wrapper): New static method.
7210         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
7211         interncall or a wrapper.
7212
7213         * mono-debug.h (MonoDebugWrapperData): New public typedef.
7214         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
7215         (MONO_DEBUGGER_VERSION): Bump to 51.
7216
7217         * mono-debug-debugger.c
7218         (mono_debugger_add_type): Removed this empty function.
7219         (mono_debugger_add_method): Likewise.
7220
7221 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
7222
7223         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
7224         before accessing method->slot.
7225
7226 2005-07-21  Jb Evain  <jbevain@gmail.com>
7227
7228         * reflection.c (method_encode_clauses/class): Handle filters clauses.
7229         Fixes #75010.
7230
7231 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
7232
7233         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
7234         #75587.
7235
7236 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
7237
7238         * image.h image.c: Add mono_image_get_guid () API function.
7239
7240 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
7241
7242         There were issues when multiple threads tried to load
7243         assemblies. A deadlock was created between assemblies_mutex and
7244         mono_domain_assemblies_lock. This fixes the issue by making the
7245         assembly ref counting be lock free. See bug 75586.
7246         
7247         * image.c (mono_image_close): The add ref function here was using
7248         Interlocked operations while the unref was using a mutex and a
7249         --. I don't think this was ever a bug that would be exposed in a
7250         non-pendantic way (ie, by an embedder doing a ref on one thread
7251         and an unref on another), but for the sake of correctness, this is
7252         now Interlocked.
7253
7254         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
7255         (mono_assembly_load_reference): Call mono_assembly_addref rather
7256         than touching the refcount ourselves.
7257         (mono_assembly_close): Use InterlockedDecrement to unref the
7258         assembly. Don't acquire the lock unless it is actually needed.
7259
7260 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7261
7262         * class.c (mono_class_layout_fields): Fix calculation of has_references
7263         for generic types.
7264
7265 2005-07-12  Martin Baulig  <martin@ximian.com>
7266
7267         Applying a patch from Michal Moskal <malekith@nemerle.org>.
7268
7269         * metadata.c
7270         (mono_type_hash): Provide better hashing for generic instances.
7271         (mono_generic_inst_hash): Improve hashing.
7272         (mono_generic_class_hash): Likewise.
7273
7274         * reflection.c (mymono_metadata_type_hash): Improve hashing for
7275         generic instances.
7276
7277 2005-07-12  Martin Baulig  <martin@ximian.com>
7278
7279         * reflection.c (mono_reflection_create_runtime_class): Remove the
7280         hack for generic type definitions and non-`Run' assemblies.
7281         (mono_reflection_bind_generic_parameters): Also use
7282         `klass->wastypebuilder' to check for TypeBuilders.
7283
7284 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
7285
7286         * class.c (mono_class_layout_fields): Fix calculation of has_references
7287         for generic types.
7288
7289         * class.c (inflate_generic_class): Fix a leak.
7290         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
7291         for generic types.
7292
7293 2005-07-11  Martin Baulig  <martin@ximian.com>
7294
7295         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
7296         on error.
7297
7298 2005-07-11  Martin Baulig  <martin@ximian.com>
7299
7300         * loader.c (find_method): Also lookup in
7301         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
7302
7303 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7304
7305         * appdomain.c (mono_domain_unload): Don't free the error message
7306         before passing it to mono_get_exception_...
7307
7308         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
7309         
7310 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
7311
7312         * threads.c: try to better guess an available RT signal (bug #75387).
7313
7314 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7315
7316         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
7317         and CACHE_OBJECT.
7318
7319 2005-07-07  Martin Baulig  <martin@ximian.com>
7320
7321         * class.c (mono_type_get_name_full): Return NULL for
7322         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
7323         fixes #75408.
7324
7325 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
7326
7327         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
7328         exit the appdomain as well being aborted.
7329
7330         * threadpool.c: Create all threadpool threads inside the root appdomain, and
7331         change back to the root domain after calling managed code. This enables
7332         appdomains using threadpools to be unloaded.
7333
7334 2005-07-07  Martin Baulig  <martin@ximian.com>
7335
7336         * class-internals.h
7337         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
7338         into `MonoDynamicGenericClass' since we only need it for dynamic
7339         types.
7340
7341         * reflection.c (mono_class_bind_generic_parameters): We don't need
7342         to compute the `parent' here.
7343
7344 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
7345
7346         * culture-info-table.h : regenerated.
7347
7348 2005-07-06  Martin Baulig  <martin@ximian.com>
7349
7350         * icall.c
7351         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
7352
7353         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
7354
7355 2005-07-06  Martin Baulig  <martin@ximian.com>
7356
7357         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
7358         we're doing a signature-only comparision; fixes #74945.
7359
7360 2005-07-06  Martin Baulig  <martin@ximian.com>
7361
7362         * class-internals.h (MonoGenericClass): Moved some things out into
7363         a new `MonoInflatedGenericClass' type.  
7364         (MonoInflatedGenericClass): New type; the `klass' of a
7365         `MonoGenericClass' is now computed lazyly in
7366         mono_get_inflated_generic_class().      
7367
7368         * class.c (mono_get_inflated_generic_class): New public function.
7369         (mono_class_inflate_generic_method): Removed the unused
7370         `MonoClass *' argument.
7371         (setup_generic_vtable): Don't call mono_get_inflated_method() on
7372         all the methods.
7373         (mono_class_create_generic): Make this static and merge it with
7374         mono_class_create_generic_2(); we're now called automatically from
7375         mono_get_inflated_generic_class().
7376
7377         * loader.c (mono_method_signature): Call
7378         mono_get_inflated_method() here.
7379
7380 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
7381
7382         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
7383         type of fields with RVA.
7384
7385         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
7386         for this pseudo class.
7387         (my_mono_class_from_generic_parameter): Likewise.
7388         (mono_class_init): Allow interfaces to have cctors.
7389
7390 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7391
7392         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
7393         lazily for AOT methods.
7394
7395 2005-07-05  Martin Baulig  <martin@ximian.com>
7396
7397         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
7398         returns FALSE for a successful match, not TRUE.
7399
7400 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
7401
7402         * loader.c (mono_method_get_index): Optimize this a bit.
7403
7404 2005-07-04  Martin Baulig  <martin@ximian.com>
7405
7406         * class.c
7407         (class_compute_field_layout): Move the check for generic type
7408         definitions into mono_class_layout_fields().  Fixes #74684.
7409         (mono_class_from_generic_parameter): Correctly compute
7410         `klass->parent'; fixes #75457.
7411
7412         * reflection.c (register_assembly, register_module): Make sure
7413         `domain->rejobject_hash' is already created.
7414
7415 2005-07-02  Martin Baulig  <martin@ximian.com>
7416
7417         * class-internals.h
7418         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
7419         `MonoDynamicGenericClass'.      
7420
7421 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
7422
7423         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
7424         returned by a field getter is null, since null is a valid value.
7425
7426 2005-07-01  Martin Baulig  <martin@ximian.com>
7427
7428         * reflection.c (mono_reflection_generic_class_initialize): Update
7429         the `dgclass->fields [i].parent' to the correct class.
7430         (mono_image_get_fieldref_token): Use the declaring type, not the
7431         reflected type.
7432
7433 2005-07-01  Martin Baulig  <martin@ximian.com>
7434
7435         * loader.c (find_method): Also look in the interfaces; fixes #75429.
7436
7437 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
7438
7439         * threads.c (thread_cleanup): assert that thread != NULL
7440         (wait_for_tids_or_state_change): We were using the wrong variable
7441         when accessing wait->threads. `i' was always out of the bounds of
7442         the array.
7443
7444 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7445
7446         * loader.c: map user32 and kernel32 to libMonoSupportW
7447
7448 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
7449
7450         * appdomain.c (unload_thread_main): Mark this as WINAPI.
7451
7452 2005-06-28  Martin Baulig  <martin@ximian.com>
7453
7454         * loader.c (method_from_methodspec): Fix #75334.
7455
7456 2005-06-28  Martin Baulig  <martin@ximian.com>
7457
7458         Fix #74953 - Arrays now implement the generic IList<T> interface
7459         on the 2.0 platform.
7460
7461         * class-internals.h (MonoDefaults): Added `generic_array_class'.
7462
7463         * reflection.c (mono_class_bind_generic_parameters): New public
7464         function; similar to mono_reflection_bind_generic_parameters(),
7465         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
7466
7467         * domain.c (mono_init_internal): Try to initialize.
7468         `mono_defaults.generic_array_class' here; this'll only succeed if
7469         we're using the 2.0 corlib.
7470
7471         * icall.c
7472         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
7473         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
7474         (mono_lookup_internal_call): Added support for nested classes.
7475
7476         * loader.c
7477         (mono_get_method_from_token): Set `result->signature->pinvoke' if
7478         we're an interncall and have generic arguments.
7479
7480         * class.c
7481         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
7482         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
7483         instance of System.Array.InternalArray<T> for arrays, so they
7484         implement the generic IList<T> interface.
7485
7486 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
7487
7488         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
7489         (chastamar@yahoo.com). Fixes #75374.    
7490
7491 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7492
7493         * culture-info-table.h: regenerated.
7494
7495 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7496
7497         * icall.c: handle spaces correctly for base64 strings.
7498
7499 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
7500
7501         * *.c: Kill some warnings.
7502
7503 2005-06-23  Duncan Mak  <duncan@novell.com>
7504
7505         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
7506         that this builds on Solaris 10 (x86).
7507
7508 2005-06-23  Martin Baulig  <martin@ximian.com>
7509
7510         * class.c
7511         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
7512         generic type definitions.
7513
7514 2005-06-23  Martin Baulig  <martin@ximian.com>
7515
7516         Fix #75331.
7517
7518         * metadata.c (mono_class_get_overrides): Renamed to
7519         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
7520         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
7521         pass it to mono_get_method_full().
7522
7523 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
7524
7525         * reflection.c (mono_reflection_create_runtime_class): take the
7526         mono_domain_lock in this method. Prevents deadlocks
7527
7528 2005-06-22  Martin Baulig  <martin@ximian.com>
7529
7530         * loader.c (method_from_methodspec): Fix #75330.
7531
7532 2005-06-22  Martin Baulig  <martin@ximian.com>
7533
7534         * reflection.c (type_get_qualified_name): Use
7535         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
7536         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
7537         argument; use it if we don't have an assembly name.
7538
7539 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
7540
7541         * object.c: In mono_message_init, set "copy out" flag for in
7542         parameters with the [Out] flag.
7543
7544 2005-06-21  Martin Baulig  <martin@ximian.com>
7545
7546         * class.c
7547         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
7548         and MONO_TYPE_PTR.
7549
7550 2005-06-21  Martin Baulig  <martin@ximian.com>
7551
7552         * class.c (mono_class_init): Don't initialize `class->fields' for
7553         generic instances since they're initialized again in
7554         compute_field_layout(). 
7555         (compute_field_layout): Set the field's `generic_info' here; fix
7556         #75320. 
7557
7558 2005-06-21  Martin Baulig  <martin@ximian.com>
7559
7560         * class-internals.h
7561         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
7562
7563         * metadata.c (mono_metadata_generic_method_equal): Also
7564         distinguish the `generic_class'; fixes #75334.
7565
7566 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7567
7568         * domain.c:
7569         * appdomain.c:
7570         * domain-internals.h:
7571         * reflection.c: 'domain_assemblies' field is now protected by its own
7572         lock. Don't call into managed code to run the AssemblyLoad event if we
7573         now there are no registered delegates for it.
7574
7575 2005-06-20  Martin Baulig  <martin@ximian.com>
7576
7577         * class.c (mono_class_is_assignable_from): Use a custom version of
7578         mono_class_has_parent() to make things work for generic instances;
7579         fix #75300.
7580
7581 2005-06-20  Martin Baulig  <martin@ximian.com>
7582
7583         * loader.c (method_from_methodspec): Apply a patch from
7584         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
7585
7586 2005-06-20  Martin Baulig  <martin@ximian.com>
7587
7588         * class.c (mono_class_init): Reverted Zoltan's last change; it
7589         breaks generics.
7590
7591 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
7592
7593         * threads.c (wait_for_tids_or_state_change): Add missing locking.
7594
7595 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7596
7597         * socket-io.c: fix the index in the socket array for writable/error
7598         sockets. Fixes bug #75306.
7599
7600 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
7601
7602         * class.c (mono_class_init): Allow interfaces to have static ctors.
7603
7604 2005-06-17  Martin Baulig  <martin@ximian.com>
7605
7606         * loader.c (method_from_methodspec): Use `context->container' when
7607         parsing the `gmethod->inst'.
7608
7609 2005-06-17  Martin Baulig  <martin@ximian.com>
7610
7611         * class.c (mono_type_get_name_recurse): Don't add the assembly
7612         name for type arguments.
7613
7614 2005-06-15  Martin Baulig  <martin@ximian.com>
7615
7616         * reflection.c (mono_image_get_inflated_method_token): Encode
7617         correct klass; fixes #75260.
7618
7619 2005-06-13 Michal Moskal <malekith@nemerle.org>
7620
7621         * icall.c: Make GetCorrespondingMethod/Constructor take
7622         MonoReflectionMethod method not MonoMethod. Removed
7623         MonoType.GetCorrespondingField, and make
7624         MonoGenericType.GetCorrespondingField take name not
7625         MonoClassField.
7626
7627 2005-06-13  Michal Moskal <malekith@nemerle.org>
7628
7629         * reflection.c (field_encode_signature, encode_locals):
7630          Make sizes of buffers for types larger (for big generic types).
7631          (create_generic_typespec,
7632          mono_reflection_sighelper_get_signature_local,
7633          mono_reflection_sighelper_get_signature_field):
7634          Add asserts for too small buffers.
7635
7636 2005-06-15  Martin Baulig  <martin@ximian.com>
7637
7638         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
7639         if our parent is not a dynamic type.
7640
7641 2005-06-15  Martin Baulig  <martin@ximian.com>
7642
7643         * class-internals.h (MonoTypeNameFormat): New enum.
7644
7645         * class.c
7646         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
7647         (mono_type_get_full_name): Removed.
7648         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
7649         argument instead of the boolean's.
7650
7651         * icall.c (ves_icall_System_MonoType_getFullName):
7652         Added `gboolean assembly_qualified'.    
7653
7654         * reflection.h
7655         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
7656
7657         * reflection.c (mono_reflection_parse_type): Parse the new type
7658         name format.
7659
7660 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7661
7662         * icall.c: no need to convert from utf16 to utf8 and then back again
7663         after the call to GetLogicalDrives.
7664
7665 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7666
7667         * icall.c: frombase64. Fix problems exposed by new tests.
7668
7669 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7670
7671         * icall.c: added internal calls for converting char [] and strings in
7672         base64 into byte [].
7673
7674 2005-06-10  Martin Baulig  <martin@ximian.com>
7675
7676         * class.c (mono_class_create_generic_2): Read the nested classes
7677         from the metadata rather than from `gklass->nested_classes' since
7678         `gklass' might not be initialized yet.
7679
7680 2005-06-09  Duncan Mak  <duncan@novell.com>
7681
7682         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
7683         all public headers. Fixes #74919.
7684
7685 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
7686
7687         * domain.c: The key for proxy_vtable_hash is now a pointer
7688         array. Added new GHashFunc and GCompareFunc functions for this.
7689
7690         * class.h: The list of interfaces in MonoRemoteClass is known in
7691         advance and can't grow (we create a new MonoRemoteClass if needed),
7692         so now the interface array can be allocated together with
7693         MonoRemoteClass.
7694         
7695         * object.c: Added a new method create_remote_class_key.
7696         Fixed mono_remote_class so it does not depend on
7697         mono_upgrade_remote_class.
7698         Removed extend_interface_array.
7699         Added new method clone_remote_class(), which makes a copy of a remote
7700         class and adds a new interface or class to it.
7701         mono_upgrade_remote_class() now creates a new remote class (or gets
7702         it from the cache) if an vtable upgrade is needed. In this way
7703         we make sure that other objects sharing the same remote class
7704         don't get the new vtable with unwanted interfaces.
7705         
7706         * object-internals.h:
7707         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
7708         
7709         * marshal.c: Track changes in mono_upgrade_remote_class().
7710
7711 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
7712         * icall.c: Add runtime methods for obtaining members of inflated
7713         class, which were created from supplied non-inflated members. It
7714         is used in internal Get{Method,Constructor,Field} methods in
7715         System.Type
7716
7717 2005-06-09  Martin Baulig  <martin@ximian.com>
7718
7719         * reflection.c
7720         (mono_reflection_bind_generic_method_parameters): Fix #75169.
7721
7722 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7723         * reflection.c (mono_image_basic_init): Define
7724         Version in MonoDynamicAssembly. 
7725         
7726 2005-06-08  Martin Baulig  <martin@ximian.com>
7727
7728         Fix #75136.
7729
7730         * loader.c
7731         (mono_method_signature_full): New public method; takes a
7732         `MonoGenericContext *'.
7733         (find_method): Use mono_method_signature_full() and pass the
7734         klass'es context to it.
7735
7736         * class.c (mono_class_is_inflated_method): Use
7737         mono_method_signature_full() and pass the context to it.
7738
7739 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
7740
7741         * object.c: add proper locking in mono_remote_class_vtable(),
7742         fixes possible memory corruption.
7743
7744 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
7745
7746         * marshal.c (mono_remoting_marshal_init): set
7747         initialized after initialization.
7748
7749 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
7750
7751         * locales.c : hush.
7752
7753 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
7754
7755         * object.c (extend_interface_array): fix really silly
7756         memory corrupting / comparison bug.
7757
7758 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7759
7760         * reflection.c: Functions added to support the creation
7761         of CustomAttributeData, which includes Attribute data
7762         used by ReflectionOnly methods.
7763
7764         * reflection.h:  mono_reflection_get_custom_attrs_data and
7765          mono_custom_attrs_data_construct added (functions exposed).
7766
7767          * icall.c: Added mono_reflection_get_custom_attrs_data
7768          as icall.
7769         
7770 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
7771
7772         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
7773         lupus's request.
7774
7775 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
7776
7777         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
7778
7779         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
7780         dynamic DllImportAttribute.
7781
7782         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
7783         dynamic DllImportAttribute.
7784
7785         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
7786         Fixes #75162.
7787
7788 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7789
7790         * threads.c: avoid segfault when an unstarted thread is aborted.
7791
7792 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
7793
7794         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
7795         Returns the name and version of the runtime for reporting.
7796
7797 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7798
7799         * appdomain.c: bump corlib version.
7800         * object-internals.h: new field in MonoReflectionAssembly.
7801
7802 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7803
7804         * object-internals.h: Carlos forgot to add this field.
7805
7806 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7807
7808         * icall.c: Added create_version to create instances
7809         of Version of MonoReflectionAssemblyName. This change helps
7810         the AssemblyName tests to keep running fine.
7811         
7812 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
7813   
7814         * object.c (mono_method_return_message_restore): A somehow less
7815         intrusive fix for #75138.
7816
7817 2005-06-03  Raja R Harinath  <rharinath@novell.com>
7818
7819         * object.c (mono_method_return_message_restore): Fix computation
7820         of expected number of out args.
7821
7822 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7823
7824         * reflection.c (mono_image_get_method_info): Fix the case when the
7825         charset is empty.
7826
7827 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
7828
7829         * object.c: Added missing null check in
7830           mono_method_return_message_restore.
7831
7832 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
7833
7834         * reflection.c (mono_image_get_method_info): Handle the case when
7835         dllentry is empty.
7836
7837 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
7838
7839         * object.c: When creating the vtable for a proxy, take into account
7840         all inherited interfaces, not only the ones registered in
7841         iclass->interfaces. This fixs bug #74996.
7842         Also, in mono_method_return_message_restore, verify that the array
7843         of out args has the expected lengh.
7844
7845 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7846
7847         * socket-io.c: update the timeout in Poll when the call is interrupte.
7848
7849 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7850
7851         * socket-io.c: support abort/suspend in Select_internal after last
7852         change.
7853
7854 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7855
7856         * threadpool.c: remove warning.
7857
7858 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7859
7860         * icall.c:
7861         * socket-io.[ch]: Select_internal uses poll() now when available, thus
7862         removing the 1024 limit from select(). Runtime part of the fix for
7863         bug #71203.
7864
7865 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7866
7867         * socket-io.c: when resolving the addresses for the same
7868         host returned by gethostname(), get the local IPs from the interface
7869         list. Loopback addresses are discarded if the are interfaces up with
7870         non-loopback ones. Fixes bug #63265.
7871
7872 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
7873
7874         * appdomain.c, verify.c, object-internals.h, reflection.c:
7875         bumped corlib number to 36, and added new extra_flags field
7876         to ReflectionMethodBuilder and friends.  Fixes #75060.
7877
7878 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
7879
7880         * gc.c: register a new weak link only if the object is non-null
7881         (fixes bug#75047).
7882
7883 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7884
7885         * culture-info.h : short time pattern too.
7886
7887 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
7888
7889         * culture-info.h : expand long time pattern string length.
7890
7891 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7892
7893         * culture-info-table.h : update (more French date format; #72788).
7894
7895 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
7896
7897         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
7898         the method is static. Fixes #75029.
7899
7900 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
7901
7902         * reflection.c: Update the table_idx field of method builders after
7903         saving the module, since it can change. This is a workaround for
7904         bug #74914. 
7905
7906 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
7907
7908         * culture-info-table.h : update (additional French date format).
7909
7910 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
7911
7912         * icall.c (ves_icall_type_Equals): Revert last change.
7913         
7914         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
7915
7916         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
7917
7918 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
7919
7920         * class-internals.h: Added executioncontext_class field to 
7921         MonoDefaults structure.
7922         * domain.c: Cache System.Threading.ExecutionContext class in 
7923         mono_defaults.
7924         * object.c: Capture the ExecutionContext for asynchroneous calls in
7925          mono_async_result_new.
7926         * object-internals.h: Added execution_context and original_context 
7927         fields to MonoAsyncResult. Added execution_context to MonoThread.
7928         * security-manager.c|.h: Added mono_get_context_capture_method to 
7929         return the capture method (if required by the security manager or by
7930         the framework version used).
7931         * threadpool.c: Apply capture (if present) ExecutionContext in 
7932         mono_async_invoke and revert to original context after it completes.
7933
7934 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
7935
7936         * culture-info-table.h : updated (real hacky solution for zh-CHT).
7937
7938 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
7939
7940         * culture-info-table.h : zh-CHT related workaround.
7941
7942 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7943
7944         * marshal.c (emit_marshal_custom): Add some error checking and call the
7945         methods in the ICustomMarshaler interface. Fixes #74875.
7946         
7947         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
7948         native->managed wrappers.
7949
7950 2005-05-12  Martin Baulig  <martin@ximian.com>
7951
7952         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
7953         here and use the loader lock.
7954
7955         * mono-debug.c: Properly lock when the debugger is not attached.
7956         (mono_debug_init): Release the initial lock if we're not running
7957         in the debugger.
7958
7959 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
7960
7961         * marshal.c (emit_marshal_custom): Pass through NULL values without
7962         calling the custom marshalling routines.
7963
7964         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
7965         conversion in structures. Fixes #74882.
7966
7967 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
7968
7969         * culture-info-table.h : zh-* cultures were missing.
7970
7971 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
7972
7973         * threads.c: Added a new event background_change_event which is signaled
7974         when a thread changes its background mode.
7975         Moved here several checks previously done in managed code. The checks
7976         require the thread lock, and using the thread lock in managed code
7977         can result in deadlocks.
7978         Merged Start_internal and Thread_internal into a single method. Now 
7979         Thread_internal does all work of creating and starting a thread.
7980         Added icalls for setting and getting the state of the object. Moved from
7981         managed code to avoid locking there.
7982         Added wait_for_tids_or_state_change() which is called instad of
7983         wait_for_tids when waiting for non-backround threads to end. This method
7984         will return if one of the threads ends or the background_change_event
7985         is signaled.
7986         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
7987         the background mode. This method signals the background_change_event
7988         event.
7989         * icall.c:
7990         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
7991         removed Start_internal.
7992         
7993 2005-05-11  Martin Baulig  <martin@ximian.com>
7994
7995         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
7996         to order of some fields to get proper alignment on 64-bit machines.
7997
7998 2005-05-11  Martin Baulig  <martin@ximian.com>
7999
8000         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
8001         changes as they're broken and completely fuck up the debugger.
8002
8003         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
8004
8005 2005-05-10  Martin Baulig  <martin@ximian.com>
8006
8007         * reflection.c (mono_reflection_generic_class_initialize): Don't
8008         call mono_class_setup_parent() here.
8009
8010 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8011
8012         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
8013         send/receive timeout use an integer in milliseconds. We were using a
8014         struct timeval.
8015
8016 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8017
8018         * locales.c:
8019         (internal_get_cultures): reserve the first slot of the array for the
8020         InvariantCulture, which will be filled in managed code.
8021
8022 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
8023
8024         * reflection.c (mono_image_fill_module_table): Initialize the
8025         GENERATION field as well.
8026
8027 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8028
8029         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
8030         Monitor.Enter on the object.
8031
8032 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
8033
8034         * threads.c: Enable the wait for running threads when exiting.
8035         * icall.c: Suspend all threads before exiting.
8036
8037 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
8038
8039         * assembly.c (mono_assembly_load_reference): Fix warning.
8040
8041 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8042
8043         * threadpool.c: changed the default number of threads per cpu. From now
8044         on, the default will be 20 + (5 * number of cpus) instead of 50.
8045
8046 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
8047
8048         * loader.c (mono_method_get_signature_full): Add locking here.
8049
8050 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
8051
8052         * appdomain.c: Moved methods for parsing and freeing assembly
8053         names to assembly.c.
8054         * assembly.c, domain-internals.h: Created public methods for parsing
8055         assembly names. Fixed mono_assembly_load_with_partial_name:
8056         it now finds the best match, taking into account the version,
8057         token and culture specified in the partial name. Also return
8058         the latest version if no version information is specified.
8059
8060 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
8061
8062         * threadpool.c: replace check for SocketAsyncCall class.
8063
8064 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8065
8066         * threadpool-internals.h:
8067         * Makefile.am: added threadpool-internals.h
8068
8069         * threadpool.c: call mono_unhandled_exception on exceptions not handled
8070         that happen in threadpool threads (tested on MS).
8071         (mono_thread_pool_remove_socket): new function that dispatch any pending
8072         AIO call on a socket that is closing. By now only epoll really needs it,
8073         as select/poll wake up when the socket closes.
8074
8075
8076         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
8077
8078 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
8079
8080         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
8081
8082 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
8083
8084         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
8085
8086 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
8087
8088         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
8089         has an abort request, convert it into a suspend request.
8090
8091 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
8092
8093         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
8094         warning for the usage of `UnmanagedFunctionPointerAttribute' which
8095         is not supported yet.
8096
8097 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8098
8099         * image.c: register assemblies loaded from data (bundles) in the loaded
8100         assemblies hash. Fixes bug #74772.
8101
8102 2005-04-29  Martin Baulig  <martin@ximian.com>
8103
8104         * class.c (mono_type_get_name_recurse): Update to the new naming
8105         schema from the latest .NET 2.x beta2.
8106         (mono_class_setup_vtable_general): If we're a generic instance,
8107         copy the vtable from our generic type definition and inflate all
8108         the methods in it.
8109
8110         * loader.c (find_method): Update to the new naming schema from the
8111         latest .NET 2.x beta2.
8112
8113 2005-04-29  Raja R Harinath  <harinath@gmail.com>
8114
8115         * class.c (mono_class_init): Add a mono_loader_unlock to the
8116         #74734 fix.
8117
8118 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
8119
8120         * icall.c (ves_icall_System_Environment_Exit): Remove the 
8121         suspend_all_other_threads () call for the time being, since it can hang.
8122
8123         * threads.c (mono_thread_manage): Similarly, disable the waiting for
8124         the background threads to exit, since it can also hang.
8125
8126         * class.c (mono_class_init): Applied patch from Ankit Jain 
8127         (radical@gmail.com). Avoid pending init errors when a field refers
8128         to a nested class using a typeref. Fixes #74734.
8129
8130         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
8131         this for dynamic modules.
8132
8133 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8134
8135         * threads.c: don't wait for threads that are in the process of aborting
8136         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
8137         and waiting for background threads to finish. This makes xsp and
8138         mod-mono-server exit without random length delays and/or hangs.
8139
8140 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8141
8142         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
8143
8144 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
8145
8146         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
8147         dynamic types to prevent infinite loops. Fixes #74727.
8148
8149         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
8150         ..._is_assignable_to.
8151
8152 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
8153
8154         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
8155
8156 2005-04-25  Martin Baulig  <martin@ximian.com>
8157
8158         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
8159
8160         * domain.c
8161         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
8162
8163         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
8164
8165         * reflection.c (build_compressed_metadata): Set metadata header
8166         version to 2.0.
8167
8168 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
8169
8170         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
8171         number into an integral and a decimal part. Fixes #70473.
8172
8173         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
8174
8175 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
8176
8177         * culture-info-table.h : reflected the latest locale-builder output.
8178
8179 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8180
8181         * threadpool.c: check for SuspendRequested too when deciding if
8182         mono_thread_interruption_checkpoint should be called.
8183
8184 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8185
8186         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
8187         * threads.c: remove interruption_mutex and use Interlocked instead. When
8188         suspending all the threads, wait for all the suspended events at once.
8189         If we're shutting down and get an APC that is going to be queued,
8190         call mono_thread_execute_interruption immediately, as the thread might
8191         be sleeping on a pthread condition or mutex.
8192
8193         * icall.c: call mono_runtime_set_shutting_down before suspending the
8194         threads.
8195
8196         Fixes bug #74693. And now xsp is happier when exiting.
8197
8198 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
8199
8200         * loader.c (mono_stack_walk): Fix #74690.
8201
8202 2005-04-22  Martin Baulig  <martin@ximian.com>
8203
8204         * mono-debug.h (MonoDebugMethodJitInfo): Added
8205         `MonoDebugMethodJitInfo *jit'.
8206
8207         * mono-debug.c (mono_debug_read_method): Cache the
8208         MonoDebugMethodJitInfo in `address->jit'.
8209         (mono_debug_free_method_jit_info): New public method.
8210
8211 2005-04-22  Martin Baulig  <martin@ximian.com>
8212
8213         * class.c (mono_class_is_assignable_from): Disallow
8214         type parameter -> interface.
8215
8216 2005-04-21  Dick Porter  <dick@ximian.com>
8217
8218         * threads.c (mono_thread_create): Turn an assertion into an error.
8219
8220 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
8221
8222         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
8223         
8224         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
8225         Fix some gcc 4.0 warnings.
8226
8227 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
8228
8229         * file-io.c: fix alt dir separator char on unix systems
8230         and cleanup (fixes bug #71214).
8231
8232 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
8233
8234         * marshal.c: Use CALLVIRT instead of CALL when dispatching
8235         a call to a remote domain, since the method may be an
8236         interface method in the client domain. This fixes bug #74192.
8237
8238 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8239
8240         * threadpool.c: recv/send are now performed before going back to managed
8241         code to save one transition.
8242
8243 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8244
8245         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
8246
8247         * metadata/threadpool.c: removed hack to workaround the bug above.
8248
8249         Fixes bug #74618.
8250
8251 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
8252
8253         * reflection.c reflection.h: Fix handling of parameter defaults in
8254         dynamic methods. Also fixes handling of parameter attributes.
8255         Fixes #74609.
8256
8257         * mono-debug.c (mono_debug_close_image): Fix warning.
8258
8259 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8260
8261         * socket-io.h: replaced old unused field with new 'blocking'.
8262         * threadpool.c: restore socket blocking state on windows(tm).
8263
8264 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
8265
8266         * icall.c: don't return the codebase in the AssemblyName[] returned by
8267         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
8268         * object-internals.h: Removed FIXME (fields were presents) and fixed
8269         versioncompat declaration.
8270
8271 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8272
8273         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
8274         not closed, so don't cleanup when it happens.
8275
8276 2005-04-13  Chris Toshok  <toshok@ximian.com>
8277
8278         * mono-debug-debugger.h: change prototype for
8279         mono_debugger_lookup_type.
8280
8281         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
8282         this function, although it should probably be named
8283         mono_debugger_init_type.
8284
8285 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8286
8287         * threadpool.c: fix non-AIO case.
8288
8289 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
8290
8291         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
8292         the built-in profiler to measure just JIT compilation times.
8293
8294 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8295
8296         * threadpool.c: the epollfd might be closed by another thread at
8297         any time, so ignore EBADF at treat it as a "we're closing" sign.
8298
8299 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8300
8301         * threadpool.c: release the semaphores with a count equals to the number
8302         of working threads in both IO and regular pools. Fixed typo that messed
8303         up the count of IO pool threads. Don't initialize the pipe handles if
8304         we're using epoll.
8305
8306 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8307
8308         * threadpool.c: some systems don't like a NULL when deleting the socket
8309         from epoll.
8310
8311 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8312
8313         * threadpool.c: fix semaphore allocation.
8314
8315 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8316
8317         * threadpool.c: added epoll() based implementation for asynchronous IO
8318         that is used instead of the default poll() when available.
8319         It can be disabled by setting MONO_DISABLE_AIO.
8320
8321 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8322
8323         * threadpool.c: windows needs 'closesocket' and instead of returning
8324         0 when the stream is closed while in select, it returns -1. Fixes bug
8325         #74573.
8326
8327 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
8328
8329         * class.c (class_compute_field_layout): Fix the regression caused by
8330         the previous try.
8331
8332 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8333
8334         * threadpool.c: separate pool for socket async. IO.
8335         * threadpool.h: mono_max_worker_threads is not a global any more.
8336
8337 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
8338
8339         * class.c (class_compute_field_layout): Fix #74549.
8340
8341 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8342
8343         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
8344         use 2 connected sockets instead.
8345
8346 2005-04-08  Miguel de Icaza  <miguel@novell.com>
8347
8348         * mono-config.c: Add new entry point for mkbundle
8349         mono_config_parse_memory. 
8350
8351 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8352
8353         * threadpool.c: removed another unused function.
8354
8355 2005-04-08  Ankit Jain  <radical@corewars.org>
8356
8357         * reflection.c (get_default_param_value_blobs): Add 'types'
8358         parameter to get the types encoded in the constant table.
8359         (mono_param_get_objects): Use the type from the constant table,
8360         not the type of the parameter, when creating default values.
8361         Handle null default values correctly.
8362
8363 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8364
8365         * file-io.c:
8366         * file-io.h:
8367         * threadpool.c:
8368         * threadpool.h:
8369         * icall.c:
8370         * socket-io.c: removed dead code for async IO.
8371
8372 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8373
8374         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
8375
8376         * threadpool.c: intercept socket async. calls and pass them to a thread
8377         that is polling and dispatching the job items to the threadpool as
8378         socket become ready. Fixes bugs #71217, #71933.
8379
8380         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
8381         between char and short/ushort arrays.
8382
8383         * socket-io.c: remove dead code.
8384
8385 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8386
8387         * locales.c,
8388           icall.c : removed InternalToUpper_Comp() and
8389           InternalToLower_Comp().
8390
8391 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
8392
8393         * char-conversions.h : The tables were incorrectly generated. Should
8394           be generated against invariant culture.
8395
8396 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
8397
8398         * object.c (mono_runtime_invoke_array): Fix return value when 
8399         passing pre-created valuetype objects to ctors.
8400
8401         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
8402         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
8403         Fixes #74338.
8404
8405 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
8406
8407         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
8408         only used with --security and hides the wrong corlib version error.
8409
8410 2005-03-30  Joshua Tauberer  <tauberer@for.net>
8411
8412         * class.c: Changed mono_class_name_from_token so that types
8413         outside of a namespace don't have an initial period.  Improved
8414         the g_warning message used in _mono_class_get when loading
8415         fails.
8416         * assembly.c: In mono_assembly_load_reference, when an assembly
8417         can't be found, "No such file or directory" is misleading and
8418         unhelpful because a few paths were checked for the presence of
8419         the assembly.  When that happens (ENOENT), display a nicer
8420         message indicating the directories that were searched.  In all
8421         cases, the warning is made easier to read for non-hackers.
8422
8423 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
8424
8425         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
8426         project/solution.
8427         * appdomain.h|domain.c: Removed inline from functions.
8428         * appdomain.c: Reduced warnings when compiling on windows.
8429         * icall.c: Fixed output_debug declaration to gunichar2*.
8430         * mono-config.c: Reduced warnings when compiling on windows.
8431         * rand.c: Added missing "windows.h". Added missing return value.
8432         * rawbuffer.c: Added missing winsock2.h for windows.
8433         * sysmath.h: Added mono-compiler.h header to allow/ease 
8434         compilation with non-GCC compilers.
8435         * threads.c: Fixed declarations to compile with VS.NET C compiler.
8436         Removed cast warnings.
8437
8438         Adapted from the work of J Lothian (for VC6).
8439
8440 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
8441
8442         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
8443         from default_path.
8444
8445 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
8446
8447         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
8448         the 2.0 profile.
8449
8450 2005-03-27  Raja R Harinath  <harinath@gmail.com>
8451
8452         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
8453         has to be in $(exec_prefix).  $(prefix) is for arch-independent
8454         stuff, and it would probably use $(prefix)/share rather than
8455         $(prefix)/lib.
8456
8457 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8458
8459         * console-io.c: added 2 includes that might be missing.
8460
8461 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
8462
8463         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
8464         profile.
8465
8466         * reflection.c (create_custom_attr): Allocate the params array using
8467         alloca so it gets GC tracking.
8468
8469 2005-03-23  Chris Toshok  <toshok@ximian.com>
8470
8471         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
8472         out some spew.
8473
8474 2005-03-24  Raja R Harinath  <rharinath@novell.com>
8475
8476         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
8477         changes to pick up any changes in prefix, etc.
8478
8479 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8480
8481         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
8482         
8483         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
8484         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
8485
8486 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
8487
8488         * class-internals.h object-internals.h class.c reflection.c: Extend the
8489         mono_lookup_dynamic_token () function to return the class of the
8490         token as well. 
8491
8492         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
8493         well. Fixes #73848.
8494
8495 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
8496
8497         * security-manager.c: Skip inheritance checks for intra-corlib
8498         class inheritance and method overrides. This skips a lot of checks
8499         and (anyway) permissions cannot work until corlib is loaded.
8500
8501 2005-03-23  Martin Baulig  <martin@ximian.com>
8502
8503         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
8504         MONO_TYPE_GENERICINST.  
8505
8506 2005-03-23  Martin Baulig  <martin@ximian.com>
8507
8508         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
8509
8510 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8511
8512         * class.c: added locking comments to some functions.
8513         Cache the interface offsets arrays (saves about 20 KB
8514         of runtime memory in a typical app).
8515         Reduce the time overhead in mono_class_setup_supertypes ().
8516
8517 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
8518
8519         * icall.c: speedup and fix leaks in GetMethodsByName and
8520         GetPropertiesByName.
8521
8522 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8523
8524         * reflection.c: some locking fixes.
8525
8526 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8527
8528         * metadata.c: added missing break in case statement.
8529
8530 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
8531
8532         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8533         typedbyref return values. Fixes #73941.
8534
8535 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
8536
8537         * security-manager.c|h: Added demandunmanaged method and 
8538         suppressunmanagedcodesecurity class to MonoSecurityManager.
8539         Renamed aptc class to allowpartiallytrustedcallers.
8540
8541 2005-03-17  Martin Baulig  <martin@ximian.com>
8542
8543         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
8544
8545 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8546
8547         * file-io.c: disabled file async. IO using aio_*. It uses the
8548         threadpool now. Workaround for bug #73718.
8549
8550 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8551
8552         * assembly.h, mono-config.c: added code to deal with bundled configs
8553         for bundled assemblies.
8554
8555 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
8556
8557         * *.c, private.h: cleanup, removing old private.h header file.
8558
8559 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
8560
8561         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
8562         and throw_on_unmappable_char attributes.
8563
8564 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
8565
8566         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
8567         _ProcessName_internal.
8568
8569 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
8570
8571         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
8572         #73631.
8573
8574         * icall.c threads.c threads-types.h: Remove slothash icalls as they
8575         are no longer used.
8576
8577 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
8578
8579         * object.c (compute_class_bitmap): Add support for generics. Fixes
8580         #73527.
8581
8582 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8583
8584         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
8585
8586 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8587
8588         * filewatcher.c: commented out the code for windows watcher, as we don't
8589         use it (we use the managed implementation instead).
8590
8591 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
8592
8593         * object-internals.h (MonoThread): Remove 'unused1' field.
8594
8595         * appdomain.c: Bump corlib version.
8596
8597         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
8598
8599         * reflection.c (mono_reflection_create_runtime_class): Remove the
8600         AssemblyBuilder.Save optimization since it causes too many problems.
8601
8602 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
8603
8604         * exception.c|h: Added mono_get_exception_reflection_type_load to
8605         create a ReflectionTypeLoadException object.
8606         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
8607         to return NULL is a InheritanceDemand fails during reflection. Updated
8608         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
8609         ReflectionTypeLoadException if an InheritanceDemand fails during 
8610         reflection. Added icall mapping for GetLinkDemandSecurity.
8611         * security-manager.c|h: Added ves_icall_System_Security_
8612         SecurityManager_GetLinkDemandSecurity internal call to return the
8613         class and methods permissions set for a LinkDemand. Removed unused
8614         fields in MonoSecurityManager.
8615
8616 2005-03-10  Martin Baulig  <martin@ximian.com>
8617
8618         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
8619         it's a generic instance.
8620
8621 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
8622
8623         * reflection.c (mono_get_object_from_blob): Applied patch from
8624         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
8625
8626         * class.c (mono_class_is_assignable_from): Another try at fixing 
8627         #73469 without breaking anything.
8628
8629 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
8630
8631         * class.c: (mono_class_is_assignable_from): Revert the last changes
8632         since they don't work with generics.
8633         
8634         * class.c (mono_class_is_assignable_from): Fix build bustage.
8635
8636         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
8637         the managed IsAssignableFrom method. Fixes #73469.
8638
8639         * reflection.c (mono_reflection_call_is_assignable_from): New helper
8640         function.
8641
8642 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
8643
8644         * object.c (mono_load_remote_field_new): Fix returning uninitialized
8645         memory when the remoting callback does not sets the out arguments.
8646         Fixes #73007.
8647
8648         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
8649         by mistake.
8650
8651         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
8652
8653         * object-internals.h (MonoStackFrame): Sync with managed object layout.
8654
8655         * appdomain.c: Bump corlib version.
8656
8657 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
8658
8659         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
8660         function.
8661
8662         * threads.c (mono_thread_attach): Detect threads which are not started
8663         by the GC pthread wrappers.
8664
8665 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
8666
8667         * icall.c: Added new icall for RNG.
8668         * rand.c|h: Added new icall to open the RNG. This allows to share a 
8669         single handle on Linux to access /dev/urandom and fix #73183.
8670
8671 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
8672
8673         * object.c: setting the new vtable in a transparent proxy object must
8674         not change the GC descriptor.
8675
8676 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8677
8678         * object.c: fixed compilation without GCJ support.
8679         * reflection.c: for runtime-created types ensure klass->has_references
8680         is correct (bug #73215).
8681
8682 2005-03-02  Martin Baulig  <martin@ximian.com>
8683
8684         * class.c (mono_class_is_assignable_from): Make this work if
8685         `oklass' is a generic instance; fixes #72831.
8686
8687 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8688
8689         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
8690         with hasthis set.
8691         
8692         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
8693
8694         * marshal.c: Reorganize native->managed marshalling code to also use
8695         the emit_marshal_... functions.
8696
8697 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8698
8699         * object.c: typed allocs have issues with bitmap sizes > 30,
8700         so check for max_set >= 30.
8701
8702 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
8703
8704         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
8705         managed code. Fixes #73012.
8706
8707         * metadata.h (MonoMarshalSpec): Add elem_mult field.
8708
8709         * metadata.c reflection.c: Load/Emit elem_mult as well.
8710         
8711         * metadata.h (MonoMarshalSpec): Add comment.
8712
8713         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
8714
8715         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
8716         num_elem to -1 if not given.
8717
8718         * object-internals.h (MonoReflectionMarshal): Add has_size field.
8719
8720         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
8721         given values.
8722
8723 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
8724
8725         * null-gc.c (mono_gc_free_fixed): Was not compilable.
8726
8727 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
8728
8729         * reflection.c (encode_marshal_blob): Encode param_num field as well.
8730
8731         * object-internals.h (MonoReflectionMarshal): Add param_num field.
8732
8733 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
8734
8735         * object.c: generalized the reference bitmap creation
8736         and added hooks for the new GC.
8737         * class-internals.c: removed the gc_bitmap field from MonoClass.
8738
8739 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8740
8741         * domain.c: help the compiler to produce better code
8742         in mono_jit_info_table_find ().
8743
8744 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8745
8746         * object.c: make all allocations look typed.
8747
8748 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8749
8750         * socket-io.c: load Mono.Posix if it's not loaded already
8751         (fixes bug#73033).
8752
8753 2005-02-24  Martin Baulig  <martin@ximian.com>
8754
8755         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
8756         * reflection.c (dup_type): Likewise.
8757
8758 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
8759
8760         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
8761         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
8762
8763 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8764
8765         * domain.c, threads.c, object-internals.h: make the critical thread
8766         local vars use the fast access mode (even when we're compiled in
8767         a lib). Provide accessors to be used by the jit during codegen.
8768
8769 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8770
8771         * appdomain.c: Changed hook functios behavior to include
8772         support for the reflection only assemblies. Some icalls were changed
8773         to support the mentioned assemblies too. Signatures of static methods
8774         try_assembly_resolve and real_load now have an additional parameter:
8775         refonly.
8776
8777         * assembly.c: General changes to mono_assembly_ methods to support
8778         reflection only api. Functions mono_assembly_open, mono_assembly_load,
8779         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
8780         suffix, to support an additional gbool parameter to specify whether
8781         the assembli is reflection only or not. Created some new hook functions 
8782         to add support for reflection only assemblies. Signatures of static 
8783         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
8784         have now an additional parameter: refonly.
8785
8786         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
8787         indicating whether the assembly is reflection only or not.
8788
8789         * exception.c: Add mono_get_exception_invalid_operation.
8790
8791         * icall.c: Throw an InvalidOperationException when trying to invoke
8792         a property/method/event, or trying to set/get the value of a field.
8793         Also add an icall to retrieve the ref_only flag to the
8794         MonoReflectionAssembly.
8795
8796 2005-02-23  Chris Toshok  <toshok@ximian.com>
8797
8798         Part of fix for #72827.
8799         * mono-debug.c (mono_debug_add_method): add lexical block data to
8800         the info we write.  Kind of a hack at the moment - we copy the
8801         lexical block info from the MonoDebugMethodInfo to the
8802         MonoDebugMethodJitInfo here, before writing it.
8803         (mono_debug_read_method): read the lexical block info.
8804
8805         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
8806
8807         * debug-mono-symfile.h: add lexical block support.
8808
8809         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
8810         support.
8811
8812 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8813
8814         * loader.c (mono_lookup_pinvoke_call): Fix warning.
8815
8816         * object.c (mono_runtime_free_method): Call mono_free_method () and
8817         put the TODOs there.
8818
8819         * loader.c (mono_free_method): Free up most memory allocated for 
8820         dynamic methods.
8821
8822 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8823
8824         * reflection.c: properly flag a Type argument to a
8825         named custom attr value (bug #72248).
8826
8827 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8828
8829         * reflection.c: reduce code duplication in named custom
8830         attribute encoding.
8831
8832 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
8833
8834         * reflection.c: properly encode custom attrs of type object
8835         (bug #72649).
8836
8837 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
8838
8839         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
8840
8841 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
8842
8843         * socket-io.c: load System.dll if it's not loaded already
8844         (bug #72850 and #70477).
8845
8846 2005-02-21  Martin Baulig  <martin@ximian.com>
8847
8848         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
8849         generic instances.
8850
8851 2005-02-21  Martin Baulig  <martin@ximian.com>
8852
8853         * reflection.c (mono_image_build_metadata): We also need to
8854         "fixup" the MethodImpl table after we computed the final method
8855         indices.  Call fixup_methodimpl() to do that.
8856         (fixup_methodimpl): New private method.
8857
8858 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
8859
8860         * assembly.c: special case mscorlib.dll (bug#72536),
8861         patch from Carlos Alberto Cortez.
8862
8863 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
8864
8865         * threads-types.h threads.c: Fix build bustage.
8866
8867         * threads.c: Use a union for long<->double conversions.
8868
8869         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
8870         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
8871
8872         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
8873         containing the checkpoint call with NOT_TAKEN.
8874         
8875         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
8876         checkpoint before pushing the arguments, so they won't have to be
8877         spilled to stack.
8878
8879 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8880
8881         * domain.c, assembly.c, domain-internals.h: make some data
8882         const and relocation-free.
8883
8884 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
8885
8886         * object.c, appdomain.c, class-internals.h: introduce the
8887         MonoClassRuntimeInfo structure to hold the info needed to
8888         use a class at runtime. Made mono_class_vtable() lock-free
8889         for all the appdomains.
8890
8891 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
8892
8893         * metadata-internals.h, image.c: introduce a per-image mempool to
8894         be used for memory that has the same lifetime as the image.
8895
8896 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
8897
8898         * domain.c: In mono_init_internal(), instead of selecting the first
8899         runtime version supported by an executable, get a list of all
8900         supported versions and select the one for which an mscorlib exists
8901         (since even if the runtime supports a given version, it doesn't mean
8902         that the framework for that version is installed).
8903         Modified get_runtimes_from_exe to support this behavior.
8904         In supported_runtimes, added information about additional system
8905         assembly versions.
8906         
8907         * assembly.c: Added support for more than one system assembly version
8908         per runtime version. Updated the assembly list.
8909         In mono_assembly_remap_version, removed the initial version check,
8910         since we don't know to which version we need to compare until we
8911         get the version set on which the assembly is based.
8912         Moved the code for loading corlib into the new method
8913         mono_assembly_load_corlib(), so it can be used by the initialization
8914         code.
8915         
8916         * domain-internals.h: Updated data structures and added declaration
8917         for mono_assembly_load_corlib.
8918
8919 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8920
8921         * reflection.c (resolve_object): Fix the creation of the signature in 
8922         the SignatureHelper case.
8923
8924         * assembly.c (mono_assembly_remap_version): Fix binary search.
8925         
8926 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
8927  
8928         * class.c: Added inheritance check when a method is overloaded (from a
8929         virtual method or when implementing an interface) and when a class is
8930         inherited. Added functions to set a failure for a class and to 
8931         retreive the exception from a failure.
8932         * class-internals.h: Added fields to MonoClass to keep the exception
8933         information status for inheritance (or other exceptions) to be thrown
8934         later (i.e. not at load time).
8935         * object.c: Throw the inheritance SecurityException when a type is to 
8936         be created with either class or method inheritance violations.
8937         * reflection.c|h: Fix when getting declsec from a class. Removed 
8938         unrequired code for class. Improved sanity in parameter naming.
8939         * security-manager.c|h: Added functions to check for class and method
8940         inheritance.
8941
8942 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
8943
8944         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
8945         and has_finalize in dynamic types as well.
8946
8947 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
8948
8949         * culture-info-table.h : fixed currency format for en-GB (and so on).
8950
8951 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
8952
8953         * gc.c: ensure the GC handles never have 0 as a value.
8954
8955 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8956
8957         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
8958         a pointer to a struct to unmanaged code. Fixes #72625.
8959
8960 2005-02-16  Martin Baulig  <martin@ximian.com>
8961
8962         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
8963
8964 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
8965
8966         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
8967
8968 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8969
8970         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
8971
8972         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
8973         UnmanagedFunctionPointerAttribute, use it for determining calling convention
8974         etc. Fixes #71471.
8975
8976         * reflection.c (mono_custom_attrs_get_attr): New helper function.
8977
8978         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
8979
8980 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
8981
8982         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
8983         changes to make the current context a field in MonoThread.
8984
8985 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
8986
8987         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
8988         the last change.
8989         
8990         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
8991         extracted from mono_marshal_get_native_wrapper.
8992
8993         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
8994         to create wrappers around native functions.
8995
8996         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
8997         delegates for arbitrary function pointers. Fixes #71472.
8998
8999 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9000
9001         * threads.c: cleaned up the code a little.
9002
9003 2005-02-15  Martin Baulig  <martin@ximian.com>
9004
9005         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
9006         the data table.
9007
9008         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
9009         allocate larger chunks if needed.
9010
9011 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9012
9013         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
9014         in by mistake.
9015
9016 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
9017
9018         * domain.c: keep the domains in an array and ensure the domain ids
9019         are kept small, so they can be used as indexes to domain-specific data
9020         with a small memory overhead.
9021
9022 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
9023
9024         * icall.c: Handle byref types in Type icalls. Fixes #72544.
9025
9026 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
9027
9028         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
9029
9030 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
9031
9032         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
9033
9034         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
9035         values.
9036
9037         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
9038         
9039 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
9040
9041         * domain-internals.h: add the hashtable here.
9042
9043         * class-internals.h: Remove `info' from MonoMethod
9044
9045         * domain.c: Add a new hashtable, jit_trampoline_hash
9046
9047 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9048
9049         * object.c: don't set the value of static fields
9050         (fixes bug#72494).
9051
9052 2005-02-11  Martin Baulig  <martin@ximian.com>
9053
9054         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
9055         (mono_debug_add_method): Silently ignore the method if it's too big.
9056         (mono_debug_add_type): Likewise.
9057
9058 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
9059
9060         * threads.c, appdomain.c: remove #ifdefs from the code.
9061
9062 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
9063
9064         * metadata-internals.h: Added flags to MonoAssembly to cache the most
9065         common security informations. This allows us to stay in unmanaged code
9066         when doing LinkDemand and it's special cases (except for the first 
9067         time for initialization). The flags a very much used with --security.
9068         * reflection.c|h: Added code to get declarative security attributes 
9069         for LinkDemand and InheritanceDemand. This required to refactor the
9070         existing code for Demand.
9071         * security-manager.c|h: Added new method fields for the special cases
9072         of LinkDemand.
9073
9074 2005-02-10  Martin Baulig  <martin@ximian.com>
9075
9076         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
9077         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
9078
9079 2005-02-10  Martin Baulig  <martin@ximian.com>
9080
9081         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
9082         debugging code; this is almost a complete rewrite.
9083
9084         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
9085
9086 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9087
9088         * domain.c, object.h: expose mono_string_equal () and 
9089         mono_string_hash ().
9090         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
9091         it's implemented in managed code.
9092
9093 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9094
9095         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
9096         lo leak objects between appdomains.
9097
9098 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9099
9100         * assembly.c: old compilers compilation fix from 
9101         robertj@gmx.net (Robert Jordan).
9102
9103 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
9104
9105         * class-internals.h: Little reminder for the future.
9106
9107         * debug-helpers.c: Fix up wrapper_type_names
9108
9109 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9110
9111         * image.c, metadata-internals.h: when loading an image from a file,
9112         mmap all of it and use the same codepaths as when using a
9113         in-memory image: the code is simpler and we use less memory
9114         (both writable and readonly).
9115
9116 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9117
9118         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
9119         API to alloc runtime data structures that need to be tracked by the
9120         GC and contain pointers.
9121         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
9122         make the code more readable and eventually use a different GC.
9123
9124 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
9125
9126         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
9127         for out arguments.
9128         
9129 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
9130
9131         * object.c: In release_type_locks(), don't release the cctor lock
9132         if it has already been released. This fixes a crash in the
9133         thread5 test.
9134
9135 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
9136
9137         * gc.c, marshal.c, icall.c: register a delegate for finalization
9138         only when the native function pointer has been allocated for it.
9139
9140 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9141
9142         * object.c: cleaned up some code, allocate objects that are
9143         pointer free with the atomic malloc variant. Allocate memory
9144         for static data from the mempool if it's pointer-free.
9145         Allocate the bounds array at the end of the array data, when needed.
9146         * object-internals.h, object.h: move a private function in a private
9147         header.
9148         * class.c: handle missing case in tracking references in fields.
9149
9150 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
9151
9152         * class.c, class-internals.h: keep track if a type has
9153         reference fields in either the instance or static fields.
9154
9155 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
9156
9157         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
9158         and renamed to MonoRuntimeInfo. Added fields to store the expected
9159         framework assembly version. Changed mono_get_framework_version and
9160         mono_get_runtime_version for a single mono_get_runtime_info method.
9161         
9162         * assembly.c: Added method to remap system assembly versions to the
9163         current executing runtime version. Removed old mapping code.
9164         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
9165         
9166         * icall.c, reflection.c: Track api changes.
9167
9168 2005-02-06  Miguel de Icaza  <miguel@novell.com>
9169
9170         * loader.c (method_from_memberref): Improve error reporting,
9171         produce the class name instead of the typeref/typedef index. 
9172
9173 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
9174
9175         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
9176
9177 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9178
9179         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
9180         stdcall and charset name mangling.  Reorganize the code and add
9181         some tracing stuff.
9182
9183 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9184
9185         * monodiet.c: More iters!
9186
9187         * marshal.c: Iter usage.
9188
9189         * icall.c: Iter usage.
9190
9191         * object.c: Use iters.
9192
9193         * debug-helpers.c: More iters
9194
9195 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9196
9197         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
9198         under win32.
9199
9200 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
9201
9202         * mono-debug-debugger.c: use iters
9203
9204         * class.c, class-internals.h: mono_class_setup_events is static
9205         now
9206
9207         * All callers: use iters
9208
9209 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
9210
9211         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
9212         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
9213
9214 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9215
9216         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
9217
9218         * marshal.h: Add prototypes for ldfld/stfld_remote.
9219
9220         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
9221         this is called during startup.
9222         
9223 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
9224
9225         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
9226         MonoThreadsSync struct private in monitor.c. Changed the way
9227         MonoThreadsSync is allocated so it's faster and there is no
9228         need to keep track of it with a finalizer and it uses less memory.
9229         This also finally allows us to allocate mono objects as ptrfree when
9230         there are no reference fields.
9231
9232 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
9233
9234         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
9235         disappearing link to the GC interface and use them to simplify
9236         the gchandles code.
9237
9238 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
9239
9240         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
9241         stfld_remote which call mono_load/store_field_new. This allows methods
9242         calling ldfld/stfld wrappers to be AOTed.
9243
9244         * console-io.c: Include sys/filio.h under solaris.
9245         
9246         * console-io.c: Include curses.h if needed correctly.
9247
9248 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9249         
9250         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
9251         method->klass as well.
9252
9253         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
9254
9255         * class.c (mono_class_init): Switch on lazy initialization of 
9256         methods.
9257
9258         * class.c (mono_class_get_finalizer): Handle the case when the 
9259         finalizer is inherited.
9260
9261 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9262
9263         * console-io.c: <curses.h> is needed by term.h on solaris.
9264
9265 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
9266
9267         * icall.c, class-internals.h, monodiet.c, class.c: Remove
9268         mono_class_setup_properties where possible. Remove this ftn from
9269         the header file, and make it static.
9270
9271 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
9272
9273         * loader.c: Add missing setup_... call.
9274
9275         * class.c: Add missing setup_... calls.
9276
9277         * class.c (mono_class_init): Switch on lazy initialization of 
9278         the generic vtable.
9279         
9280         * class.c (mono_class_init): Fix generics broken by the recent changes.
9281
9282         * monodiet.c (handle_type): Add missing setup_... calls.
9283
9284         * class.c: Back out garbage in previous patch.
9285         
9286         * class.c: Add missing setup_... calls.
9287
9288         * class.c (mono_class_get_method_from_name_flags): Avoid calling
9289         mono_class_setup_methods () if possible.
9290
9291         * class-internals.h (MonoClass): Add 'has_cctor' flag.
9292
9293         * class-internals.h (MonoCachedClassInfo): New structure.
9294
9295         * class.c: Initialize properties and events fields of MonoClass lazily.
9296
9297         * class.c: Add infrastructure for lazily initializing the methods and
9298         vtable fields of MonoClass. Not yet used.
9299
9300         * class.c (mono_class_get_finalizer): New helper function.
9301
9302         * class.c: Add infrastructure for loading some class related data from
9303         an AOT file.
9304
9305         * object.c: Add infrastructure for initializing the vtable from data
9306         in the AOT file.
9307
9308         * gc.c (run_finalize): Use mono_class_get_finalizer ().
9309
9310         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
9311         appropriate initialization function before accessing parts of the
9312         MonoClass structure.
9313
9314         * marshal.c: Fix warnings.
9315         
9316         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
9317
9318         * mono-debug-debugger.c (get_exception_message): Use 
9319         mono_class_get_method_from_name_flags ().
9320
9321 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
9322
9323         * reflection.c, appdomain.c: Replace a few manual searches that
9324         Zoltan missed. (Paolo approved this part of my initial patch).
9325
9326 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
9327
9328         * profiler.c: disable recording statistical events at report time.
9329
9330 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9331
9332         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
9333         to byteswap arrays of enum values, too (bug #72080).
9334
9335 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
9336
9337         * appdomain.c (set_domain_search_path): Allow this to be called if
9338         domain->setup is not yet set.
9339
9340         * loader.c (mono_method_get_index): New helper function.
9341
9342         * loader.c reflection.c: Use mono_method_get_index ().
9343
9344         * class.c (mono_class_get_method_from_name_flags): New helper method.
9345
9346         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
9347         this.
9348
9349         * class.c (mono_class_get_cctor): New helper method.
9350
9351         * string-icalls.c object.c class.c marshal.c reflection.c: Use
9352         mono_class_get_method () to look up methods.
9353
9354 2005-02-01  Miguel de Icaza  <miguel@novell.com>
9355
9356         * console-io.c: Fix the build, this should work on Windows.
9357
9358 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
9359
9360         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
9361         be set to null to keep things valid
9362
9363 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9364
9365         * icall.c: added Console 2.0 icalls.
9366         * Makefile.am: added console-io.[ch]
9367         * console-io.[ch]: internal calls for Console 2.0 API.
9368
9369 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9370
9371         * class.c: make sure we consider all the interfaces
9372         when calculating max_interface_id (bug found by
9373         Jeroen Frijters running ikvm).
9374
9375 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
9376
9377         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
9378         valuetype fields to null.
9379
9380         * object.c (set_value): Ditto. Fixes #71669.    
9381
9382 2005-01-31  Martin Baulig  <martin@ximian.com>
9383
9384         * metadata.c (mono_metadata_has_generic_params): New public
9385         function; checks whether something is a generic method.
9386
9387 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
9388
9389         * appdomain.c: fix infinite recursion when adding assemblies.
9390
9391 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
9392
9393         * object.c: Fix small typo to return all items for Environment.
9394         GetCommandLineArgs.
9395
9396 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
9397
9398         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
9399         reflection.c: more domain and assembly-unload related fixes
9400         and memory leaks plugs.
9401
9402 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
9403
9404         * 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.
9405
9406 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
9407
9408         * loader.c (mono_method_signature): Make this method lazy
9409         (mono_get_method_from_token): Don't computate the signature here.
9410
9411         Doing this saves quite a bit of memory. I got 90 kb on starting up
9412         monodoc. It should also save some disk reads on startup.
9413
9414         * *: MonoMethod->signature might be NULL now. You *MUST* use
9415         mono_method_signature.
9416
9417 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
9418
9419         * object.c (mono_runtime_get_main_args): Return an array from the
9420         current domain here. Fixes #71938.
9421
9422 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
9423
9424         * monitor.c: formatting changes to comply with the
9425         mono coding style and remove #ifdefs from the code.
9426
9427 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9428
9429         * metadata.c, private.h: remove some unneeded data
9430         and use a more compact representation for table schemas.
9431
9432 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
9433
9434         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
9435         to get a better distribution in hash tables.
9436         * *.c: use mono_aligned_addr_hash() where appropriate.
9437         * assembly.c: make var static.
9438
9439 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
9440
9441         * domain-internals.h: Put MonoJitInfo on a diet.
9442
9443         * domain.c: Fix a warning.
9444
9445 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9446
9447         * gc.c: rework the gc handles code to reuse handles
9448         when freed.
9449
9450 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
9451
9452         * domain.c: fixed long standing bug in mono_string_equal() which
9453         was brought to light with the ldstr changes.
9454
9455 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
9456
9457         * reflection.c: Remove warning by adding missing include for marshal.h
9458
9459 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
9460
9461         * domain.c, object.c: change the ldstr_table to hold
9462         MonoString* as keys: makes the runtime isinterned lookup
9463         faster and simplifies memory management.
9464
9465 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
9466  
9467         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
9468         possible to add imperative security checks before calling the icall.
9469         * reflection.c: Return security attributes on the original MonoMethod
9470         (and not the wrapped one). This fix permissions on icalls.
9471
9472 2005-01-25  Dick Porter  <dick@ximian.com>
9473
9474         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
9475         the check for mktime() support actually test the mktime() return
9476         value.  "Fixes" bug 71682, though the output is still different to
9477         MS.
9478
9479 2005-01-25  Martin Baulig  <martin@ximian.com>
9480
9481         * class.c (mono_class_is_assignable_from): Make this work for
9482         generic instances.
9483
9484 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
9485
9486         * marshal.c (mono_string_utf8_to_builder)
9487         (mono_string_builder_to_utf16): We might not have ownership of the
9488         string. In thise case, we need to create a new buffer.
9489
9490         * object-internals.h (mono_stringbuilder_capacity): sb->str might
9491         be null, in which case, use the default capacity.
9492
9493 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
9494
9495         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
9496         GC events to the profiler.
9497
9498 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
9499
9500         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
9501         if you don't want the GC to run.
9502
9503 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
9504
9505         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
9506         start providing a GC API and keeping different implementations in
9507         their own file.
9508         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
9509
9510 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
9511
9512         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
9513         mmap rather than allocating a huge buffer.
9514         (mono_debug_close_mono_symbol_file): Free the buffer allocated
9515         above.
9516
9517 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
9518
9519         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
9520         and CheckExecutionRights.
9521         * reflection.c|h: Keep the index of the declarative security to be 
9522         used, instead of the pointer, when AOT compiler is used. Also add 
9523         class initialization when requesting demands.
9524         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
9525         CheckExecutionRights. Both properties are now FALSE by default, and
9526         unmodifiable, unless the --security option is used.
9527
9528 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9529
9530         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
9531         reflection.c: properly refcount images and assemblies, many leaks fixed.
9532
9533 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9534
9535         * threadpool.c: increase the timeout for threads in the thread pool to
9536         10s.  Fixes bug #67159.
9537
9538 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
9539
9540         * class-internals.h: Sun's compiler insists on explicit
9541         signed on bit fields to handle then correctly.
9542
9543 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
9544
9545         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
9546         Make the size of the array fit only the number of invalid path
9547         chars that we have.
9548
9549         * class.c (_mono_class_get): Improve the error reporting when a
9550         class referenced is not found, to assist debugging. 
9551
9552 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
9553
9554         * threads.c: fix off-by-one error.
9555         * domain.c: free data allocated in the domain.
9556
9557 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9558
9559         * reflection.c (mono_method_body_get_object): Fill out exception info
9560         as well.
9561
9562         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
9563         structure.
9564         
9565 2005-01-19  Martin Baulig  <martin@ximian.com>
9566
9567         * loader.c (mono_get_method_constrained): Make this work again.
9568
9569 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
9570
9571         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
9572         guint16 to match the managed side.
9573
9574         * reflection.c (mono_reflection_body_get_object): Fill out local
9575         variables array.
9576
9577         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
9578         as well.
9579
9580         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
9581         'local_var_sig_token'.
9582
9583 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
9584
9585         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
9586         System.Drawing.
9587
9588         * reflection.c (mono_method_body_get_object): Handle abstract and
9589         runtime methods.
9590
9591 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
9592
9593         * marshal.c, loader.c, class-internals.h, reflection.c:
9594         store the emthod data for a wrapper in an array instead of a list.
9595
9596 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
9597
9598         * marshal.c: change the code to allocate memory more
9599         conservatively for method wrappers.
9600
9601 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
9602
9603         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
9604         fields from MonoClass to the marshal info structure where they belong.
9605
9606 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
9607
9608         * class.c, object.c, class-internals.h, marshal.c: rearrange
9609         some fields and tweak some types to lower memory usage.
9610
9611 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
9612
9613         * threads.c (signal_thread_state_change): Handle the case when the
9614         target thread is the current thread.
9615
9616         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
9617
9618         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
9619         emit_ptr_to_object_conv. 
9620
9621         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
9622         marshalling. Fixes #71352.
9623
9624 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
9625
9626         * metadata.h, blob.h: move table enum to blob.h so it can be included
9627         in any header.
9628         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
9629         cut the size of MonoImage/MonoDynamicImage.
9630
9631 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
9632
9633         * profiler.c (mono_profiler_install_simple): Fix default arguments.
9634
9635 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9636
9637         * reflection.c, reflection.h, icall.c: add a function to check
9638         if an attribute type is defined for a metadata object.
9639
9640 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
9641
9642         * object-internals.h: Added some needed fields from StringBuilder class.
9643         * marshal.c: Set the maxCapacity when creating a StringBuilder.
9644
9645 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
9646
9647         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
9648         threads before shutting down the runtime.
9649
9650         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
9651
9652 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
9653
9654         * object-internal.h, threads.c: implement stacksize and 
9655         parameterized thread start functionality (requires
9656         matching corlib). Marked broken code for later removal.
9657
9658 2005-01-12  Martin Baulig  <martin@ximian.com>
9659
9660         * class-internals.h (MonoGenericClass): Moved the `initialized'
9661         flag to MonoDynamicGenericClass, removed `init_pending'.
9662         (MonoGenericInst): Added `is_reference' flag.
9663
9664 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
9665
9666         * reflection.c (mono_image_create_pefile): Only set the pe_offset
9667         inside the MSDOS header. Fixes #71201.
9668
9669         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
9670         gc thread.
9671         (mono_domain_finalize): Ditto.
9672
9673 2005-01-12  Martin Baulig  <martin@ximian.com>
9674
9675         * class.c (mono_get_shared_generic_class): Use the cache for
9676         non-dynamic generic classes.
9677
9678         * class-internals.h (mono_class_create_generic_2): Removed
9679         function prototype, this function is now static inside class.c.
9680
9681         * class.c (mono_class_create_generic_2): Made this static, only
9682         call it from mono_class_init() and mono_class_setup_parent().
9683         (collect_implemented_interfaces_aux): Call mono_class_init() on
9684         the interfaces we collect.
9685         (mono_class_setup_vtable): Call mono_class_init (class->parent).
9686
9687 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9688
9689         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
9690         it a real thread handle.
9691
9692         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
9693         MonoJitExceptionInfo, since each catch clause needs its own variable.
9694         
9695 2005-01-11  Dick Porter  <dick@ximian.com>
9696
9697         * image.c (mono_pe_file_open): New variant on mono_image_open()
9698         that does not set up the CLI metadata; used for FileVersionInfo so
9699         it can get the data for windows binaries too.
9700         
9701         * process.c (process_read_string_block): Don't read off the end of
9702         the StringTable block.
9703
9704         These both fix bug 70766.
9705
9706 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
9707
9708         * gc.c: set some fields to NULL at GC cleanup time.
9709         * threads.c: if we quit the main thread, call exit ().
9710
9711 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
9712
9713         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
9714
9715 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
9716
9717         * threads.h, threads.c, object.c: added accessor and settor for
9718         main_thread. Handle it specially when exiting from it: wait
9719         for other foreground threads to exit.
9720
9721 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
9722
9723         * process.c, verify.c: remove some bloat.
9724
9725 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
9726
9727         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
9728         the calling convention to cdecl under win32.
9729
9730 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
9731
9732         * object.c (mono_object_get_size): New function to get the size of
9733         an object instance.
9734
9735         * profiler.c (simple_allocation): Use above.
9736
9737 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
9738
9739         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
9740         ves_icall_System_AppDomain_getRootDomain (as it's not required to
9741         get an appdomain by it's id and we can't assume the root's id is 0).
9742         * domain-internals.h: Change the function prototype to match.
9743         * icall.c: Change the icall table for AppDomain.
9744
9745 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
9746
9747         * locales.c (string_invariant_compare_char): Only compute
9748         GUnicodeTypes in the case where we need them.  Test for ordinality
9749         first and return if so.
9750
9751         From the commit:
9752
9753                 /*
9754                  * FIXME: here we must use the information from c1type and c2type
9755                  * to find out the proper collation, even on the InvariantCulture, the
9756                  * sorting is not done by computing the unicode values, but their
9757                  * actual sort order.
9758                  */
9759
9760 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
9761
9762         * loader.c: for P/Invoke methods, allow the "Internal" shared
9763         library name to refer to the calling process symbol namespace.
9764
9765 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
9766
9767         * Makefile.am: Add the security manager to the build.
9768         * security-manager.c|h: New. Initialization of the security manager.
9769
9770 2005-01-07  Dick Porter  <dick@ximian.com>
9771
9772         * threads.c: 
9773         * monitor.c: Update thread state during Monitor and WaitHandle
9774         waits.  Fixes bug 71031.
9775
9776 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
9777
9778         * reflection.c (property_encode_signature): Correctly handle when the
9779         property has no methods.
9780
9781 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
9782
9783         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
9784         
9785         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
9786         fields from mb, not rmb. Fixes #71017.
9787
9788         * marshal.c (emit_ptr_to_str_conv): Add support for 
9789         ByValTStr -> string conversion. Fixes #71015.
9790
9791         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
9792
9793         * mempool.c (mono_mempool_contains_addr): New helper function.
9794
9795 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9796
9797         * metadata.c (mono_metadata_compute_size): Fix size calculation of
9798         HasSematics encoded fields.
9799         
9800         * metadata.c (mono_type_to_unmanaged): Improve error message for 
9801         invalid string marshalling.
9802
9803         * metadata.c: Fix warnings.
9804         
9805 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
9806
9807         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
9808         profiler support.
9809
9810 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
9811
9812         * domain.c object.c domain-internals.h: Revert part of r38077 since the
9813         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
9814         tests.
9815
9816 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
9817
9818         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
9819         so methods containing these can be AOTed.
9820
9821 2005-01-03  Martin Baulig  <martin@ximian.com>
9822
9823         * loader.c (find_method): Removed the hack for generic instances.
9824         (method_from_memberref): If our parent is a generic instance, pass
9825         its generic type definition to find_method() and then inflate the
9826         method.
9827         (mono_get_method_constrained): Pass the generic type definition to
9828         find_method() and inflate the method later.
9829
9830         * class-internals.h (MonoStats): Added `generic_class_count'.
9831
9832         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
9833         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
9834
9835         * reflection.c (mono_custom_attrs_from_params): Don't ignore
9836         generic type definitions.
9837
9838 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
9839
9840         * loader.c icall.c: Fix warnings.
9841
9842 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
9843
9844         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
9845         blittable types. Fixes #70864.
9846
9847 2004-12-29  Martin Baulig  <martin@ximian.com>
9848
9849         * icall.c
9850         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
9851
9852         * reflection.c (mono_method_get_object): Create a
9853         "System.Reflection.MonoGenericMethod" for inflated methods; don't
9854         call mono_get_inflated_method().
9855
9856         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
9857
9858 2004-12-27  Martin Baulig  <martin@ximian.com>
9859
9860         * class-internals.h (MonoMethod): Added `is_inflated' flag.
9861         (MonoMethodInflated): Added `inflated' field.
9862
9863         * class.c (mono_class_inflate_generic_method): Don't really
9864         inflate the method here; just set the `is_inflated' flag in the
9865         MonoMethod.
9866         (mono_class_get_inflated_method): Actually inflate the method here
9867         if it's not already inflated; we use the MonoMethodInflated's new
9868         `inflated' field as a cache.
9869
9870 2004-12-26  Martin Baulig  <martin@ximian.com>
9871
9872         * class.c
9873         (inflate_generic_class): Moved some code out of inflate_generic_type().
9874         (mono_class_inflate_generic_method): If we're already inflated,
9875         inflate the context and use the declaring method; ie. make sure
9876         the declaring method of an inflated method is always the generic
9877         method definition.
9878         (mono_class_create_from_typedef): Create
9879         `class->generic_container->context->gclass'.
9880
9881 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
9882
9883         * metadata-internals.h, marshal.c, reflection.c: More
9884         MonoGHashTable->GHashTable.
9885
9886         * domain-internals.h, class.c: Change MonoGHashTable's into
9887         GHashTables for some cases where no gc stuff is used
9888
9889         All users: update apis
9890
9891 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
9892
9893         * metadata.c (builtin_types): Make this `const'. Makes this get
9894         put into the shareable section.
9895         (mono_metadata_init): Casts to make gcc happy.
9896
9897 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
9898
9899         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
9900
9901 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
9902
9903         * icall.c: Added an internal call to retrieve the position and length
9904         of assembly-level declarative security attributes (RequestMinimum, 
9905         RequestOptional and RequestRefuse). This is used by the Assembly class
9906         to re-create the corresponding permission sets.
9907
9908 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
9909
9910         * marshal.c: fix the stelemref wrapper to be type correct
9911         (and faster).
9912
9913 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
9914
9915         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
9916         to do key & 0x7fffffff. Hashtable already does this. It just
9917         results in longer code.
9918
9919 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
9920
9921         * appdomain.c: Bump corlib version.
9922         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
9923         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
9924         * reflection.c|h: Add functions to get declarative security infos
9925         (blob position and length) for assemblies, classes and methods.
9926
9927 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
9928
9929         * reflection.c: sort the constant table (bug #70693).
9930
9931 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
9932
9933         * object-internals.h, threads.c, domain.c: add accessors for
9934         the MonoThread and MonoDomain tls keys.
9935
9936 2004-12-18  Martin Baulig  <martin@ximian.com>
9937
9938         * class.c (inflate_generic_type): If we're inflating a generic
9939         instance, set `ngclass->context->container = context->container';
9940         ie. the container we inflated into.
9941
9942         * metadata.c (mono_metadata_parse_generic_param): Reflect above
9943         inflate_generic_type() changes.
9944
9945 2004-12-17  Martin Baulig  <martin@ximian.com>
9946
9947         * class-internals.h
9948         (MonoGenericClass): Replaced `MonoType *generic_type' with
9949         `MonoClass *generic_class'.  Removed `dynamic_info'; if
9950         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
9951         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
9952
9953 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
9954
9955         * exception.c (mono_exception_from_token): New helper function.
9956
9957 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
9958
9959         * assembly.c (mono_assembly_load_with_partial_name): Call 
9960         mono_assembly_loaded before invoking the preload hooks. Fixes
9961         #70564.
9962
9963         * object-internals.h (MonoThread): Change culture_info and 
9964         ui_culture_info into an array.
9965
9966         * threads.c: Cache culture info objects from more than one appdomain.
9967
9968         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
9969         current UI culture.
9970
9971 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
9972
9973         * threads.h threads.c appdomain.c: Clear the culture_info field of
9974         all threads during unloading if they point to an object in the dying
9975         appdomain.
9976
9977 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
9978
9979         * culture-info.h (TextInfoEntry): New struct
9980         * object-internals.h: sync with managed
9981         * locales.c: fill the `text_info_data' field
9982         * culture-info-tables.h: update
9983
9984 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
9985
9986         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
9987         collector.
9988
9989 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
9990
9991         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
9992         (ves_icall_ModuleBuilder_getMethodToken): Ditto
9993
9994 2004-12-12  Martin Baulig  <martin@ximian.com>
9995
9996         * mono-debug-debugger.c (write_type): If we're an enum and the
9997         builtin types have already been initialized, call mono_class_init().
9998
9999 2004-12-11  Martin Baulig  <martin@ximian.com>
10000
10001         * metadata.c (mono_metadata_load_generic_params): Added
10002         `MonoGenericContainer *parent_container' argument; automatically
10003         compute `container->is_method'; pass the correct owner to
10004         get_constraints().      
10005
10006         * reflection.c (compare_genericparam): Sort the GenericParam table
10007         according to increasing owners. 
10008
10009 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
10010
10011         * profiler.c: allow disabling the default profiler.
10012
10013 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
10014
10015         * decimal.c, icall.c: allow disabling System.Decimal support.
10016
10017 2004-12-09  Marek Safar <marek.safar@seznam.cz>
10018
10019         * reflection.c: Add support for null attribute arguments.
10020
10021 2004-12-09  Martin Baulig  <martin@ximian.com>
10022
10023         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
10024         names to get rid of compiler warnings.
10025
10026 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
10027
10028         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
10029         mono_marshal_load_type_info (). Fixes #69625.
10030         (mono_marshal_get_ptr_to_struct): Likewise.
10031
10032 2004-12-08  Martin Baulig  <martin@ximian.com>
10033
10034         * mono-debug.h: Bumped version number to 47.
10035
10036         * mono-debug-debugger.c
10037         (mono_debugger_event_handler, mono_debugger_event): Take two
10038         guint64 arguments insteed of a gpointer and a guint32.  
10039
10040 2004-12-08  Martin Baulig  <martin@ximian.com>
10041
10042         * debug-mono-symfile.h
10043         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
10044         `address' to `native_offset'.
10045
10046 2004-12-08  Martin Baulig  <martin@ximian.com>
10047
10048         * class.c (mono_class_create_from_typespec): Only inflate if we
10049         either have `context->gclass' or `context->gmethod'.
10050
10051 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
10052
10053         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
10054
10055         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
10056
10057         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
10058
10059         * reflection.c (mono_assembly_get_object): Remove the workaround put
10060         in for the release.
10061         
10062         * appdomain.c: Use the corlib_internal field from MonoAssembly.
10063
10064         * appdomain.c: Bump corlib version.
10065
10066         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
10067         be visible in other appdomains.
10068
10069 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
10070
10071         * threads.c: Interlocked inc and dec for longs were messed up,
10072         use a KISS based impl for this. Fixes 70234
10073
10074 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
10075
10076         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
10077
10078 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10079
10080         * icall.c: fix to follow policy not to allow struct
10081         arguments in icalls.
10082
10083 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10084
10085         * process.c: make the patch that handles spaces in file paths work
10086         on mono/windows too.
10087
10088 2004-12-06  Martin Baulig  <martin@ximian.com>
10089
10090         * class.c (mono_class_create_generic): Call
10091         mono_class_setup_supertypes() if we're dynamic.
10092         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
10093
10094 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
10095
10096         * object-internals.h: Add new fields to MonoThread.
10097
10098         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10099
10100         * icall.c threads-types.h threads.c: Add new icalls.
10101
10102         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
10103
10104         * object-internals.h (MonoReflectionAssembly): Sync object layout with
10105         managed side.
10106
10107         * appdomain.c: Bump corlib version.
10108
10109         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
10110         internal assemblies. Fixes #69181.
10111
10112 2004-12-05  Martin Baulig  <martin@ximian.com>
10113
10114         * class.c (mono_class_inflate_generic_signature): Make this a
10115         no-op if `context' is NULL or we don't have any type parameters;
10116         also copy `sentinelpos'.        
10117
10118 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
10119
10120         * image.c: Add unbox_wrapper_cache.
10121
10122         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
10123
10124         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
10125         function generator.
10126         
10127         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
10128         Fixes #70173.
10129
10130         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
10131         
10132 2004-12-04  Martin Baulig  <martin@ximian.com>
10133
10134         * loader.c (mono_method_get_signature_full): New public function;
10135         like mono_method_get_signature(), but with an additional
10136         `MonoGenericContext *' argument.
10137
10138         * class.c (mono_class_inflate_generic_signature): Formerly known
10139         as inflate_generic_signature(); make this public.
10140
10141 2004-12-04  Martin Baulig  <martin@ximian.com>
10142
10143         * metadata.c
10144         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
10145         instead of a `MonoGenericContainer *'.  
10146         (mono_metadata_parse_array_full): Likewise.
10147         (mono_metadata_parse_signature_full): Likewise.
10148         (mono_metadata_parse_method_signature_full): Likewise.
10149         (mono_metadata_parse_generic_inst): Likewise.
10150         (mono_metadata_parse_generic_param): Likewise.
10151         (mono_metadata_parse_mh_full): Likewise.
10152         (mono_type_create_from_typespec_full): Likewise.
10153
10154 2004-12-03  Martin Baulig  <martin@ximian.com>
10155
10156         * class-internals.h (MonoGenericContainer): Replaced the
10157         `MonoGenericContext * pointer with a `MonoGenericContext'
10158         structure and made it the first element.
10159
10160 2004-12-03  Martin Baulig  <martin@ximian.com>
10161
10162         * class.c
10163         (inflate_generic_type): Set the `context->container' when creating
10164         a new MonoGenericContext.
10165         (mono_class_inflate_generic_method): Likewise.
10166         (mono_class_create_from_typespec): Just use `context->container'
10167         to get the container.
10168
10169         * loader.c (method_from_methodspec): Set `context->parent' from
10170         `context->container' - and if that's a method container, use its
10171         parent.  Also set the `context->container' when creating a new
10172         MonoGenericContext.
10173         (mono_get_method_from_token): Use just `context->container' to get
10174         the container.
10175
10176         * metadata.c (do_mono_metadata_parse_generic_class): Also set
10177         `gclass->context->container'.
10178
10179         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
10180         the `context->container' when creating a new MonoGenericContext.
10181
10182 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
10183
10184         * reflection.c (compare_genericparam): Sort params with identical
10185         owner by their number. Fixes gen-111 on sparc.
10186
10187 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10188
10189         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
10190         around the domain changes.
10191
10192         * appdomain.c (mono_domain_unload): Handle the case when the thread
10193         calling Unload is itself being aborted during unloading. Fixes #70022.
10194
10195         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
10196
10197         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
10198         checkpoint_func as an icall so it gets a wrapper.
10199         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
10200         in the cross-appdomain wrappers too.
10201
10202         * threads.c (mono_thread_has_appdomain_ref): Make this public.
10203
10204         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
10205
10206         * reflection.c: Fix some memory leaks.
10207         
10208 2004-12-02  Martin Baulig  <martin@ximian.com>
10209
10210         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
10211
10212         * metadata.c (generic_class_cache): New static hashtable.
10213         (mono_metadata_lookup_generic_class): New public method.
10214
10215 2004-12-02  Martin Baulig  <martin@ximian.com>
10216
10217         * class.c (mono_class_create_from_typedef): Call
10218         mono_class_setup_parent() and mono_class_create_mono_type() before
10219         parsing the interfaces.
10220
10221 2004-12-02  Martin Baulig  <martin@ximian.com>
10222
10223         * metadata.c (generic_inst_cache): New static hashtable.
10224         (mono_metadata_lookup_generic_inst): New public function.
10225         (mono_metadata_inflate_generic_inst): New public function.
10226         (mono_metadata_parse_generic_inst): New public function.
10227         (do_mono_metadata_parse_generic_class): Use the new
10228         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
10229         since this'll also use the cache.
10230
10231         * reflection.c (mono_reflection_bind_generic_method_parameters):
10232         Use mono_metadata_lookup_generic_inst() to use the new cache.
10233
10234         * class.c (inflate_mono_type): Use
10235         mono_metadata_inflate_generic_inst() to inflate a generic
10236         instance; this'll also use the new cache.
10237
10238         * loader.c (method_from_methodspec): Use
10239         mono_metadata_parse_generic_inst() and
10240         mono_metadata_inflate_generic_inst() rather than parsing it
10241         manually, so we can use the new cache.
10242
10243 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
10244
10245         * threads.c (wait_for_tids): Do not incorrectly free threads when 
10246         the wait times out.
10247
10248 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
10249
10250         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
10251         iter->args based on whether parameters are passed in registers (i.e.
10252         MONO_ARCH_REGPARMS is defined)
10253
10254 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
10255
10256         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
10257         the exception message. Fixes #70070.
10258         (method_from_methodspec): Fix warnings.
10259
10260 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10261
10262         * process.c: (complete_path) return the path quoted
10263
10264 2004-12-01  Martin Baulig  <martin@ximian.com>
10265
10266         * class-internals.h (MonoGenericInst): New structure.
10267         (MonoGenericClass): Replaced `type_argc', `type_argv' and
10268         `is_open' with `MonoGenericInst *inst'.
10269         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
10270         `is_open' with `MonoGenericInst *inst'.
10271
10272 2004-11-30  Martin Baulig  <martin@ximian.com>
10273
10274         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
10275
10276         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
10277         to `generic_class_cache'.
10278
10279         * metadata.c
10280         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
10281         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
10282         (mono_generic_inst_is_valuetype): Renamed to
10283         mono_generic_class_is_valuetype().
10284
10285         * class-internals.h
10286         (MonoGenericInst): Renamed to MonoGenericClass.
10287         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
10288         (MonoClass): Renamed `generic_inst' to `generic_class'.
10289         (MonoGenericContext): Renamed `ginst' to `gclass'.
10290
10291         * object-internals.h
10292         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
10293
10294         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
10295         mono_reflection_generic_class_initialize().
10296
10297         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
10298         now known as "System.Reflection.MonoGenericClass".
10299         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
10300
10301 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
10302
10303         * class-internals.h: Added a flag field to MonoClass to cache the
10304         declarative security attributes actions associated with the class.
10305         * domain-internals.h: Added booleans to MonoJitInfo to cache the
10306         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
10307         applicable to the JITted method.
10308         * reflection.c|h: Added functions to extract (as flags) which security
10309         actions are available (declaratively) for a method, class or assembly.
10310         * metadata.c|h: Added functions to search the declarative security
10311         table in the metadata.
10312         
10313 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
10314
10315         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
10316         EXPORTEDTYPES are already in the class name cache, so there is no
10317         need to add extra code here to look at them. Just removes a bit of
10318         cruft.
10319
10320         (ves_icall_System_Environment_get_TickCount): No need for #if
10321         WINDOWS. We already have the code in io-layer.
10322
10323 2004-11-28  Martin Baulig  <martin@ximian.com>
10324
10325         * loader.c
10326         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
10327         Fixes gen-112.cs.
10328
10329 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
10330
10331         * assembly.c (do_mono_assembly_open): Instead of having a
10332         conditional WITH_BUNDLE, incorporate support for bundles here, by
10333         having a global `bundles' variable holding a pointer to the actual
10334         bundles. 
10335
10336         (mono_register_bundled_assemblies): New API call used by the
10337         bundle code. 
10338
10339         See mkbundle.1 for details.
10340         
10341 2004-11-27  Martin Baulig  <martin@ximian.com>
10342
10343         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
10344         the vtable for generic methods.
10345
10346 2004-11-26  Martin Baulig  <martin@ximian.com>
10347
10348         * metadata.c
10349         (mono_metadata_generic_method_hash): New public function.
10350         (mono_metadata_generic_method_equal): Likewise.
10351
10352         * class-internals.h
10353         (MonoGenericContainer): Added `GHashTable *method_hash'.
10354
10355         * reflection.c (ReflectionMethodBuilder): Added
10356         `MonoGenericContainer *generic_container'.
10357         (reflection_methodbuilder_to_mono_method): Don't create a new
10358         MonoGenericContainer each time we're called.
10359         (mono_reflection_bind_generic_method_parameters): Use
10360         `container->method_hash' to cache the results so we don't create a
10361         different method if we're called several times with the same
10362         arguments.
10363
10364         * loader.c (method_from_methodspec): Use the new
10365         `container->method_hash' here, too.
10366
10367 2004-11-26  Martin Baulig  <martin@ximian.com>
10368
10369         * class.c (inflate_generic_signature): Correctly compute
10370         `res->has_type_parameters'.
10371         (mono_class_vtable): Use the `has_type_parameters' flag to
10372         determine whether we're a generic method.
10373
10374         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
10375
10376 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
10377
10378         * object.c (mono_runtime_run_main): Fix a small memory leak.
10379
10380 2004-11-25  Martin Baulig  <martin@ximian.com>
10381
10382         * class.c (set_generic_param_owner): Fixed the loop.
10383
10384 2004-11-25  Martin Baulig  <martin@ximian.com>
10385
10386         * object.c (mono_class_vtable): Don't create any JIT wrappers for
10387         generic methods.
10388
10389 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
10390
10391         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
10392         names. Fixes #69787.
10393
10394 2004-11-24  Martin Baulig  <martin@ximian.com>
10395
10396         * class.c (mono_class_create_generic_2): If we don't have a
10397         `ginst->parent', inflate `gklass->parent' to get our parent.
10398
10399 2004-11-24  Martin Baulig  <martin@ximian.com>
10400
10401         * reflection.c (compare_genericparam): Correctly sort the
10402         GenericParam table; fixes #69779.
10403
10404 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
10405
10406         * reflection.c: When writing a PE file, don't create a huge
10407         buffer in memory. Just write the arrays we have to the file.
10408         This reduces memory usage.
10409
10410         * metadata-internals.h: MonoDynamicStream pefile is no longer used
10411         globally.
10412
10413 2004-11-17  Martin Baulig  <martin@ximian.com>
10414
10415         * class.c (mono_class_init): Don't setup `class->parent' for
10416         dynamic instances; moved this to mono_class_generic_2().
10417         (mono_class_create_generic): Also set `klass->inited' for dynamic
10418         generic instances.
10419         (mono_class_create_generic_2): Don't do anything for dynamic
10420         generic instances.  Set `klass->parent' here and also call
10421         mono_class_setup_parent() here. 
10422
10423         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
10424         `MonoType *parent' argument; set `ginst->parent' before calling
10425         mono_class_create_generic_2(), so we set the correct parent.
10426
10427 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
10428
10429         * reflection.c: allow getting attributes from ModuleBuilder
10430         (used by ikvm).
10431
10432 2004-11-17  Martin Baulig  <martin@ximian.com>
10433
10434         * class.c (mono_class_create_from_typedef): If a type parameter is
10435         inherited from an outer class, set its owner to that class.
10436
10437 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
10438
10439         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
10440           for (int*) written size. This fixes bug #69592.
10441
10442 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
10443
10444         * icall.c: Added IsAuthenticodePresnet internal call.
10445         * image.c|h: New function that check a MonoImage for an Authenticode
10446         signature in the certificate PE data directory.
10447         * security.c|h: New internal call to ask the runtime if an 
10448         Authenticode signature seems referenced in the PE header.
10449
10450 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
10451
10452         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
10453
10454         * reflection.c (mono_image_create_pefile): Free the assembly streams
10455         after writing out the assembly file.
10456
10457         * object.c (mono_runtime_run_main): Fix small memory leak.
10458
10459         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
10460         property access modifiers. Fixes #69389.
10461
10462 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
10463
10464         * domain.c, object.c, object-internals.h, domain-internals.h,
10465         object.h, marshal.c: keep dynamic code info per domain.
10466
10467 2004-11-15  Martin Baulig  <martin@ximian.com>
10468
10469         * class.c (mono_type_get_name_recurse): Put type arguments in
10470         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
10471         see bug #68387.
10472
10473 2004-11-15  Martin Baulig  <martin@ximian.com>
10474
10475         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
10476         (mono_class_setup_vtable): When computing `the_cname' for a
10477         generic instance, don't include the namespace since we'd otherwise
10478         add it twice.
10479
10480 2004-11-15  Martin Baulig  <martin@ximian.com>
10481
10482         * class.c (mono_class_create_generic): Changed return type to void.
10483         (mono_class_create_generic_2): New public function; setup
10484         `class->method', `class->field' and `class->interfaces' here
10485         instead of in mono_class_init().
10486
10487         * class.h (mono_class_create_generic): Moved to class-internals.h.
10488
10489 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
10490
10491         * reflection.c (mono_image_create_pefile): take a file HANDLE.
10492         rather than writing to memory, write to this file. Right now,
10493         we are just writting into a buffer, and copying that. However
10494         we can avoid the buffer later.
10495
10496         (mono_dynamic_stream_reset): new function
10497
10498         * icall.c, object-internals.h: update for the above.
10499
10500 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
10501
10502         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
10503         have been using gc'd memory. First it is slower, unlikely
10504         the comment in the source code said, secondly, it increases
10505         our footprint to do it in the gc.
10506
10507         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
10508         the method so that it does not have to copy to managed code.
10509
10510 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
10511
10512         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
10513
10514 2004-11-12  Martin Baulig  <martin@localhost>
10515
10516         * reflection.c (mono_image_create_token): Allow generic method
10517         definitions here, since they may appear in an `.override'; see
10518         gen-98/gen-99 for an example.
10519
10520 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
10521
10522         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
10523         #69365.
10524
10525         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
10526         descriptive.
10527
10528 2004-11-11  Martin Baulig  <martin@ximian.com>
10529
10530         * class.c (mono_class_setup_vtable): In an explicit interface
10531         implementation, the method name now includes the arity.
10532
10533 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
10534
10535         * object.c (mono_array_full_copy): Fix warning.
10536
10537 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
10538
10539         * appdomain.c: Removed look_for_method_by_name(). Use the new method
10540         mono_class_get_method_from_name() instead.
10541         
10542         * class-internals.h: Added two new types of wrappers. 
10543         Added MonoRemotingTarget enum. Added new trampoline function type, which
10544         takes an additional MonoRemotingTarget value as parameter, so it is
10545         possible to request a trampoline for a specific target.
10546         
10547         * class.c: Added new mono_class_get_method_from_name() method.
10548         
10549         * class.h: In MonoRemoteClass, we can have now to vtables, one for
10550         general remoting sinks and one specific for cross domain calls.
10551         
10552         * debug-helpers.c: Added new wrapper names.
10553         
10554         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
10555         of a remote class.
10556         
10557         * image.c: Porperly delete value objects form the remoting invoke hashtable.
10558         
10559         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
10560         with several other methods (mono_marshal_get_xappdomain_dispatch,
10561         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
10562         and others) can generate a fast remoting wrapper for cross domain calls.
10563         More information can be found in docs/remoting.
10564         Other changes: Removed mono_find_method_by_name, and used
10565         mono_class_get_method_from_name instead.
10566         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
10567         is stored in the remoting invoke hashtable.
10568         
10569         * marshal.h: published the new method for getting the xdomain wrapper,
10570         and also added a method for getting the adequate wrapper for a given
10571         method and target.
10572         
10573         * object-internals.h, object.c: Added a couple of methods for capying and
10574         cloning arrays.
10575         Modified mono_install_remoting_trampoline, which takes the new remoting
10576         trampoline that has a remoting target as parameter.
10577         mono_class_proxy_vtable now also takes a remoting target as parameter, and
10578         will return the most suitable vtable for the target.
10579         Added mono_remote_class_vtable, which returns the vtable of a remote class
10580         (which can be the normal remoting vtable or the xdomain vtable).
10581         
10582         * threads.c: the xdomain invoke and dispatch wrappers must also be
10583         protected against interruptions.
10584
10585 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10586
10587         * icall.c: use memmove in BlockCopyInternal when the source and
10588         destination arrays are the same.
10589
10590 2004-11-09  Martin Baulig  <martin@ximian.com>
10591
10592         * class-internals.h (MonoGenericContainer): Removed `method' and
10593         `signature', replaced them with `is_method' and `is_signature'
10594         flags.  Added `context'.
10595
10596         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
10597         instead of a `MonoGenericContainer *'.
10598
10599         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
10600         for dynamic type parameters.
10601         (mono_metadata_load_generic_params): Setup `container->context'.
10602
10603         * reflection.c (mono_reflection_setup_generic_class): Setup
10604         `tb->generic_container->context'.
10605         (do_mono_reflection_bind_generic_parameters): Use
10606         mono_class_inflate_generic_type() to correctly inflate types,
10607         rather than using our own hack just for MONO_TYPE_VAR.
10608
10609 2004-11-09  Martin Baulig  <martin@ximian.com>
10610
10611         * class.c (mono_class_inflate_generic_method): Small fix; don't
10612         crash here.
10613
10614         * icall.c
10615         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
10616         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
10617         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
10618         (ves_icall_Type_BindGenericParameters): Likewise.
10619         (ves_icall_Type_get_IsGenericInstance): Likewise.
10620         (ves_icall_Type_GetGenericParameterPosition): Likewise.
10621         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
10622         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10623         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10624
10625 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
10626
10627         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
10628         assembly versions and public key tokens. Fixes #69113.
10629
10630 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
10631
10632         * metadata.c: fix bug introduced with the type cache changes
10633         on 2004-11-06.
10634
10635 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
10636
10637         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
10638         the MonoClass pointer instead of the token in exception clauses.
10639         * reflection.c: updates for the above and make the code not depend
10640         on the structure of MonoExceptionClause.
10641
10642 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
10643
10644         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10645         Add support for dynamic assemblies. Fixes #69114.
10646
10647         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
10648
10649 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
10650
10651         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
10652         since most only those methods use it. the code member of
10653         MonoMethodPInvoke was dead, so that can be removed too. Also,
10654         remove inline_count (again, not used), and move slot so that it
10655         can share bits with some other flags. This saves 8 bytes in the
10656         structure and gives us about 50 kb back for mcs helloworld.cs
10657
10658         * *.[ch]: Do naming changes for the above.
10659
10660         * loader.c (mono_method_get_header): Lazily init the header
10661         on first access.
10662         (mono_get_method_from_token): don't init the header here
10663         (mono_free_method): the header may never be allocated
10664
10665         Overall, this saves 150 kb of unmanaged allocations
10666         for mcs helloworld.cs. That accounts for 10% of the unmanaged
10667         memory at runtime.
10668         
10669         * loader.c, loader.h (mono_method_get_header): new accessor.
10670
10671         * *.[ch]: use the above method. Prepares us to lazily load
10672         the header.
10673
10674         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
10675         three warnings, which are actual bugs (see 69206).
10676
10677         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
10678         unused. Saves a cool 4 bytes / method.
10679
10680 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
10681
10682         * metadata.c (builtin_types): Add types for System.Object here.
10683         (mono_metadata_parse_type_full): Cache MonoType*'s that are
10684         for a class or valuetype from klass->this_arg or klass->byval_arg.
10685
10686         On mcs for a hello world, this gets us down from 21836 MonoType's
10687         to 14560.
10688
10689         (mono_metadata_free_type): Account for the above change.
10690
10691 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
10692
10693         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
10694         exception instead of asserting if name is null.
10695         (ves_icall_System_AppDomain_GetData): Ditto.
10696
10697 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
10698
10699         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
10700         EnumBuilder.
10701
10702         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
10703         Return NULL when the domain does not have entry_assembly set.
10704
10705         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
10706         Add a 'resource_modules' argument.
10707         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
10708
10709         * reflection.c (mono_reflection_create_runtime_class): Move setting
10710         of wastypebuilder here, so mono_get_type_object () returns a MonoType
10711         for enums too.
10712
10713         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
10714         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
10715         Throw an ArgumentNullException if 'ptr' is null.
10716
10717         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
10718         assemblies here. Fixes #69020.
10719
10720 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
10721
10722         * reflection.c (build_compressed_metadata): Fix the previous patch for
10723         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
10724         the stack.
10725
10726 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
10727
10728         * assembly.c (mono_assembly_names_equal): Allow a match if one of
10729         the cultures is false. Fixes #69090.
10730
10731         * reflection.c (build_compressed_metadata): Fix invalid memory read 
10732         detected by valgrind.
10733         
10734         * reflection.c (mono_reflection_get_type): Avoid triggering a 
10735         TypeResolve multiple times for the same type. Fixes #65577.
10736
10737 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
10738
10739         * marshal.c: Avoid using ldftn to call managed functions. It is
10740         much slower than just a call.
10741
10742         * reflection.c (mono_module_get_object): free the basename we
10743         allocate here from glib.
10744         
10745         * reflection.c (ensure_runtime_vtable): make sure to free
10746         overrides.  Also, we were allocating an array of MonoMethod not an
10747         array of MonoMethod*.
10748
10749         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
10750
10751         * image.c (mono_image_close): free image->guid here.
10752
10753 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
10754
10755         * reflection.c: Fix some spec conformance issues with the PE file
10756         structures so mcs compiled apps run on the Net 2.0 beta.
10757
10758 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
10759
10760         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
10761         Implement this. Fixes #67264.
10762
10763         * debug-helpers.h debug-helpers.c marshal.c: Move 
10764         mono_find_method_by_name to debug-helpers.c.
10765
10766 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
10767
10768         * object.c (mono_release_type_locks): type_initialization_hash is
10769         a GHashTable.
10770
10771         * reflection.c object.c object-internals.h: Fix warnings.
10772
10773         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
10774         without accessors. Fixes #61561.
10775
10776         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
10777         application base from the root domain if not set. Fixes #65641.
10778         (mono_runtime_init): Fix warning.
10779
10780 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10781
10782         * appdomain.c: call mono_thread_pool_init.
10783         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
10784         of worker threads based on the number of CPUs and the environment
10785         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
10786         for non-windows (windows) systems.
10787
10788 2004-10-27  Chris Toshok  <toshok@ximian.com>
10789
10790         * mono-debug-debugger.c (write_class): don't call mono_class_init
10791         here, as even with the check for (!klass->init_pending), we get
10792         into a situation where we're hitting cycles in class
10793         initialization.  Fixes #68816.
10794
10795 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
10796
10797         * image.c: Avoid overwriting values in the loaded_images_hash when an
10798         assembly is loaded multiple times. Fixes #61152.
10799
10800         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
10801         so multiple satellite assemblies for the same name can be loaded.
10802         Fixes #68259.
10803
10804         * mono_domain_assembly_preload: Actually return the loaded assembly, 
10805         not NULL.
10806
10807         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
10808         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
10809
10810         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
10811         pending finalizers are not invoked after the appdomain has been 
10812         unloaded. Fixes #67862.
10813
10814 2004-10-22  Martin Baulig  <martin@ximian.com>
10815
10816         * mono-debug-debugger.c
10817         (mono_debugger_runtime_invoke): Don't box valuetypes.
10818
10819 2004-10-22  Chris Toshok  <toshok@ximian.com>
10820
10821         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
10822         don't hide private methods.
10823
10824 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
10825
10826         * icall.c: Allows the runtime to "share" (when known) the public key
10827         token of an assembly. This avoid the need to recalculate the token 
10828         (from the public key) in managed code.
10829
10830 2004-10-21  Chris Toshok  <toshok@ximian.com>
10831
10832         * debug-helpers.c (append_class_name): argh, revert last patch.
10833         
10834 2004-10-21  Chris Toshok  <toshok@ximian.com>
10835
10836         * debug-helpers.c (append_class_name): use '+' as the delimiter,
10837         not '/', so that it matches what the debugger uses to look up
10838         methods.
10839
10840 2004-10-21  Martin Baulig  <martin@ximian.com>
10841
10842         * mono-debug-debugger.c (mono_debugger_throw_exception): New
10843         public method; this is called each time an exception is thrown and
10844         allows the debugger to use exception catch points.
10845
10846 2004-10-21  Martin Baulig  <martin@ximian.com>
10847
10848         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
10849         the stack pointer and the exception object in some struct and pass
10850         that to the debugger.
10851
10852 2004-10-21  Chris Toshok  <toshok@ximian.com>
10853
10854         * mono-debug-debugger.c (do_write_class): add instance/static
10855         event support.  We don't expose "raise" or "other" yet.
10856         (event_is_static): new method.
10857
10858 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
10859
10860         * mono-debug-debugger.c
10861         (mono_debugger_handle_exception): Remove
10862         bogus return value for fussy compilers.
10863
10864 2004-10-20  Martin Baulig  <martin@ximian.com>
10865
10866         * mono-debug-debugger.c
10867         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
10868         (mono_debugger_handled_exception): Likewise.
10869
10870 2004-10-20  Martin Baulig  <martin@ximian.com>
10871
10872         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10873         MONO_DEBUGGER_EVENT_EXCEPTION.
10874
10875         * mono-debug-debugger.c (mono_debugger_handle_exception): New
10876         public function to send the debugger a notification for an
10877         exception and inform it about a catch/finally clause.
10878
10879 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
10880
10881         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
10882         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
10883         fix 2.95 build. 
10884
10885         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
10886
10887 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
10888
10889         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
10890         marshalled as [In,Out]. Fixes #58325.
10891
10892 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
10893
10894         * reflection.c (mono_method_body_get_object): Implement some fields.
10895
10896 2004-10-12  Martin Baulig  <martin@ximian.com>
10897
10898         * reflection.c (mono_reflection_bind_generic_parameters): Small
10899         fix, correctly retrieve our parent from a generic instance.
10900
10901 2004-10-12  Martin Baulig  <martin@ximian.com>
10902
10903         * metadata.c (mono_metadata_generic_param_equal): We always have
10904         an owner.
10905
10906         * class.c
10907         (mono_class_from_generic_parameter): We need to have an owner.
10908         (my_mono_class_from_generic_parameter): Likewise.
10909
10910         * reflection.c (mono_reflection_setup_generic_class): Renamed to
10911         mono_reflection_create_generic_class() and added a new
10912         mono_reflection_setup_generic_class().  
10913         (mono_reflection_initialize_generic_param): If we're a nested
10914         generic type and inherited from the containing class, set our
10915         owner to the outer class.
10916
10917 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
10918
10919         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
10920
10921         * reflection.c (mono_method_body_get_object): New function to create
10922         a MethodBody object.
10923
10924         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
10925
10926 2004-10-11  Martin Baulig  <martin@ximian.com>
10927
10928         * metadata.c (_mono_metadata_type_equal): Renamed to
10929         do_mono_metadata_type_equal() and made static.
10930
10931 2004-10-11  Martin Baulig  <martin@ximian.com>
10932
10933         * appdomain.c: Bump corlib version number to 28.
10934
10935 2004-10-10  Martin Baulig  <martin@ximian.com>
10936
10937         * class-internals.h
10938         (MonoGenericInst): Added `MonoGenericContainer *container'.
10939         (MonoGenericMethod): Likewise.
10940         (MonoGenericContext): Likewise.
10941         (MonoGenericParam): Added `MonoGenericContainer *owner'.
10942
10943         * metadata.c
10944         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
10945         (do_mono_metadata_parse_generic_inst): Likewise.
10946         (mono_metadata_parse_type_full): New public method.  This is the actual
10947         mono_metadata_parse_type() implementation - with an additional
10948         `MonoGenericContainer *' argument.
10949         (mono_metadata_parse_array_full): Likewise.
10950         (mono_metadata_parse_signature_full): Likewise.
10951         (mono_metadata_parse_method_signature_full): Likewise.
10952         (mono_metadata_parse_mh_full): Likewise.
10953         (mono_type_create_from_typespec): Likewise.
10954         (mono_metadata_interfaces_from_typedef_full): New public method;
10955         this is similar to the other _full() methods, but we take a
10956         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
10957         (mono_metadata_parse_generic_param): Take an additional
10958         `MonoGenericContainer *' argument and lookup the MonoGenericParam
10959         from that container.
10960         (mono_metadata_generic_param_equal): New static method to compare
10961         two type parameters.
10962         (_mono_metadata_type_equal): New static method; takes an
10963         additional `gboolean signature_only' argument - if true, we don't
10964         compare the owners of generic parameters.
10965         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
10966         with a TRUE argument - do a signature-only comparision.
10967
10968         * loader.c: Use the new _full() methods and pass the
10969         MonoGenericContainer to them.
10970
10971         * object-internals.h (MonoReflectionTypeBuilder): Added
10972         `MonoGenericContainer *generic_container' field.
10973         (MonoReflectionMethodBuilder): Likewise.
10974
10975 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
10976
10977         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
10978         case initial images of dynamic assemblies.
10979
10980         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
10981
10982         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
10983
10984         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
10985         length of event->other array.
10986         (typebuilder_setup_events): Ditto.
10987
10988         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
10989         'assembly_by_name' and add an 'assemblies' list.
10990
10991         * assembly.h assembly.c: Add a new search hook for determining whenever
10992         an assembly is already loaded. Use this instead of searching in the
10993         loaded_assemblies list.
10994
10995         * domain.c appdomain.c: Implement the new search hook so loaded 
10996         assemblies are now scoped by appdomain. Fixes #67727.
10997
10998 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
10999
11000         * threads.c (mono_thread_attach): Initialize synch_lock field so
11001         mono_thread_detach works again.
11002
11003         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
11004         'lib' too. Fixes #63130.
11005
11006 2004-10-06  Jackson Harper  <jackson@ximian.com>
11007
11008         * culture-info-tables.h: regenerated.
11009
11010 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
11011
11012         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
11013         implemented by other interfaces in the result. Fixes #65764.
11014         
11015         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11016         Handle unloadable modules without crashing.
11017
11018         * image.c (load_modules): Revert the previous patch since modules must
11019         have a fixed index inside the array.
11020         
11021         * image.c (load_modules): Don't include native modules in the modules
11022         array.
11023
11024 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
11025
11026         * reflection.h: Add param_defaults field.
11027
11028         * reflection.c: Add support for parameter defaults in dynamic methods.
11029         Fixes #64595.
11030
11031         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
11032         an empty string when a type has no namespace. Fixes #64230.
11033
11034 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
11035
11036         * tabledefs.h: Added "internal" security actions to support non-CAS
11037         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
11038         Note: they do not seems to be used anymore in 2.0 (new metadata format)
11039
11040 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
11041
11042         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
11043         constructor of abstract class. Fixes #61689.
11044
11045 2004-10-04  Martin Baulig  <martin@ximian.com>
11046
11047         * class-internals.h (MonoGenericContainer): New type.
11048         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
11049         `MonoGenericContainer *generic_container'.
11050         (MonoClass): Replaced `gen_params' and `num_gen_params' with
11051         `MonoGenericContainer *generic_container'.
11052
11053         * metadata.c (mono_metadata_load_generic_params): Return a
11054         `MonoGenericContainer *' instead of a `MonoGenericParam *';
11055         removed the `num' argument.
11056
11057 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
11058
11059         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
11060         for dynamic images.
11061
11062         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
11063         machine fields.
11064
11065         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
11066
11067         * reflection.c: Save pe_kind and machine values into the generated
11068         image file.
11069
11070         * appdomain.c: Bump corlib version number.
11071
11072         * object-internals.h: Reorganize layout of LocalBuilder.
11073
11074         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
11075         New helper function.
11076
11077         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
11078         created MonoType for dynamic types. Fixes #66180.
11079
11080 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
11081
11082         * threadpool.c: the ares hashtable needs a critical section around it.
11083         this prevents some nasty segfaults
11084
11085 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
11086
11087         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
11088         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
11089         bug 67324).
11090         
11091 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11092
11093         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
11094         
11095 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
11096
11097         * image.c: Always canonicalize image file names, to avoid loading
11098         the same assembly twice when referenced using a relative path.
11099
11100 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
11101
11102         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
11103
11104         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
11105
11106         * marshal.c: Fix warnings.
11107
11108 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
11109
11110         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
11111         attempting to marshal the delegate_trampoline as the method_addr.
11112         This patch has a static hashtable of marshalled delegates so that 
11113         we can map delegate_trampoline addresses back to delegates.  This
11114         allows a delegate passed to managed code to be passed back into native
11115         code.  Fixes #67039
11116
11117 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11118
11119         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
11120
11121         * reflection.c (method_encode_code): Align method headers properly.
11122         Fixes #66025.
11123
11124 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11125
11126         * marshal.c: In the runtime invoke wrapper, reset the abort
11127         exception if it is cached. This avoids the automatic rethrowal of 
11128         the exception after the catch of the wrapper. Also check for pending
11129         interruptions before calling the managed method. This is done using
11130         the new method emit_thread_force_interrupt_checkpoint, since the
11131         normal checkpoint method is ignored when running the invoke wrapper.
11132         * object.c: If the abort exception is rethrown, set the abort_exc
11133         field of the thread, so it will be rethrown aftere every catch.
11134         * threadpool.c: Only run an interruption checkpoint if what has been
11135         requested is a stop of the thread (aborts will be ignored).
11136         * threads.c: By default, a thread will now never be interrumped while
11137         running the runtime invoke wrapper (this ensures that runtime_invoke
11138         will always return to the caller if an exception pointer is provided).
11139         There is a new special method mono_thread_force_interruption_checkpoint()
11140         to force an interruption checkpoint even if running a protected
11141         wrapper, which is used by the same runtime invoke wrapper to do a check
11142         at a safe point.
11143
11144 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
11145
11146         * object.c, object-internals.h: Implemented mono_release_type_locks,
11147         which releases the cctor locks held by a thread.
11148         * threads.c, threads.h: In thread_cleanup, release cctor locks held
11149         by a thread. Added mono_thread_exit() method to be used to safely stop
11150         a thread.
11151
11152 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11153
11154         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
11155         Move null check before dereference.  Avoid indexing beyond the end
11156         of the 'modules' array.
11157
11158 2004-09-28  Raja R Harinath  <rharinath@novell.com>
11159
11160         * metadata-internals.h (MonoImage): Add module_count field.
11161         * image.c (load_modules): Set image->module_count.
11162         (mono_image_load_file_for_image): Use image->module_count.
11163         * reflection.c (mono_image_load_module): Append to image->modules array 
11164         of dynamic assembly.
11165         (mono_module_get_object): Fix loop to actually increment index.
11166         Use image->module_count.
11167         * assembly.c (mono_assembly_load_references): Use image->module_count.
11168         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
11169         Likewise.
11170
11171 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
11172
11173         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
11174         Avoid assert on generic types.
11175
11176 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
11177
11178         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
11179
11180         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
11181
11182         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
11183         function to convert a MarshalSpec structure to its managed counterpart.
11184
11185         * reflection.c: Fix warnings.
11186         
11187         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
11188         field.
11189
11190         * icall.c (mono_create_icall_signature): Fix build.
11191
11192 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
11193
11194         * icall.c: Add MakePointType icall.
11195
11196         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
11197         warnings.
11198
11199 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11200
11201         * threadpool.c: reuse allocated slots in the queue.
11202
11203 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
11204
11205         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
11206
11207         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
11208
11209         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
11210         previous change.
11211
11212         * tabledefs.h: Add constants for pinvoke attributes BestFit and
11213         ThrowOnUnmappableChar.
11214
11215         * icall.c (ves_icall_Type_GetPacking): New icall.
11216
11217 2004-09-24  Martin Baulig  <martin@ximian.com>
11218
11219         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
11220
11221 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11222
11223         * appdomain.c:
11224         (mono_domain_set): allow setting a domain that is being unloaded.
11225         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
11226         being unloaded.
11227
11228 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11229
11230         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
11231         the GetCustomAttributes icall.
11232
11233 2004-09-23  Martin Baulig  <martin@ximian.com>
11234
11235         * object-internals.h (MonoReflectionGenericParam): Replaced
11236         'has_ctor_constraint', `has_reference_type' and `has_value_type'
11237         with `guint32 attrs'.
11238
11239 2004-09-23  Martin Baulig  <martin@ximian.com>
11240
11241         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
11242
11243 2004-09-23  Martin Baulig  <martin@ximian.com>
11244
11245         * object-internals.h (GenericParameterAttributes): New enum.
11246
11247 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
11248
11249         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
11250         
11251         * class.c (init_events): Fill out event->other field.
11252
11253         * class.c: Fix warnings.
11254
11255         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
11256
11257 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
11258
11259         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
11260         walk which doesn't supply the IL offset.
11261
11262 2004-09-22  Martin Baulig  <martin@ximian.com>
11263
11264         * reflection.c (mono_reflection_setup_internal_class): If we're
11265         System.ValueType, System.Object or System.Enum, set
11266         `klass->instance_size' and create the vtable.
11267         (mono_reflection_create_internal_class): If we're an enum type,
11268         get the base class from our current corlib.
11269
11270 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
11271
11272         * reflection.h (MonoResolveTokenError): New type.
11273
11274         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
11275         icall.
11276
11277         * icall.c: Add an 'error' argument to the ResolveToken icalls.
11278
11279 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
11280
11281         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
11282         Support also calling constructors, but only for already allocated objects.
11283
11284 2004-09-17  Geoff Norton <gnorton@customerdna.com>
11285
11286         * reflection.c (type_get_qualified_name): If the klass is null
11287         return the typename to avoid a NullRefEx.
11288         (encode_cattr_value): Get the qualified name of the boxed type,
11289         not the underlying enumtype.  Fixes #62984.
11290
11291 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
11292
11293         * marshal.c: Fix problems with previous checkin.
11294
11295 2004-09-21    <vargaz@freemail.hu>
11296
11297         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
11298         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
11299
11300         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
11301
11302 2004-09-21  Geoff Norton <gnorton@customerdna.com>
11303
11304         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
11305         should only return a type for pointers, arrays, and passbyref types.
11306         Fixes bug #63841.
11307
11308 2004-09-21  Martin Baulig  <martin@ximian.com>
11309
11310         * domain.c (mono_debugger_check_runtime_version): New public
11311         function.
11312
11313         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
11314
11315 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
11316
11317         * reflection.c: Added missing sort to the declarative security 
11318         attributes table. MS implementation stops seeing the attributes if the
11319         token number regress in the table (as shown by ildasm and permview).
11320
11321 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
11322
11323         * object-internals.h (MonoReflectionModule): Add 'token' field.
11324         
11325         * reflection.c (mono_reflection_get_token): Add support for Module
11326         and Assembly.
11327         (mono_module_get_object): Set 'token' field.
11328         (mono_module_file_get_object): Set 'token' field.
11329
11330         * icall.c: Add new Assembly and Module icalls.
11331
11332         * appdomain.c: Bump corlib version.
11333
11334 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
11335
11336         * loader.h loader.c class.h class.c: Add helper functions for obtaining
11337         tokens of metadata objects.
11338
11339         * reflection.h reflection.c (mono_reflection_get_token): New function
11340         to obtain the token of a metadata object.
11341
11342         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
11343
11344 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
11345
11346         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
11347         
11348         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
11349
11350 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
11351
11352         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
11353         * object-internals.h: Added 3 MonoArray* members to MonoReflection
11354         AssemblyBuilder to access the permissions set in the class lib.
11355         * reflection.c: Added security attributes encoding step in 
11356         mono_image_build_metadata.
11357         * tabledefs.h: Added new security actions defined in 2.0:
11358         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
11359
11360 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11361
11362         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
11363         macro parameter.
11364
11365 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
11366  
11367         * locales.c: nullify the ICU_collator member of CompareInfo when it is
11368           finalized. There where random SIGSEVs at program termination, when
11369           an object being finalized was trying to do a string comparison and
11370           the current culture was already finalized.
11371  
11372 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11373
11374         * threads.c: call thread_cleanup before finishing the thread if we get
11375         there.
11376
11377 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
11378
11379         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
11380         assemblies from the parent. Fixes #65665.
11381
11382 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
11383
11384         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
11385         modifiers.
11386
11387 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
11388
11389         * reflection.h: add prototype for mono_get_dbnull_object
11390         * reflection.c: add prototypes for get_default_param_value_blobs 
11391         and mono_get_object_from_blob for fussier compilers
11392
11393 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
11394  
11395         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
11396         false deadlock checks in class initialization.
11397  
11398 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
11399
11400         * image.c (mono_image_addref): Fix comment.
11401
11402         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
11403         possible.
11404
11405 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
11406
11407         * reflection.c (mono_param_get_objects): Modified to return
11408         ParameterInfo.DefaultValue object.
11409
11410         (get_default_param_value_blobs):
11411         (mono_get_object_from_blob):
11412         (mono_get_dbnull_object): New helper routines. 
11413
11414         * object.c (mono_get_constant_value_from_blob): New helper routine
11415         carved out from get_default_field_value ()
11416
11417         * object-internals.h (mono_get_constant_value_from_blob): Added
11418         function declaration.
11419
11420 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
11421
11422         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
11423         referenced assemblies. Fixes #62135.
11424
11425         * exception.h exception.c (mono_get_exception_file_not_found2): New
11426         helper function.
11427
11428 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
11429
11430         * class.h class.c: Add mono_type_get_underlying_type ().
11431
11432 2004-09-09  Geoff Norton <gnorton@customerndna.com>
11433
11434         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
11435         Fix GetTypes() to support dynamically created assemblies.
11436
11437 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
11438
11439         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
11440         
11441         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
11442         previous patch.
11443
11444         * reflection.h reflection.c loader.c: Allow dynamic construction of
11445         pinvoke methods. Fixes #65571.
11446         
11447         * reflection.c (mono_reflection_get_type): Revert previous change since
11448         it causes regressions.
11449
11450 2004-09-08  Martin Baulig  <martin@ximian.com>
11451
11452         * class.c (class_compute_field_layout): Don't call
11453         mono_class_layout_fields() for open generic instances.
11454
11455 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
11456         * threads.c appdomain.c: fix typo in GC macro
11457
11458 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11459
11460         * threads.c: don't call mono_thread_detach() in start_wrapper(),
11461         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
11462
11463 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
11464
11465         * image.c (mono_image_close): Applied patch from 
11466         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
11467         assembly is loaded multiple times from data.
11468         
11469         * image.c (mono_image_open): Fix warning.
11470
11471 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11472
11473         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
11474         once. Fixes #58334.
11475         
11476         * reflection.c (mono_reflection_create_runtime_class): Initialize
11477         klass->nested_classes. Fixes #61224.
11478
11479 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11480
11481         * threads.c: sched_yield() on exit, to allow threads to quit.
11482
11483 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11484
11485         * object.c (mono_unhandled_exception): Remove leftover debug code.
11486
11487 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
11488
11489         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
11490
11491 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
11492
11493         * marshal.c (emit_marshal_array): Really null terminate string arrays.
11494         
11495         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
11496
11497 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11498
11499         * marshal.c (emit_marshal_array): Null terminate string arrays.
11500         
11501         * marshal.c (raise_auto_layout_exception): Fix warning.
11502
11503         * reflection.c (mono_param_get_objects): Initialize the default value
11504         with DBNull.Value, not null. Fixes #62123.
11505
11506 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
11507
11508         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
11509         throw an exception with a cute explanation.
11510
11511 2004-09-06  Dick Porter  <dick@ximian.com>
11512
11513         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
11514         Close the new process's thread handle, as we don't use it.  The
11515         handle stays around forever otherwise.
11516
11517 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11518
11519         * object.c (arith_overflow): Fix warning.
11520
11521         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
11522         calling conventions in method refs. Fixes #65352.
11523
11524         * reflection.c: Fix warnings.
11525
11526 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11527
11528         * icall.c: Add a new icall for Array.Clear
11529
11530 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
11531
11532         * object.c: When allocating an array, we have to throw
11533         an overflow exception if any of the lengths are < 0.
11534
11535 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
11536
11537         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
11538         properly. Also move implementation of string array marshalling to 
11539         managed code. Fixes #42316.
11540
11541 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11542
11543         * assembly.c: provide more information when loading an assembly fails.
11544
11545 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11546
11547         * filewatcher.c: don't expect the development fam package to be
11548         installed.
11549
11550 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
11551
11552         * marshal.c: Make a copy of the signature cookie since it will be
11553         freed by the caller.
11554         
11555         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
11556
11557         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
11558
11559         * metadata.c (mono_metadata_free_marshal_spec): New function to free
11560         marshal specs.
11561
11562         * marshal.c: More refactoring.
11563         
11564         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
11565         smaller functions.
11566
11567 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
11568
11569         * object.c: In mono_message_invoke, fill the output parameter array after
11570           calling the managed method (it was done before the call). This fixes
11571           bug #59299.
11572
11573 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11574
11575         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
11576         as well.
11577
11578 2004-09-02  Martin Baulig  <martin@ximian.com>
11579
11580         * class.c (mono_class_instance_size): Don't allow generic type
11581         definitions or open generic instances.
11582         (mono_class_array_element_size): If we're a value type, call
11583         mono_class_instance_size() on the original class.
11584
11585         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
11586         handle generic instances.
11587
11588         * mono-debug-debugger.c (write_type): Handle generic instances
11589         like classes.
11590
11591 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
11592
11593         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
11594         the allocation request fails. Fixes #65089.
11595
11596         * object.c (mono_runtime_free_method): Do not call mono_free_method.
11597         
11598         * object.c (mono_runtime_free_method): New function to free a dynamic
11599         method.
11600
11601         * marshal.c (mono_delegate_free_ftnptr): New function to free the
11602         delegate trampoline.
11603
11604         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
11605         with hasthis as dynamic,
11606
11607         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
11608
11609         * domain.c (mono_jit_info_table_remove): New function to remove an
11610         entry from the jit info table.
11611
11612         * class-internals.h (MonoMethod): Add 'dynamic' field.
11613
11614         * loader.c: Fix warnings.
11615
11616 2004-09-01  Martin Baulig  <martin@ximian.com>
11617
11618         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
11619         instead of mono_debugger_lock() because the latter one is a no-op
11620         unless running in the debugger.
11621
11622 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11623
11624         * class.c (class_compute_field_layout): Classes with auto-layout or
11625         reference fields are not blittable.
11626         
11627 2004-09-01  Dick Porter  <dick@ximian.com>
11628
11629         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
11630         mono_image_get_filename() to get the assembly location.
11631
11632         * icall.c:
11633         * metadata.h: Fix compile warnings
11634
11635 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
11636
11637         * class.c (class_compute_field_layout): System.Object is blittable.
11638
11639         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
11640         as in/out. Fixes #59909.
11641
11642 2004-09-01  Martin Baulig  <martin@ximian.com>
11643
11644         * metadata.h (MONO_TYPE_ISREFERENCE): Call
11645         mono_metadata_generic_inst_is_valuetype() if we're a generic
11646         instance to check whether our underlying type is a reference type.
11647
11648 2004-09-01  Martin Baulig  <martin@ximian.com>
11649
11650         * metadata.c (mono_type_size): If we're a generic instance, call
11651         mono_class_value_size() for value types.
11652
11653 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
11654
11655         * marshal.c: Implement more custom marshalling functionality. Fixes
11656         #64915.
11657
11658 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11659
11660         * mono-debug.c, debug-mono-symfile.c: add some locking love.
11661
11662 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
11663
11664         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
11665
11666         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
11667
11668         * icall.c: Fix some warnings.
11669
11670         * threads.c (abort_appdomain_thread): Fix unref errors.
11671         (mono_thread_current): Fix THREAD_DEBUG define.
11672
11673 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
11674
11675         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
11676
11677         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
11678
11679 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
11680
11681         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
11682         string arrays.
11683
11684 2004-08-28  Martin Baulig  <martin@ximian.com>
11685
11686         * metadata.c
11687         (mono_metadata_generic_inst_is_valuetype): New public function.
11688
11689         * metadata.h (MONO_TYPE_ISSTRUCT): Call
11690         mono_metadata_generic_inst_is_valuetype() if we're a generic
11691         instance to check whether our underlying type is a valuetype.
11692
11693 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
11694
11695         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
11696         #63768.
11697
11698 2004-08-25  Martin Baulig  <martin@ximian.com>
11699
11700         * loader.c (mono_get_method_from_token): Abstract methods can also
11701         be generic and thus have type parameters.
11702
11703         * metadata-internals.h
11704         (MonoDynamicImage): Added `GPtrArray *gen_params'.
11705
11706         * reflection.c (mono_image_get_generic_param_info): Don't create a
11707         metadata row, just add an entry to the `gen_params' array.
11708         (build_compressed_metadata): Sort the `gen_params' array and then
11709         actually create the metadata.
11710
11711 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11712
11713         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
11714
11715 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
11716
11717         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
11718
11719 2004-08-24  Martin Baulig  <martin@ximian.com>
11720
11721         * class.cs (mono_class_is_subclass_of): Like an interface, a
11722         generic instance also derives from System.Object.
11723
11724 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
11725
11726         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
11727         custom modifiers to be in any order. Fixes #61990.
11728
11729 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
11730
11731         * object.c: Register mono_object_new_fast icall.
11732         
11733         * object.c (mono_class_get_allocation_ftn): Return to calling
11734         mono_object_new_fast, since it seems faster to compute the object 
11735         size in unmanaged code than passing it as a parameter.
11736
11737         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
11738
11739         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
11740         this function with Boehm as the oom handler, so we don't have to check
11741         the result of GC_malloc.
11742
11743         * object.c: Remove checks for oom.
11744
11745         * object.h object.c (mono_class_get_allocation_ftn): New function to
11746         return the icall which can be used to allocate an instance of a given
11747         class. 
11748
11749         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
11750
11751         * class-internals.h: Add 'enabled' field.
11752
11753 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
11754
11755         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
11756
11757 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
11758         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
11759         value 0x0010.
11760
11761 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
11762
11763         * appdomain.c: use the Tls function for appdomain too,
11764         at Zoltan's request. Actually return in mono_context_get
11765
11766         * appdomain.c, profiler.c, threads.c: use __thread
11767
11768 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
11769
11770         * appdomain.c threads.c: Call GC_CreateThread on windows.
11771
11772         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
11773         multiple libraries since this don't work on windows.
11774
11775 2004-08-18  Martin Baulig  <martin@ximian.com>
11776
11777         * class-internals.h
11778         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
11779         MonoMethodHeader.
11780
11781         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
11782         MonoMethodNormal since we also need it for abstract and interface
11783         methods.
11784
11785         * reflection.c
11786         (build_compressed_metadata): Sort the GenericParam table.
11787         (mono_image_create_token): Added `gboolean create_methodspec'
11788         argument; this is false when generating a MethodImpl token.
11789         (reflection_methodbuilder_to_mono_method): Abstract and interface
11790         methods may also have generic parameters.
11791
11792 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
11793
11794         * appdomain.c: thread local alloc
11795
11796 2004-08-17  Martin Baulig  <martin@ximian.com>
11797
11798         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
11799
11800         * icall.c
11801         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
11802         argument.
11803
11804         * class.c (mono_type_get_full_name): New public function.
11805         (mono_type_get_name): Don't include the type arguments.
11806
11807 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
11808
11809         * Makefile.am: Build static versions of libmetadata and libmonoruntime
11810         for inclusion into the mono executable.
11811
11812 2004-08-16  Martin Baulig  <martin@ximian.com>
11813
11814         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
11815         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
11816
11817 2004-08-14  Martin Baulig  <martin@ximian.com>
11818
11819         * class.c (dup_type): Also copy the `byref' field.
11820
11821 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
11822
11823         * reflection.c (create_dynamic_mono_image): Revert the last change 
11824         since it breaks bootstrap.
11825
11826 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
11827
11828         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
11829
11830         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
11831         not free them with g_free.
11832
11833 2004-08-11  Martin Baulig  <martin@ximian.com>
11834
11835         * reflection.c (mono_reflection_setup_internal_class): Also call
11836         mono_class_setup_mono_type() if we already have a `tb->type.type'.
11837
11838 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
11839
11840         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
11841         called during default (first) AppDomain creation. Keep track of
11842         Evidence when loading assemblies.
11843
11844 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11845
11846         * opcodes.c, opcodes.h: reduce runtime relocations.
11847
11848 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
11849
11850         * culture-info.h, locales.c: fixes and chages to sue the new
11851         optimized format of the locale data.
11852         * culture-info-tables.h: regenerated.
11853
11854 2004-08-06  Geoff Norton <gnorton@customerdna.com>
11855         
11856         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
11857
11858 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
11859
11860         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
11861         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
11862         * domain-internals.h: icall declaration.
11863         * icall.c: icall registration.
11864         * object-internals.h: New fields in MonoAssembly for CAS.
11865
11866 2004-08-05  Duncan Mak  <duncan@ximian.com>
11867
11868         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
11869         CEE_LDELEM_ANY.
11870
11871 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11872
11873         * reflection.c: fix to deal with object[] arrays in custom ctors
11874         (bug #62550).
11875
11876 2004-08-05  Martin Baulig  <martin@ximian.com>
11877
11878         * class.c (mono_class_array_element_size): Added support for
11879         generic instances and correctly handle "recursive" types.
11880
11881 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
11882
11883         * assembly.c: Fix warnings.
11884
11885 2004-08-04  Martin Baulig  <martin@ximian.com>
11886
11887         * class.c
11888         (mono_type_get_name_recurse): Added `gboolean include_arity'
11889         argument specifying whether or not we should include the generic
11890         arity in the type name.
11891         (_mono_type_get_name): New static function.
11892         (mono_class_setup_vtable): If we're a generic instance, don't
11893         include the generic arity in the names of explicit method
11894         implementations.        
11895
11896 2004-08-03  Martin Baulig  <martin@ximian.com>
11897
11898         * class.c (mono_type_get_name_recurse): Enclose the generic type
11899         arguments in `<', '>'.
11900
11901 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11902
11903         * gc.c: make GC warning messages use the trace API, they are just
11904         noise to most of the users.
11905
11906 2004-08-03  Martin Baulig  <martin@ximian.com>
11907
11908         * debug-mono-symfile.c (read_string): Correctly read the string.
11909
11910 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
11911
11912         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
11913         
11914         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
11915         icalls.
11916         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
11917
11918 2004-07-30  Martin Baulig  <martin@ximian.com>
11919
11920         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
11921         Reflect latest symbol writer changes.   
11922
11923 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11924
11925         * object.c: always create an object if null is passed
11926         to Invoke() where a valuetype is expected.
11927
11928 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
11929
11930         * marshal.c (mono_marshal_init): make managed
11931         signatures match native ones better for 64bits.
11932
11933 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11934
11935         * appdomain.c: hack to build correctly the private bin path on windows.
11936         Fixes bug #61991.
11937
11938 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
11939
11940         * assembly.c: Load mscorlib from the correct framework directory
11941           (mono/<version>/mscorlib.dll).
11942         * appdomain.h: Added prototypes for new functions.
11943         * internals.h: Added some prototypes.
11944         * domain.c: When initializing the runtime, get from the executable and
11945           the configuration files the runtime version that the app supports.
11946           Added support methods for reading app.exe.config. Added list of versions
11947           supported by the JIT. Added two new methods: mono_init_from_assembly,
11948           which initializes the runtime and determines the required version from
11949           the provided exe file, and mono_init_version, which initializes
11950           the runtime using the provided version.
11951         * icall.c: Get machine.config from version-specific directory.
11952         * reflection.c: When generating an image, embed the version number
11953           of the current runtime.
11954
11955 2004-07-28  Dick Porter  <dick@ximian.com>
11956
11957         * socket-io.c
11958         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
11959         returned sockaddr size before creating the remote address object.
11960         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
11961         61608.
11962
11963 2004-07-28  Dick Porter  <dick@ximian.com>
11964
11965         * locales.c (string_invariant_compare_char): Fix invariant char
11966         compares between upper and lower cases.  Fixes bug 61458.
11967
11968 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
11969         
11970         * marshal.c: actually cache stelem.ref wrappers.
11971         
11972 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
11973
11974         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
11975         sections and remove the mono_cli_rva_map () function.
11976
11977 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11978
11979         * debug-mono-symfile.c: fix one more endianess issue, from a patch
11980         by Geoff Norton (<gnorton@customerdna.com>).
11981
11982 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
11983
11984         * class.c: fix class loads for pointer types (typeof(int) !=
11985         typeof(int*)).
11986
11987 2004-07-27  Martin Baulig  <martin@ximian.com>
11988
11989         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
11990         reading the debugging information from an external ".mdb" file.
11991
11992 2004-07-24  Martin Baulig  <martin@ximian.com>
11993
11994         * reflection.c (mono_image_get_type_info): Only write a class
11995         layout entry if we actually have a size or a packing size.
11996
11997 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
11998
11999         * reflection.c (type_get_fully_qualified_name): 
12000         insert cast to get type checking of ?: with non-gcc compilers
12001
12002 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
12003
12004         * rand.c: use g_getenv for both lookups of
12005         MONO_EGD_SOCKET
12006
12007 2004-07-17  Martin Baulig  <martin@ximian.com>
12008
12009         * reflection.c (mono_reflection_bind_generic_method_parameters):
12010         Set `gmethod->reflection_info'.
12011
12012 2004-07-17  Martin Baulig  <martin@ximian.com>
12013
12014         * class.c (mono_class_create_from_typedef): Insert the newly
12015         created class into the hash table before computing the interfaces
12016         since we could be called recursively.
12017
12018 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
12019
12020         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
12021         function to implement stelem.ref in managed code
12022         * class-internals.h, debug-helpers.c: a new wrapper type
12023         for the above.
12024
12025 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
12026
12027         * gc.c: allow GC handles to work even when no GC is compiled in.
12028         Fix part of bug #61134 (GetAddrOfPinnedObject).
12029
12030 2004-07-13  Peter Williams  <peter@newton.cx>
12031  
12032         * process.c (complete_path): Make sure we don't attempt to execute
12033         directories.
12034  
12035 2004-07-12  Geoff Norton <gnorton@customerdna.com>
12036
12037         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
12038           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
12039           and will add/subtract the hour if needed
12040
12041 2004-07-12  Martin Baulig  <martin@ximian.com>
12042
12043         * reflection.c (mono_field_get_object): If we have
12044         `field->generic_info', take the attributes from
12045         `field->generic_info->generic_type'.    
12046
12047 2004-07-12  Martin Baulig  <martin@ximian.com>
12048
12049         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
12050         This function must be called before initializing the runtime.
12051         (mono_debug_init_1): New function; call this after initializing
12052         the runtime, but before loading the assembly.  It tells the
12053         debugger to load corlib and the builtin types.
12054
12055         * mono-debug-debugger.c: Did some larger changes in the debugging
12056         code; support recursive class declarations, make sure we actually
12057         add all classes.
12058
12059 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12060
12061         * debug-helpers.c: undo my previous patch and fixed the real issue in
12062         ../mini/exceptions-x86.c
12063
12064 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12065
12066         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
12067         when no HOME env. variable was set and a NullRef was thrown in a .cctor
12068         called from other .cctors.
12069
12070 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
12071
12072         * loader.c: Removed the mono_loader_wine_init hack now that we are
12073         doing a managed version of Windows.Forms.
12074
12075 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
12076
12077         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
12078         threadpool.c, threads.c: remove static data from rootset.
12079
12080 2004-07-09  Dick Porter  <dick@ximian.com>
12081
12082         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
12083         Don't do any more processing if the matched length was 0.  It was
12084         increasing the size of the string before.  Fixes bug 61167.
12085
12086 2004-07-09  Dick Porter  <dick@ximian.com>
12087
12088         * socket-io.h:
12089         * socket-io.c
12090         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
12091         Add support for SO_PEERCRED if its available.
12092
12093 2004-07-09  Peter Bartok <pbartok@novell.com>
12094         * loader.c: winelib.exe.so error message is now only displayed if
12095         MONO_DEBUG is set. To help us avoid questions when people are trying
12096         out the new Managed.Windows.Forms.
12097
12098 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
12099
12100         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
12101         for isinst and castclass wrappers.
12102
12103         * class-internals.h icall.c: Move registration and lookup of JIT icalls
12104         to libmetadata from the JIT, so they could be used by the marshalling
12105         code and the interpreter.
12106
12107         * marshal.c: Register marshalling related JIT icalls here instead of
12108         in mini.c. Use CEE_MONO_ICALL instead of the family of 
12109         CEE_MONO_PROC<x> opcodes to call marshalling functions.
12110
12111         * metadata.h: Remove unneeded marshalling conversions.
12112
12113         * opcodes.c: Update for new opcodes.
12114         
12115 2004-07-08  Martin Baulig  <martin@ximian.com>
12116
12117         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
12118         (mono_debug_get_domain_data): Make this function static.
12119
12120 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12121
12122         * gc.c, object.h: add nice GC handle API for embedders.
12123
12124 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
12125
12126         * reflection.c: more changes for the new api
12127
12128         * object.c: When we reflect on a field w/ a constant value, it
12129         will not have a memory location, so we must access metadata. Also,
12130         allow easier reading of strings so that we can read them from
12131         the constant data.
12132
12133         * class.c (mono_class_layout_fields): no need for literal fields here.
12134
12135         * class-internals.h: api changes for const fields
12136
12137         * icall.c (ves_icall_get_enum_info): use new apis for const fields
12138
12139 2004-07-06  Martin Baulig  <martin@ximian.com>
12140
12141         * mono-debug.h: Increment version number to 44.
12142
12143         * mono-debug.c (mono_debug_add_wrapper): The second argument is
12144         now a gpointer, rewrote this whole method.
12145
12146         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
12147         function.  Add information about the wrapper in a new "misc table".
12148
12149         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
12150         for the new misc table.
12151
12152 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
12153
12154         * metadata-internals.h image.c: Add a cache for helper signatures.
12155
12156         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
12157
12158 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
12159
12160         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
12161         delegates from a delegate. Fixes #61033.
12162         
12163         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
12164         marshalling of stringbuilder arrays. Fixes #59900.
12165
12166 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
12167
12168         * icall.c: Add EnumBuilder:setup_enum_type icall.
12169
12170 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
12171
12172         * icall.c: Added a new icall for the property version of
12173         OffsetOfStringData.
12174
12175 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
12176
12177         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
12178         it has a constant size across platforms.
12179
12180         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
12181         stack trace.
12182
12183 2004-06-29  Martin Baulig  <martin@ximian.com>
12184
12185         * mono-debug.c (mono_debug_add_method): Protect the whole function
12186         in mono_debugger_lock(), not just parts of it.
12187
12188 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
12189
12190         * reflection.c: make sure padding bytes in heaps are zeroed.
12191
12192 2004-06-24  David Waite  <mass@akuma.org>
12193
12194         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
12195         image.c, loader.c, locales.c, marshal.c, metadata.c,
12196         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
12197         string-icalls.c, threads.c: change to C90-style comments from C99 /
12198         C++ -style
12199
12200 2004-06-24  Dick Porter  <dick@ximian.com>
12201
12202         * threads.c
12203         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
12204         return createdNew.  Fixes bug 60412.
12205
12206         * threads-types.h: 
12207         * icall.c: Add createdNew parameter to CreateMutex icall
12208
12209 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12210
12211         * reflection.c, object-internals.h: save default value in params.
12212
12213 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12214
12215         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
12216         no need to build a new path combining that with the application base.
12217         Fixes bug #60442.
12218
12219 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
12220
12221         * reflection.c: fixed minor standard compliance issues.
12222
12223 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
12224
12225         * reflection.c: fixed issue with encoding some custom attributes
12226         (arrays in properties and fields, bug #60411).
12227
12228 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12229
12230         * reflection.c: fix start address when copying the public key token.
12231
12232 2004-06-23  Martin Baulig  <martin@ximian.com>
12233
12234         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
12235         the `exc' object in a static object to put it into the GC's root set.
12236
12237 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
12238
12239         * reflection.c: make mono_reflection_setup_internal_class ()
12240         callable a second time to setup a new parent class.
12241
12242 2004-06-23  Dick Porter  <dick@ximian.com>
12243
12244         * threads.c: Check for WAIT_IO_COMPLETION return values.
12245
12246 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
12247
12248         * appdomain.c: Removed the g_free on the public key token. Now copy 
12249         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
12250         * assembly.c: Added public key token string value when loading 
12251         assemblies. Fix bug #60439.
12252         * icall.c: Added missing informations (like public key) in 
12253         GetReferencedAssemblies. Fix #60519.
12254         * image.h: Changed definition for public key token from const char*
12255         public_tok_value to guchar public_key_token [17];
12256         * reflection.c: Updated for changes to public key token.
12257
12258 2004-06-22  Lluis Sanchez Gual
12259
12260         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
12261         for the field in base classes.
12262
12263 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12264
12265         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
12266         mark headers as not supported, they are installed only for use by the
12267         debugger.
12268
12269 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
12270
12271         * *.c, *.h: avoid namespace pollution in public headers.
12272
12273 2004-06-21  Martin Baulig  <martin@ximian.com>
12274
12275         * exception.c (mono_get_exception_security): It's in
12276         "System.Security", not in "System".
12277
12278         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
12279         the exception classes.
12280
12281 2004-06-21  Martin Baulig  <martin@ximian.com>
12282
12283         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
12284         Protect the exception object from being finalized.
12285
12286 2004-06-21  Martin Baulig  <martin@ximian.com>
12287
12288         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
12289         public function.
12290
12291 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
12292
12293         * reflection.c: Load the assembly in mono_reflection_type_from_name,
12294         if it was not loaded before. Fix parts of #60439.
12295
12296 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
12297
12298         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
12299         code that was broken since Ben's change: wrappers are now
12300         dependent on the method signature only again.
12301
12302 2004-06-21  Martin Baulig  <martin@ximian.com>
12303
12304         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
12305         added interface support.
12306
12307 2004-06-21  Martin Baulig  <martin@ximian.com>
12308
12309         * class.c (mono_vtable_get_static_field_data): New public method.
12310
12311 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
12312
12313         * filewatcher.c : Windows build fix to be compliant with API changes.
12314
12315 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12316
12317         * class.h, class.c: more accessors.
12318         * metadata.h, metadata.c: prepare for hiding MonoType and
12319         MonoMethodSignature: people should use the accessors from now on
12320         outside of the tree.
12321
12322 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
12323
12324         * *.c, *.h: more API cleanups.
12325
12326 2004-06-18  Jackson Harper  <jackson@ximian.com>
12327
12328         * assembly.c: Trace loading assemblies.
12329         * loader.c: Trace loading native libraries.
12330         * mono-config.c: Trace loading config files.
12331         
12332 2004-06-18  Dick Porter  <dick@ximian.com>
12333
12334         * locales.c: Tell ICU the lengths of strings, it can cope with
12335         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
12336
12337 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
12338
12339         * image.c: swapped name/filename;
12340
12341 2004-06-18  Martin Baulig  <martin@ximian.com>
12342
12343         * mono-debug-debugger.c (write_class): Write the parent class at
12344         the end of the header.
12345
12346 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
12347
12348         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
12349
12350 2004-06-17  Raja R Harinath  <rharinath@novell.com>
12351
12352         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
12353         (bundle_obj): New conditional define.
12354         (BUILT_SOURCES): Remove.
12355         ($(bundle_srcs)): Make parallel-make safe.
12356         (libmonoruntime_la_LIBADD): Make unconditional.
12357         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
12358         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
12359
12360 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
12361
12362         * culture-info-tables.h: It was inconsistent with the latest
12363           supp info files.
12364
12365 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
12366
12367         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
12368         be loaded.
12369
12370         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
12371         with gcc 2.95.
12372
12373 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
12374
12375         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
12376         cleaned up public header threads.h.
12377
12378 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
12379
12380         * Makefile.am, *.c, *.h: more API cleanups.
12381
12382 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
12383
12384         * Makefile.am: removed monosn from compilation.
12385         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
12386         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
12387         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
12388         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
12389         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
12390         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
12391
12392 2004-06-15  Jackson Harper  <jackson@ximian.com>
12393
12394         * assembly.c: Make locales lower case when searching the GAC for
12395         assemblies. gacutil will always make locales lowercase when
12396         installing so this effectively makes them case insensitive.
12397         
12398 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
12399
12400         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
12401         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
12402           parameter which allows to choose whether the wait can be interrupted or 
12403           not. Also added the method mono_monitor_enter(), which locks the monitor
12404           using an infinite wait and without allowing interruption.
12405           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
12406           interrupted.
12407         * object.h: Added new fields in MonoThread. suspend_event holds the event
12408           used to susped/resume the thread. synch_lock is the lock object to use for
12409           modifying the thread state.
12410         * threads.c: Use the new synch_lock object for locking, instead of "this",
12411           which can generate deadlocks.
12412           Moved thread state change in Thread.Sleep and Thread.Join from managed
12413           to unmanaged code. This avoids a deadlock when the thread was suspended
12414           just after acquiring the thread lock.
12415           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
12416           Implemented Thread.Suspend using an event instead of ThreadSuspend,
12417           which is not fully implemented in the io-layer.
12418         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
12419
12420 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
12421
12422         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
12423         threads-types.h: more API cleanups.
12424
12425 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
12426
12427         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
12428         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
12429         threadpool.c, threads.c: first pass at the exported API cleanup.
12430
12431 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
12432
12433         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
12434
12435 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12436
12437         * icall.c: added internalGetHome.
12438
12439 2004-06-14  Dick Porter  <dick@ximian.com>
12440
12441         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
12442         possible to return successfully when '.' or '..' were the only
12443         entries in a directory, but were skipped.  The MonoIOStat was not
12444         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
12445         Fixes bug 59574.
12446
12447 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
12448
12449         * reflection.c: make binaries run on .Net 1.1 by default.
12450
12451 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12452
12453         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
12454
12455 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
12456
12457         * marshal.c: keep track of struct size with explicit layout
12458         (bug #59979).
12459
12460 2004-06-12  Martin Baulig  <martin@ximian.com>
12461
12462         * mono-debug-debugger.c: Comment out a debugging g_message().
12463
12464 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
12465
12466         * reflection.c, reflection.h: do not free custom attrs that are cached.
12467         * icall.c: use braces to make code clearer.
12468
12469 2004-06-11  Martin Baulig  <martin@ximian.com>
12470
12471         * class.h (MonoInflatedField): New type.
12472         (MonoClassField): Replaced `MonoType *generic_type' with
12473         `MonoInflatedField *generic_info'.
12474
12475         * icall.c
12476         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
12477
12478 2004-06-11  Martin Baulig  <martin@ximian.com>
12479
12480         * reflection.c (mono_image_create_method_token): Correctly encode
12481         varargs methods.
12482
12483 2004-06-11  Martin Baulig  <martin@ximian.com>
12484
12485         * metadata.c (mono_metadata_parse_method_signature): When parsing
12486         a MethodDef which has VarArgs, also set sentinelpos if we don't
12487         have any parameters.
12488
12489 2004-06-11  Martin Baulig  <martin@ximian.com>
12490
12491         * verify.c (mono_method_verify): In CEE_CALL, use
12492         mono_method_get_signature() to get the method's signature, unless
12493         we're a PInvoke method.
12494
12495 2004-06-10  Jackson Harper  <jackson@ximian.com>
12496
12497         * assembly.c: Use <path>/lib/mono/gac for the extra paths
12498         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
12499         logical name as the supplied path is just a prefix to the gac not
12500         the direct path to it.
12501         
12502 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
12503
12504         * reflection.c: make the token for a created method match
12505         the token of the MethodBuilder it was created from
12506         (IKVM requires this behaviour now).
12507
12508 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
12509
12510         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
12511         reflection.c, socket-io.c: leak fixes.
12512
12513 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
12514
12515         * icall.c: handle sentinel pos in vararg methods in position different
12516         from 0.
12517
12518 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12519
12520         * culture-info-tables.h: freshly generated.
12521
12522 2004-06-09  Martin Baulig  <martin@ximian.com>
12523
12524         * loader.c (mono_get_method_constrained): Call `mono_class_init
12525         (constrained_class)'.   
12526
12527 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
12528
12529         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
12530         any methods. Fixes #59629.
12531
12532 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12533
12534         * culture-info-tables.h: reflecting locale-builder updates.
12535
12536 2004-06-08  Dick Porter  <dick@ximian.com>
12537
12538         * object.h:
12539         * locales.c: Fixed compile warnings, including a real bug in
12540         CompareInfo_internal_compare.
12541         
12542 2004-06-08  Dick Porter  <dick@ximian.com>
12543
12544         * locales.c
12545         (ves_icall_System_Globalization_CompareInfo_internal_index):
12546         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12547         Double-check the resuls of usearches, because ICU currently
12548         ignores most of the collator settings here.  Fixes bug 59720.
12549         
12550 2004-06-08  Dick Porter  <dick@ximian.com>
12551
12552         * locales.c
12553         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
12554         Fix memory leak and segfault-causing typo.  No idea how this one
12555         lasted so long without being noticed.
12556
12557 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
12558
12559         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
12560         any methods. Fixes #59629.
12561
12562 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12563
12564         * assembly.c:
12565         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
12566         own the critical section before). Removed dead code (that's done
12567         in the preload hook).
12568
12569         (mono_assembly_load_with_partial_name): call the preload hook.
12570
12571 2004-06-08  Martin Baulig  <martin@ximian.com>
12572
12573         * metadata.c (mono_metadata_signature_alloc): Default
12574         `sentinelpos' to -1.
12575
12576         * reflection.c (mono_image_get_array_token): Likewise.
12577
12578 2004-06-08  Martin Baulig  <martin@ximian.com>
12579
12580         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
12581
12582         * metadata.c (mono_metadata_parse_method_signature): When parsing
12583         a MethodDef which has VarArgs, set sentinelpos.
12584
12585         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
12586         `gint16' since we're using -1 for non-varargs methods.
12587
12588         * reflection.c
12589         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
12590         (method_encode_signature): Added varargs support.
12591         (method_builder_encode_signature): Likewise.
12592         (mono_image_get_varargs_method_token): New static method.
12593         (mono_image_create_method_token): New public method; this is
12594         called via an icall instead of mono_image_create_token() when
12595         calling a varargs method.       
12596
12597 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
12598
12599         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
12600
12601 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12602
12603         * culture-info-tables.h : Reflecting the latest locale-builder that
12604           fixed empty array representation ({} to {0}).
12605
12606 2004-06-07  Jackson Harper  <jackson@ximian.com>
12607
12608         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
12609         looking up extra gac paths. This allows MONO_GAC_PATH to act
12610         exactly like a prefix.
12611         
12612 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12613
12614         * reflection.c (mono_reflection_type_from_name): Make a copy of the
12615         type name before modifying it. Fixes #59405.
12616
12617 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12618
12619         * culture-info.h: added fields for "all datetime patterns".
12620         * locales.c: (  ves_icall_System_Globalization_CultureInfo
12621           _construct_datetime_format ()): fill xxx_patterns fields.
12622         * object.h: added fields for "all datetime patterns" to
12623           MonoDateTimeFormatInfo.
12624         * culture-info-tables.h: reflecting locale-builder updates.
12625
12626 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
12627
12628         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
12629         the event has no add and remove methods. Fixes #59629.
12630
12631 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
12632
12633         * object.c: Fixed possible integer overflow when allocating large
12634         strings.
12635
12636 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12637
12638         * culture-info-tables.h: reflecting locale-builder updates.
12639
12640 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
12641
12642         * culture-info-tables.h: reflecting locale-builder updates.
12643
12644 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
12645
12646         * culture-info-tables.h: reflecting locale-builder updates.
12647
12648 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
12649
12650         * threads.c: Made Thread.Sleep abortable.
12651
12652 2004-06-02  Martin Baulig  <martin@ximian.com>
12653
12654         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
12655
12656         * debug-mono-symfile.h: Bumped symbol file version number to 37.
12657
12658 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
12659
12660         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
12661
12662 2004-05-30  Jackson Harper  <jackson@ximian.com>
12663
12664         * reflection.c: Do not hardcode assembly versions or public key
12665         tokens anymore. All of this except the corlib section was dead
12666         code anyways.
12667         
12668 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
12669
12670         * object.c (mono_runtime_invoke_array): Automatically create boxed
12671         objects for byref valuetypes if needed. Fixes #59300.
12672         
12673         * object.c (mono_method_return_message_restore): Handle 
12674         MONO_TYPE_OBJECT as well.
12675
12676 2004-05-28  Jackson Harper  <jackson@ximian.com>
12677
12678         * reflection.c: The modified type encoding was causing build
12679         problems. Reverted for now.
12680         
12681 2004-05-28  Jackson Harper  <jackson@ximian.com>
12682
12683         * reflection.c/h: Take an assembly ref so that we dont create
12684         fully qualified names when encoding types in the same assembly as
12685         the custom attribute being emitted.
12686         * appdomain.c: Increment version number.
12687         
12688 2004-05-26  Duncan Mak  <duncan@ximian.com>
12689
12690         * icall.c
12691         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
12692         Set the full version number (major, minor, build, revision).
12693
12694 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
12695
12696         * marshal.c (emit_struct_conv): increment src/dst after blit
12697         (mono_marshal_get_managed_wrapper,
12698         mono_marshal_get_native_wrapper): make sure we have marshalling
12699         info before marshalling params (info computation affects
12700         blittable)
12701
12702         * class.c (class_compute_field_layout): correctly deal with
12703         blittable
12704         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
12705         value types (as per what windows dows by default)
12706         (mono_class_setup_mono_type): System.ValueType is blittable
12707         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
12708         blittable
12709
12710         * marshal.c (mono_marshal_load_type_info): flag types  as
12711         non-blittable if the native layout doesn't match the managed
12712         layout
12713
12714 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12715
12716         * appdomain.c: don't add stuff in the private search path that is
12717         above the application base. If application base is not set, there's
12718         no private search path.
12719
12720 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
12721
12722         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
12723         byref struct arguments in native->managed marshalling.
12724
12725 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
12726
12727         * marshal.c (mono_marshal_get_runtime_invoke): correctly
12728         cache methods using signature (special case for methods
12729         that are value type or string class)
12730         
12731         * image.c (mono_image_close): clean up allocated GSList's
12732         in runtime_invoke_cache.
12733
12734 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12735
12736         * mono-config.c: set the correct path for mono_cfg_dir on windows when
12737         there's no MONO_CFG_DIR environment variable defined.
12738
12739 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12740
12741         * threads.c: windows version must be >= 0x0500 to include OpenThread.
12742
12743 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
12744
12745         * threadpool.c: Really wait for 500ms after the async call, even if the wait
12746           is interrumped.
12747         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
12748           before waiting for it, and call CloseHandle after the wait to unref it.
12749           This will make sure that handles are not disposed too early.
12750
12751 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12752
12753         * appdomain.c:
12754         * appdomain.h:
12755         * icall.c: removed
12756         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
12757         needed now.
12758
12759         * object.c: se the application_base only for the domain that runs
12760         Main. Fixes bug #59216,
12761
12762 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12763
12764         * appdomain.c:
12765         * object.c: only the domain in which Main is run have
12766         SetupInformation.ConfigurationFile set, so moved a few lines from
12767         appdomain.c to object.c.
12768
12769 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12770
12771         * appdomain.c: we tried to load [name].(dll|exe), but according
12772         to bug #57710, we must also try [culture]/[name].(dll|exe) and
12773         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
12774         There's a test case attached to bug #58922.
12775
12776 2004-05-27  Dick Porter  <dick@ximian.com>
12777
12778         * icall.c:
12779         * file-io.c: Implemented icalls for locking and unlocking regions
12780         in a file.
12781         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
12782         FALSE on error (fixes both compiler warning and real bug.)
12783
12784 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
12785
12786         * culture-info-tables.h: reflecting locale-builder updates.
12787
12788           (Added missing ChangeLog entry for 05/26)
12789
12790 2004-05-27  Jackson Harper  <jackson@ximian.com>
12791
12792         * locales.c: Fix some cut and paste errors.
12793         
12794 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12795
12796         * mono-config.c: set the correct path for config. directory on windows.
12797
12798 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12799
12800         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
12801           on win32.
12802
12803 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12804
12805         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
12806         from pinvoke functions.
12807         
12808         * marshal.c (mono_ftnptr_to_delegate): Implement this.
12809
12810 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12811
12812         * culture-info-tables.h: reflecting locale-builder updates.
12813
12814 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
12815
12816         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
12817         #59086.
12818
12819 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
12820
12821         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
12822         * icall.c: Modified icalls for RNG.
12823         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
12824         Windows (CryptoAPI).
12825
12826 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12827
12828         * locales.c: Fix build.
12829
12830 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12831
12832         * culture-info-tables.h: reflecting locale-builder updates.
12833
12834 2004-05-25  Jackson Harper  <jackson@ximian.com>
12835
12836         * locales.c: When creating the current culture use the $LANGs
12837         specific culture. So DateTimeFormat and NumberFormat entries are created.
12838         
12839 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
12840
12841         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
12842         a char array as parameter.
12843
12844 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
12845
12846         * image.c: In mono_image_open(), always use an absolute path name to
12847           look for already loaded images.
12848
12849 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
12850
12851         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
12852         missing in the windows build (like older cygwin include files).
12853
12854 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
12855
12856         * icall.c: Fixed check for possible integer overflow in Buffer_
12857         BlockCopy icall. Replaced comments style // by /* */.
12858
12859 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
12860
12861         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
12862         
12863         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
12864         check after MONO_VTADDR. Fixes pinvoke2.exe.
12865
12866         * marshal.h marshal.c metadata.h: Add beginnings of support for
12867         ftnptr -> delegate marshalling.
12868
12869 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
12870
12871         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
12872         * threads.c: Fix warnings.
12873
12874 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
12875
12876         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
12877         * icall.c: Registered icalls for Suspend and Resume.
12878         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
12879           Thread.Abort.
12880         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
12881         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
12882         * process.c: Use WaitForSingleObjectEx.
12883         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
12884           checkpoints.
12885         * threads.c, threads.h: Make use of new Ex wait methods. Improved
12886           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
12887           for Suspend and Resume. Added new mono_thread_stop, used for stoping
12888           background threads. Added basic support for Abort in Windows.
12889           Start new threads using a managed delegate invoke wrapper. This wrapper
12890           has an interruption checkpoint that is needed since an interruption
12891           can be requested before the thread leaves the unmanaged code that starts 
12892           the thread.
12893         * marshal.c: Added interruption checkpoint after every native call, and
12894           also before managed calls for wrappers called from unmanaged code to
12895           go into managed code.
12896         * object.h: Added new field in MonoThread to keep track of interruption
12897           requests.
12898
12899 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
12900
12901         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
12902         calls.
12903
12904 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12905
12906         * appdomain.c:
12907         * assembly.c:
12908         * gc.c:
12909         * locales.c:
12910         * mono-config.c:
12911         * rand.c: getenv -> g_getenv (windows!)
12912
12913         * process.c: complete_path is also used on non-windows platforms.
12914
12915 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12916
12917         * icall.c: new signature for Process_Start.
12918
12919         * process.[ch]: new signature for Process_Start. If we're on windows
12920         and UseShellExecute is false, we have to search for the program by
12921         ourselves if we don't get a full path.
12922
12923 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
12924
12925         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
12926         marshalling and call CleanUpNativeData if needed. Fixes #58646.
12927
12928 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12929
12930         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
12931         Fixes bug #58373.
12932
12933 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12934
12935         * process.c: use double quotes to quote program name and arguments on
12936         windows. Fixes bug #58575.
12937
12938 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12939
12940         * file-io.c: don't return "." and ".." when using windows Find*File.
12941
12942 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
12943
12944         * marshal.c: Don't pass wrappers to message init because method 
12945         addressed used to lookup metadata. part of remoting[2|3] fix.
12946
12947 2004-05-15  Jackson Harper  <jackson@ximian.com>
12948
12949         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
12950         path is essentially the same as MONO_PATH except that it points to
12951         GACs instead of lib directories.
12952         * loader.h: The user gac is gone so we dont need function to
12953         enable/disable it.
12954         * mono-config.c: user gac option is now gone.
12955         
12956 2004-05-15  Jackson Harper  <jackson@ximian.com>
12957
12958         * culture-info.h: Make defines more consistent, add calendar data
12959         to the culture info table.
12960         * culture-info-tables.h: Add basic calendar data. Basically
12961         everyone gets default gregorian until all the data is
12962         updated.
12963         * locales.c: Use the new consistent defines. Set calendar data for
12964         culture info objects.
12965         * object.h: add a field for calendar data to CultureInfo
12966         
12967 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
12968
12969         * image.c: image->runtime_invoke_cache is keyed on signatures now.
12970         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
12971         a signature.
12972         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
12973         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
12974         an extra param that is the pointer of the method to invoke. The IL for
12975         the invoke method is no longer specific to the method, but to the
12976         signature of the method. Thus, we can share the same code for multiple
12977         methods. This reduces the number of methods that have to be compiled.
12978
12979 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
12980
12981         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
12982
12983         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12984
12985         * icall.c: Optimize Buffer.BlockCopy.
12986
12987 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12988
12989         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
12990         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
12991         quote). Changed them to "MMMM yyyy".
12992
12993 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
12994
12995         * rand.c
12996         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
12997
12998 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
12999
13000         * reflection.h: Updated after changes to managed structures.
13001
13002         * appdomain.c: Bump corlib version.
13003
13004 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13005
13006         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
13007         windows.
13008
13009 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13010
13011         * Makefile.am: link to ../os/libmonoos.la on windows.
13012
13013         * assembly.c:
13014                 -If MONO_DEBUG, warn about non-existing directories in
13015                 MONO_PATH.
13016                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
13017                 compile time variable.
13018                 -Removed init_default_path and call mono_set_rootdir from
13019                 libmonoos.a instead (windows only).
13020
13021         * assembly.h: declare mono_assembly_getrootdir().
13022
13023         * domain.c:
13024         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
13025
13026         * loader.c: s/getenv/g_getenv/
13027
13028 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
13029
13030         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
13031
13032         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
13033
13034         * metadata.h: Add new marshalling conversions.
13035
13036         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
13037         function.
13038
13039         * reflection.c (mono_reflection_get_type): Lookup the type in all
13040         modules of a multi-module assembly. Fixes #58291.
13041
13042 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
13043
13044         * threads.c: Before aborting a background, set the StopRequested
13045         state.  This avoids throwing the Abort exception.
13046         In mono_thread_manage, don't continue with the shutdown until all
13047         aborted threads have actually stopped.
13048
13049 2004-05-10  Jackson Harper  <jackson@ximian.com>
13050
13051         * locales.c: Remove the modifier from culture names.
13052         
13053 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13054
13055         * Makefile.am: monosn is not installed any more. It has been deprecated
13056         in favor of sn.
13057
13058 2004-05-07  Jackson Harper  <jackson@ximian.com>
13059
13060         * locales.c
13061         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
13062         Fix array construction, add bailout if the length is 0.
13063
13064 2004-05-07  Dick Porter  <dick@ximian.com>
13065
13066         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
13067         machine doesn't have a DNS entry.  Patch by Urs Muff
13068         (umuff@quark.com), fixes bug 57928.
13069
13070 2004-05-06  Jackson Harper  <jackson@ximian.com>
13071
13072         * reflection.c: Handle null PublicTokens properly. alloc mem for
13073         assembly names culture so we dont crash when freeing it.
13074         
13075 2004-05-06  Jackson Harper  <jackson@ximian.com>
13076
13077         * assembly.c: Check the usergac when loading with partial names.
13078         
13079 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13080
13081         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
13082         does nothing for now (not required for Linux/Windows) but the class
13083         library can call it (and a newer or modified runtime could need it).
13084         * icall.c: Registred icall.
13085
13086 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13087
13088         * loader.c: prints a message on module loading error we set MONO_DEBUG
13089         environment variable.
13090
13091 2004-05-05  Jackson Harper  <jackson@ximian.com>
13092
13093         * appdomain.c: Handle PublicKeyToken=null properly.
13094         
13095 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
13096
13097         * environment.c|h: Added icall ves_icall_System_Environment_
13098         GetOSVersionString to get the current OS version as a string.
13099         * icall.c: Registred icall.
13100
13101 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
13102
13103         * object.c: in mono_object_get_virtual_method(), take into account that
13104         non-virtual methods don't have a slot in the vtable. Check needed when
13105         the object is a proxy.
13106
13107 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
13108
13109         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
13110         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
13111
13112         * object.c (mono_class_compute_gc_descriptor): Fix warning.
13113
13114         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
13115         passed when a valuetype is expected.
13116
13117         * object.c (mono_unhandled_exception): Only set the exit code if the
13118         exception happens in the main thread. Fixes thread5.exe.
13119
13120         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
13121         invalid names. Fixes #58047.
13122
13123 2004-05-03  Jackson Harper  <jackson@ximian.com>
13124
13125         * assembly.c: This line was committed accidently and is unneeded.
13126         
13127 2004-05-03  Jackson Harper  <jackson@ximian.com>
13128
13129         * icall.c: Add new icall for Assembly::LoadWithPartialName
13130         * assembly.c/.h: new function that probes the GAC to load partial
13131         assembly names by Paolo Molaro.
13132         
13133 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13134
13135         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
13136         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
13137         (type_get_fully_qualified_name): Added PublicKeyToken when building a
13138         full type name.
13139
13140 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13141
13142         * appdomain.c: fixed check for 'neutral' culture and removed warning.
13143         * reflection.c: fix bug when parsing a full type name and Version is not
13144         the last thing in the string.
13145
13146 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
13147
13148         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
13149         crashes when it is freed.
13150
13151 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13152
13153         * assembly.c: print the compat warning to stderr.
13154
13155 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
13156
13157         * assembly.c (mono_assembly_load_references): Add a compatibility
13158         hack to run old applications that might be still referencing the
13159         3300-based assemblies, only do this for System.xxx.
13160
13161 2004-05-01  Jackson Harper  <jackson@ximian.com>
13162
13163         * appdomain.c: If the culture is neutral we set it to "".
13164         
13165 2004-04-29  Jackson Harper  <jackson@ximian.com>
13166
13167         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
13168
13169 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
13170  
13171         * string-icalls.c: added low overhead function for copying chars
13172         * icall.c: added needed icall for the above function
13173  
13174 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13175
13176         * icall.c: fix return value of get_global_assembly_cache.  Implemented
13177         Environment.GetLogicalDrives.
13178
13179 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
13180
13181         * rand.c: try and talk to egd or prngd
13182         for random bytes if opening devices fail.
13183
13184 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
13185
13186         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
13187         alignment for the type using the native alignment of its members 
13188         instead of using klass->min_align.
13189
13190         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
13191
13192 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13193
13194         * file-io.c:
13195         * socket-io.c: added check for sys/aio.h.
13196
13197 2004-04-28  Dick Porter  <dick@ximian.com>
13198
13199         * threads.c: Don't abort a thread thats already aborting, when
13200         terminating everything.
13201
13202 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13203
13204         * icall.c: added 2 new async calls for Socket.
13205
13206         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
13207         IO on *nix systems.
13208
13209         * threadpool.c: removed unused variable.
13210
13211 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
13212
13213         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
13214
13215 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
13216
13217         * locales.c: put back string_invariant_tolower () and
13218         string_invariant_toupper ().
13219
13220 2004-04-26 David Waite <mass@akuma.org>
13221
13222         * file-io.h:
13223         * socket-io.h:
13224         * threads.h:
13225         * unicode.h: remove comma from end of enumeration declarations
13226
13227 2004-04-26 David Waite <mass@akuma.org>
13228
13229         * debug-mono-symfile.h:
13230         * decimal.c:
13231         * mono_debug.h:
13232         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
13233
13234
13235 2004-04-26  Jackson Harper  <jackson@ximian.com>
13236
13237         * appdomain.c: Increment version number.
13238         
13239 2004-04-26  Jackson Harper  <jackson@ximian.com>
13240
13241         * appdomain.c: Set assembly references public token value when
13242         PublicKeyToken is specified, not the hash_value. Free public token
13243         values when free assembly name data. Previously the public key
13244         token was hex decoded, however we are using hex encoded public key
13245         tokens, so this is not neccasary.
13246         * assembly.c: Lookup assemblies in the gac if their public token
13247         value is set. Add function to allow enabling user gac
13248         lookups. Specify whether or not the assembly was loaded from the
13249         GAC. Compare full assembly names when checking the cache for
13250         assemblies (Temporarily disabled see comment in code). Remove
13251         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
13252         specifies trace-loader they get extra info to stdout on the
13253         loading of assemblies.
13254         * image.h: Add a field for an assembly references public token
13255         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
13256         whether an assembly has been loaded from the GAC.
13257         * image.c: Remove a corlib -> mscorlib name mapping.
13258         * loader.h: Add function to enable/disable the user gac.
13259         * mono-config.c: Check if the usergac is enabled in the config
13260         file.
13261         * icall.c: New icall to determine whether or not an assembly has
13262         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
13263         * tabldefs.h: Add constant for assemblyref flag that specifies a
13264         full public key is used instead of a public token.
13265         * reflection.c: Remove mscorlib -> corlib mappings. Set
13266         PublicTokenValue instead of hash value. This value is a hex
13267         string so it does not need to be expanded.
13268
13269 2004-04-26  Martin Baulig  <martin@ximian.com>
13270
13271         * mono-debug-debugger.c (mono_debugger_initialize): Set
13272         `mono_debugger_initialized' before calling mono_debug_lock().
13273
13274 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
13275
13276         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
13277           InternalToUpper/InternalToLower.
13278         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
13279           removed invariant culture shortcut.  This is now done in managed code.
13280         * locales.c: (string_invariant_toupper/tolower) removed.
13281
13282 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13283
13284         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
13285         Added Poll internal call.
13286
13287         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
13288         call for Poll. Select was too heavy for polling a single socket.
13289
13290         * threadpool.[ch]: added mono_threadpool_cleanup.
13291         * threads.c: use it. Don't use Thread_Abort on windows.
13292
13293 2004-04-23  Martin Baulig  <martin@ximian.com>
13294
13295         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
13296
13297 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
13298
13299         * icall.c: Registred new icalls for key pair protection and added an
13300         icall for Environment.GetFolderPath on Windows.
13301         * security.c|h: Added new icalls for key pair protection.
13302
13303 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13304
13305         * socket-io.c: don't display the non-supported family warning for known
13306         families. Now this is not displayed on windows when checking support
13307         for IPv4/IPv6.
13308
13309 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13310
13311         * class.c: don't display the layout warning for static fields.
13312
13313 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
13314
13315         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
13316         * locales.c, locales.h: Added new icalls for culture-specific
13317         Char.ToLower and Char.ToUpper.
13318
13319 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13320
13321         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
13322         by David Waite.
13323
13324 2004-04-20  Martin Baulig  <martin@ximian.com>
13325
13326         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
13327         of the type name before passing it to mono_reflection_type_from_name().
13328
13329 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
13330
13331         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
13332         encodings here. Fixes #56965.
13333
13334 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
13335
13336         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13337         fix test on strstr result not that I can see anything that
13338         relies on the result.
13339
13340 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
13341
13342         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
13343         Fixes #57081.
13344
13345         * marshal.c (mono_marshal_get_string_encoding): New helper function.
13346
13347         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
13348         function to determine which marshalling to use for strings. Fixes
13349         #56965.
13350
13351         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
13352
13353         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
13354
13355 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
13356
13357         * icall.c: #include mono-config.h
13358
13359 2004-04-15  Jackson Harper  <jackson@ximian.com>
13360
13361         * culture-info-tables.h: Fix date formats for en-US culture.
13362         
13363 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
13364
13365         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
13366         ThreadPool.SetMinThreads.
13367         * threadpool.c: Implemented ThreadPool.GetMinThreads and
13368         ThreadPool.SetMinThreads.
13369
13370 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
13371
13372         * mono-config.c: also load the .config file in the directory
13373         where the assembly was found.
13374
13375 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
13376
13377         * assembly.c: load per-assembly config files.
13378         * icall.c: decrapified code to get the config dir and moved to
13379         mono-config.c.
13380         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
13381         per-assembly config files. When doing a dll map lookup give precedence
13382         to the per-assembly data.
13383
13384 2004-04-14  Martin Baulig  <martin@ximian.com>
13385
13386         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
13387         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
13388         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
13389
13390         * mono-debugger-debugger.c: While the debugger is locked, remember
13391         whether the symbol tables have changes and send one single
13392         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
13393
13394 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
13395
13396         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
13397
13398         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
13399         function.
13400
13401         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
13402         account when marshalling string arrays. Fixes #56965.
13403
13404 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
13405
13406         * icall.c: Add new icalls mapping for security.
13407         * security.c|h: Add internal calls for WindowsIdentity,
13408         WindowsImpersonationContext and WindowsPrincipal.
13409
13410 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
13411
13412         * class.c: Added comment to ensure the System.MonoDummy class
13413         is removed when no longer necessary
13414
13415 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
13416
13417         * appdomain.c: Pass arguments to the bootstraping exceptions to
13418         minimize JITed methods at boot
13419
13420         * metadata.c (mono_exception_from_name_two_strings): Allow for the
13421         second string to be null.
13422
13423         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
13424         Change the protocol to minimize the JIT methods at startup.  Now
13425         it Returns the internal codepage, if the value of "int_code_page"
13426         is 1 at entry, and we can not compute a suitable code page
13427         number, returns the code page as a string.
13428
13429 2004-04-13  Jackson Harper  <jackson@ximian.com>
13430
13431         * culture-info-tables.h: Fix number of decimal digits for all
13432         english locales.
13433
13434 2004-04-13  Jackson Harper  <jackson@ximian.com>
13435
13436         * icall.c: Clairfy out of sync error message. It is not always
13437         your corlib that is out of sync.
13438
13439 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
13440
13441         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
13442         properties when only the set accessor is overriden. Fixes #55874.
13443
13444 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
13445
13446         * assembly.c (mono_assembly_load_references): Make this thread safe.
13447         Fixes #56327.
13448
13449 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
13450
13451         * monosn.c: Add missing initialization calls.
13452
13453 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
13454
13455         * locales.c:
13456         ves_icall_System_Globalization_CultureInfo_construct_number_format
13457         Fix g_assert so it compiles on fussier compilers re int/ptr
13458         mismatch
13459
13460 2004-04-08  Dick Porter  <dick@ximian.com>
13461
13462         * socket-io.h:
13463         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
13464         53992.  Also rearrange the code so that the internal calls return
13465         an error value and exceptions are thrown from managed code.
13466
13467         * icall.c: Add type info to the socket icalls.
13468
13469 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13470
13471         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
13472         owes me a beer.
13473
13474 2004-04-07  Martin Baulig  <martin@ximian.com>
13475
13476         * class.c (mono_class_from_generic_parameter): Don't default
13477         `klass->parent' to `mono_defaults.object_type'.
13478
13479 2004-04-07  Martin Baulig  <martin@ximian.com>
13480
13481         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13482         `param->pklass->reflection_info'.       
13483
13484 2004-04-07  Jackson Harper  <jackson@ximian.com>
13485
13486         * culture-info-tables.h: Fix date separator symbol.
13487         
13488 2004-04-07  Martin Baulig  <martin@ximian.com>
13489
13490         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
13491         from System.Type to System.MonoType.
13492
13493 2004-04-07  Martin Baulig  <martin@ximian.com>
13494
13495         * reflection.h
13496         (MonoReflectionGenericParam): Added `has_reference_type' and
13497         `has_value_type' fields.
13498
13499         * reflection.c (mono_image_get_generic_param_info): Encode the
13500         correct flags if we have the `class' or `struct' constraint.
13501
13502 2004-04-07  Martin Baulig  <martin@ximian.com>
13503
13504         * reflection.h
13505         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
13506
13507 2004-04-07  Jackson Harper  <jackson@ximian.com>
13508
13509         * appdomain.c: Revert extra patches, just wanted to bump the
13510         version number.
13511         
13512 2004-04-07  Jackson Harper  <jackson@ximian.com>
13513
13514         * Makefile.am: Add culture-info private headers.
13515         * icall.c: Add new icalls for contructing locales.
13516         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
13517         * locales.h: Declare new culture info construction methods.
13518         * object.h: Add new fields used to avoid the CultureMap to
13519         MonoCultureInfo.
13520         * culture-info.h: Definition of structs used in the culture info
13521         tables.
13522         * culture-info-tables.h: Autogenerated tables that contain culture
13523         info data. This file was generated with the locale-builder tool.
13524         * appdomain.c: Incement corlib version number.
13525         
13526 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
13527
13528         * appdomain.c: (mono_runtime_init) move mono_thread_init
13529         to before mono_object_new calls so critical sections
13530         are initialized before use.
13531
13532 2004-04-07  Martin Baulig  <martin@ximian.com>
13533
13534         * icall.c
13535         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
13536         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
13537         (ves_icall_MonoGenericParam_initialize): Removed.
13538         (monogenericparam_icalls): Removed.
13539         (generictypeparambuilder_icalls): Added new table for
13540         System.Reflection.Emit.GenericTypeParameterBuilder.
13541
13542         * reflection.c
13543         (mono_reflection_define_generic_parameter): Removed.
13544         (mono_reflection_initialize_generic_parameter): This is now called
13545         from GenericTypeParameterBuilder's .ctor.
13546
13547 2004-04-06  Martin Baulig  <martin@ximian.com>
13548
13549         * class.c (mono_class_init): Don't inflate nested classes in a
13550         generic instance.
13551         (mono_type_get_name_recurse): Include the generic arguments for
13552         generic instances and generic type declarations.
13553         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
13554         (_mono_class_get_instantiation_name): Removed.
13555         (mono_class_create_generic): Always use `gklass->name' as our name.
13556
13557         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
13558
13559         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
13560         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
13561         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
13562         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
13563         closed generic methods here.
13564
13565         * reflection.c
13566         (mono_reflection_generic_inst_get_nested_types): Removed.
13567         (inflate_mono_method): Copy the generic parameters from the
13568         MonoMethodHeader into out MonoGenericMethod.
13569
13570 2004-04-06  Martin Baulig  <martin@ximian.com>
13571
13572         * row-indexes.h
13573         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
13574
13575         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
13576
13577         * reflection.c (build_compressed_metadata): If we have any entries
13578         in the GenericParam, MethodSpec or GenericParamConstraint tables,
13579         set the header version to 1.1.
13580
13581 2004-04-06  Martin Baulig  <martin@ximian.com>
13582
13583         * class.c (mono_class_init): If we're a generic instance,
13584         initialize our nested classes, too.
13585         (_mono_class_get_instantiation_name): Deal with the new `!%d'
13586         suffix. 
13587
13588 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13589
13590         * process.c: quote the argument passed to the shell on windows.
13591
13592 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
13593
13594         * threads.c (mono_alloc_special_static_data): Allow this to be
13595         called during startup.
13596
13597 2004-04-02  Martin Baulig  <martin@ximian.com>
13598
13599         * icall.c
13600         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
13601
13602 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
13603
13604         * icall.c: Fix build.
13605
13606 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
13607
13608         * Makefile.am: Added security.c|h.
13609         * icall.c: Added icall for get_UserName;
13610         * security.c: New file for security related icalls. Added function
13611         get_UserName for System.Environment (fix #56144).
13612         * security.h: New. Header file for security.c
13613
13614 2004-04-02  Dick Porter  <dick@ximian.com>
13615
13616         * icall.c: Deleted the icalls that were obsoleted some time ago
13617         by the ICU string code, and which were mixed into the icall
13618         rearranging.  Fixes bug 55969.
13619
13620         * string-icalls.h: 
13621         * string-icalls.c: Deleted the code that those icalls reference.
13622
13623 2004-04-01  Martin Baulig  <martin@ximian.com>
13624
13625         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
13626
13627         * class.c (mono_class_from_generic_parameter): Don't set 
13628         TYPE_ATTRIBUTE_INTERFACE.
13629         (my_mono_class_from_generic_parameter): Likewise.
13630
13631 2004-04-01  Martin Baulig  <martin@ximian.com>
13632
13633         * loader.c (find_method): Added an optional `MonoClass *ic'
13634         argument to search in a specific interface.
13635         (mono_get_method_constrained): New public function.
13636
13637 2004-04-01  Martin Baulig  <martin@ximian.com>
13638
13639         * reflection.c (mono_image_get_generic_field_token): Use the
13640         `handleref' cache here.
13641
13642 2004-04-01  Martin Baulig  <martin@ximian.com>
13643
13644         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
13645
13646         * reflection.c (create_generic_typespec): Use the `typespec' hash
13647         here, not the `typeref' one.    
13648
13649 2004-04-01  Martin Baulig  <martin@ximian.com>
13650
13651         * class.c (mono_class_inflate_generic_type): Moved the
13652         functionality into a new static inflate_generic_type() which
13653         returns NULL if it didn't do anything.  Only increment the
13654         `mono_stats.inflated_type_count' if we actually inflated
13655         something.
13656         (mono_class_get_full): Check the classes type to see whether we
13657         need to inflate it; also inflate MONO_TYPE_(M)VAR.
13658
13659 2004-04-01  Jackson Harper  <jackson@ximian.com>
13660
13661         * reflection.c: Set culture for assembly references.
13662         
13663 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
13664
13665         * reflection.[ch], icall.[ch], Fix support for pinning variables.
13666
13667 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13668
13669         * assembly.c:
13670         (do_mono_assembly_open): the critical section also covers
13671         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
13672
13673 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13674
13675         * threads.c:
13676         (mono_manage_threads): abort the background threads when finishing.
13677         Fixes bug #47232.
13678
13679 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13680
13681         * gc.c: only close the done_event handle if there was no timeout.
13682         C-ified comments.
13683
13684 2004-03-30  Martin Baulig  <martin@ximian.com>
13685
13686         * icall.c (icall_entries): It's called "System.Activator", not
13687         "System.Activation".    
13688
13689 2004-03-30  Martin Baulig  <martin@ximian.com>
13690
13691         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
13692         (mono_class_create_from_typespec): Likewise.
13693
13694 2004-03-30  Martin Baulig  <martin@ximian.com>
13695
13696         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
13697         `has_ctor_constraint' and `initialized'.
13698
13699 2004-03-30  Martin Baulig  <martin@ximian.com>
13700
13701         * reflection.c (encode_new_constraint): New static function to add
13702         the constructor constraint attribute to a type parameter.
13703         (encode_constraints): Call encode_new_constraint() if necessary.
13704
13705         * reflection.h
13706         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
13707
13708         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
13709         
13710 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
13711
13712         * reflection.c, icall.c: add support for pinning variables. 
13713
13714 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
13715
13716         * marshal.c (mono_marshal_get_managed_wrapper):
13717         init bool local with zero rather than null.
13718
13719 2004-03-29  Martin Baulig  <martin@ximian.com>
13720
13721         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
13722         the "official" behavior here.
13723         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
13724
13725 2004-03-29  Martin Baulig  <martin@ximian.com>
13726
13727         * icall.c: Reflect latest API changes.
13728
13729 2004-03-29  Martin Baulig  <martin@ximian.com>
13730
13731         * loader.c (mono_get_method_from_token): Also call
13732         mono_metadata_load_generic_params () for abstract and interface
13733         methods; replace the type arguments in the method signature with
13734         the ones which are loaded from the metadata.
13735
13736 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
13737
13738         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
13739         of the lock is not the current thread. MS.NET don't do it, in spite of
13740         what the documentation says. See bug #56157.
13741
13742 2004-03-28  Martin Baulig  <martin@ximian.com>
13743
13744         * class.c (mono_class_init): Don't call init_properties() and
13745         init_events() for generic instances; set `prop->parent' when
13746         inflating properties.
13747
13748         * reflection.c (mono_generic_inst_get_object): Call
13749         `mono_class_init (ginst->klass)'.
13750         (mono_type_get_object): Only create a MonoGenericInst if your
13751         generic type is a TypeBuilder.
13752         (do_mono_reflection_bind_generic_parameters): Only set
13753         `ginst->is_dynamic' if our generic type is a TypeBuilder.
13754
13755 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
13756
13757         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
13758         Fixes #56091.
13759
13760 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13761
13762         * icall.c: added Kill_internal icall.
13763         * process.[ch]: added Kill_internal icall.
13764
13765 2004-03-25  Martin Baulig  <martin@ximian.com>
13766
13767         * class.h (MonoStats): Added `generic_instance_count',
13768         `inflated_method_count', `inflated_type_count' and
13769         `generics_metadata_size'.       
13770
13771 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13772
13773         * reflection.c: no warnings now.
13774
13775 2004-03-25  Martin Baulig  <martin@ximian.com>
13776
13777         * class.c (mono_class_get_full): New public function; does a
13778         mono_class_get(), but also takes a `MonoGenericContext *'.
13779
13780         * loader.c (mono_field_from_memberref): Renamed to
13781         `field_from_memberref', made static and added `MonoGenericContext *'
13782         argument.
13783         (mono_field_from_token): Added `MonoGenericInst *' argument.
13784         (method_from_memberef): Likewise.
13785         (mono_get_method_from_token): Likewise.
13786         (mono_get_method_full): New public function; does a
13787         mono_get_method(), but also takes a `MonoGenericContext *'.
13788
13789         * verify.c (mono_method_verify): Get the method's generic context
13790         and pass it to mono_field_from_token(), mono_get_method_full() and
13791         mono_class_get_full().
13792
13793 2004-03-25  Martin Baulig  <martin@ximian.com>
13794
13795         * class.c (mono_class_inflate_generic_type): Take a
13796         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
13797         `MonoGenericMethod *'.
13798
13799 2004-03-25  Martin Baulig  <martin@ximian.com>
13800
13801         * loader.h (MonoMethodInflated): Store the MonoGenericContext
13802         instead of the MonoGenericMethod here.
13803
13804 2004-03-25  Martin Baulig  <martin@ximian.com>
13805
13806         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
13807         each time we create a new MonoGenericInst, we also create a new
13808         context which points back to us.
13809
13810         * class.c (inflate_method): Use `ginst->context' instead of
13811         creating a new context.
13812
13813         * loader.c (method_from_memberref): Use
13814         `klass->generic_inst->context' instead of creating a new context.
13815
13816 2004-03-25  Martin Baulig  <martin@ximian.com>
13817
13818         * class.h (MonoGenericContext): New struct.
13819         (MonoGenericMethod): Removed `generic_inst'.
13820
13821         * class.c (mono_class_inflate_generic_method): Take a
13822         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
13823
13824 2004-03-25  Martin Baulig  <martin@ximian.com>
13825
13826         * loader.h (MonoMethodInflated): New typedef.
13827
13828         * metadata.h (MonoMethodSignature): Removed `gen_method', make
13829         `generic_param_count' consume just 30 bits, added `is_inflated'
13830         and `has_type_parameters' flags (one bit each).
13831
13832         * class.c (mono_class_inflate_generic_method): Create a
13833         MonoMethodInflated instead of a MonoMethodNormal and set
13834         `is_inflated' in the method signature.
13835
13836         * class.h (MonoGenericMethod): Removed `generic_method'.
13837
13838 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
13839
13840         * image.c: Make sure the name of a MonoImage is always an absolute path.
13841           This fixes bug #54415.
13842
13843 2004-03-24  Martin Baulig  <martin@ximian.com>
13844
13845         * class.c (mono_class_setup_vtable): If we're a generic instance,
13846         use our generic type's vtable size.
13847
13848 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
13849
13850         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
13851         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
13852         problems.
13853
13854 2004-03-23  Martin Baulig  <martin@ximian.com>
13855
13856         * class.h (MonoDynamicGenericInst): Added `int count_events' and
13857         `MonoEvent *events'.
13858
13859         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
13860         (typebuilder_icalls): Added "get_event_info"; calls
13861         mono_reflection_event_builder_get_event_info(). 
13862
13863         * reflection.c (mono_reflection_generic_inst_initialize): Added
13864         `MonoArray *events'.
13865         (mono_reflection_event_builder_get_event_info): New function.
13866
13867 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
13868
13869         * object.h: add mono_type_initialization_init
13870
13871         * object.c (mono_runtime_class_init): 
13872         implement class constructor synchronization rules
13873         to cope with threading issues.  
13874         add mono_type_initialization_init
13875
13876         * appdomain.c (mono_runtime_init): call 
13877         mono_type_initialization_init
13878
13879         * class.h: removing initializing field from MonoVTable
13880
13881 2004-03-23  Martin Baulig  <martin@ximian.com>
13882
13883         * class.c (my_mono_class_from_generic_parameter): Use
13884         `param->name' if it's not NULL. 
13885
13886 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
13887
13888         * class.c: do not insert non-virtual methods in the vtable.
13889         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
13890         that means the method is non-virtual. This never would have
13891         happened before.
13892
13893 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
13894
13895         * profiler.c: Added lock for accessing coverage_hash.
13896
13897 2004-03-22  Martin Baulig  <martin@ximian.com>
13898
13899         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
13900         `method->method->signature->generic_param_count != 0' to make it
13901         work for interface methods.
13902
13903 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13904
13905         * process.c: quote the string passed to the shell using g_shell_quote.
13906
13907 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13908
13909         * threads.c:
13910         (mono_threads_manage): don't remove the finalizer thread and self
13911         from the threads hash table so that mono_thread_manage can be called
13912         more than once.
13913
13914 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13915
13916         * process.c: quote the arguments when UseShellExecute is true. Fixes
13917         bug #55790.
13918
13919 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13920
13921         * threads.c: set mono_thread_detach as a cleanup routine for every
13922         thread. This way it's always executed upon thread termination, either
13923         aborted or finished normally. No more xsp hangs!
13924
13925 2004-03-17  Martin Baulig  <martin@ximian.com>
13926
13927         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
13928         `int count_nested' and a `MonoType **nested'.
13929
13930         * reflection.c (mono_reflection_bind_generic_parameters): Moved
13931         most of the functionality into a new static
13932         do_mono_reflection_bind_generic_parameters() and don't take a
13933         `MonoType *nested_in' argument any more.  Don't compute nested
13934         types here.
13935         (mono_reflection_generic_inst_get_nested_types): New public method
13936         to get nested types.
13937
13938         * class.c (mono_class_create_generic): Set `klass->nested_in' if
13939         we're a nested class.
13940
13941         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
13942         mono_reflection_generic_inst_get_nested_types() to compute the
13943         nested types.
13944
13945 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13946
13947         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
13948         descriptive error message under windows.
13949         
13950 2004-03-17  Martin Baulig  <martin@ximian.com>
13951
13952         * class.c (dup_type): Added `const MonoType *original' argument;
13953         copy the attrs from the original type.
13954
13955 2004-03-17  Martin Baulig  <martin@ximian.com>
13956
13957         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
13958         `m->generic_inst_cache' here.
13959
13960 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
13961
13962         * exception.h exception.c: Add stack_overflow_exception.
13963
13964 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13965
13966         * threadpool.c:
13967         (overlapped_callback): call SetEvent *after* invoking the callback.
13968         No need to call CloseHandle.
13969
13970 2004-03-16  Martin Baulig  <martin@ximian.com>
13971
13972         * reflection.c (mono_image_get_fieldref_token): Take a
13973         `MonoReflectionField *' instead of a `MonoClassField *' and a
13974         `MonoClass *'; store the `MonoReflectionField *' in the hash.
13975
13976 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13977
13978         * appdomain.c: don't add the culture to the filename we're looking for
13979         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
13980
13981 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13982
13983         * locales.c: don't ignore symbols when doing case insensitive compares.
13984         Thanks Dick! Fixes bug #54046.
13985
13986         * threads.c: surround 'threads' usage with enter/leave in
13987         mono_thread_manage.
13988
13989 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
13990
13991         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
13992         implicitly marshalled as [Out]. Fixes #55450.
13993
13994         (mono_marshal_get_runtime_invoke): Zero out the result if there is
13995         an exception.
13996
13997 2004-03-16  Martin Baulig  <martin@ximian.com>
13998
13999         * class.c (mono_class_from_generic_parameter): Use the actual
14000         parameter name. 
14001
14002 2004-03-16  Martin Baulig  <martin@ximian.com>
14003
14004         * reflection.c (type_get_signature_size): New static function.
14005         Compues the size of the type in a method signature.
14006         (method_get_signature_size): New static function; calls
14007         type_get_signature_size() to compute the actual size of the
14008         method's signature.
14009         (method_encode_signature): Use method_get_signature_size() to get
14010         the signature's size rather than using `nparams * 10'.
14011
14012 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14013
14014         * file-io.h: define here WapiOverlapped on windows. I don't want the
14015         regular OVERLAPPED one.
14016
14017         * file-io.c:
14018         * threadpool.c: somehow, BindIoCompletionCallback is not found.
14019         Disabling AIO on windows.
14020
14021 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14022
14023         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
14024         bug #55385.
14025
14026 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14027
14028         * appdomain.c: upgraded corlib version.
14029
14030         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
14031         and BeginWrite. Allow opening files for asynchrnous operations.
14032
14033         * file-io.h: new struct that maps FileStreamAsyncResult.
14034         * icall.c: added new icalls.
14035         * process.[ch]: support setting child process environment variables
14036         and use the SHELL or COMSPEC when UseShellExecute is true.
14037
14038         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
14039         callback for async. IO is here and also BindHandle.
14040
14041         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
14042         from here.
14043
14044 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
14045
14046         * reflection.c (create_custom_attr): Allow len == 0.
14047
14048         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
14049         computation on big-endian machines.
14050
14051 2004-03-13  Martin Baulig  <martin@ximian.com>
14052
14053         * class.h (MonoGenericInst): Added `int count_ifaces'.
14054
14055         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
14056         `ginst->count_ifaces' instead `klass->interface_count' since we
14057         may get called before the vtable is created.
14058
14059         * loader.c (mono_method_get_param_names): If we're a generic
14060         instance, return and don't initialize the class.
14061
14062         * reflection.c (mono_reflection_setup_generic_class): Don't call
14063         ensure_runtime_vtable().
14064         (mono_reflection_bind_generic_parameters): Set
14065         `ginst->count_ifaces'.
14066
14067 2004-03-11  Jackson Harper <jackson@ximian.com>
14068
14069         * icall.c:
14070         * unicode.c:
14071         * unicode.h: Remove unused System.Char icalls.
14072         
14073 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
14074
14075         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
14076         code when we P/Invoke the first library in Windows.Forms, instead
14077         of when we first open the assembly.
14078
14079         * assembly.c: Drop the lookup from here.
14080
14081 2004-03-10  Martin Baulig  <martin@ximian.com>
14082
14083         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
14084         class for properties, fields and events.  Finally fixes #54945.
14085
14086 2004-03-10  Martin Baulig  <martin@ximian.com>
14087
14088         * metadata.c (mono_metadata_class_equal): New static function;
14089         checks whether two generic instances or two generic parameters are
14090         equal.
14091         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
14092         compare classes.        
14093
14094 2004-03-10  Martin Baulig  <martin@ximian.com>
14095
14096         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
14097
14098         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
14099         argument and write it into the `reflection_info' field.
14100
14101         * icall.c
14102         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
14103         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
14104
14105 2004-03-09  Jackson Harper  <jackson@ximian.com>
14106
14107         * char-conversions.h: use 8 bits for numeric data its all we need
14108         * icall.c: numeric data is only 8 bits now.
14109
14110 2004-03-09  Martin Baulig  <martin@ximian.com>
14111
14112         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
14113
14114         * class.c (init_properties, init_events): Initialize the new
14115         `parent' field.
14116
14117         * reflection.c (typebuilder_setup_properties): Likewise.
14118         (typebuilder_setup_events): Likewise.
14119
14120         * reflection.h (MonoEventInfo): Replaced `parent with
14121         `declaring_type' and `reflected_type'.
14122
14123         * icall.c (ves_icall_get_property_info): Distinguish between
14124         declaring and reflected type.
14125         (ves_icall_get_event_info): Likewise.
14126
14127 2004-03-09  Martin Baulig  <martin@ximian.com>
14128
14129         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
14130         (ves_icall_Type_GetField): Correctly set field->klass.
14131
14132 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
14133
14134         * loader.h: Fix warning.
14135
14136 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
14137
14138         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
14139         library routine if present.  Notice that it will still continue
14140         executing even if its missing, for those working on the Gtk#
14141         edition of Windows.Forms.
14142
14143         * assembly.c (do_mono_assembly_open): If loading the
14144         System.Windows.Forms call mono_loader_wini_init.
14145
14146 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
14147
14148         * class.h: Added MonoRemoteClass struct.
14149         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
14150         function for MonoStrings.
14151         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
14152         Added internal call for getting the proxy type.
14153         * marshal.c: Get the type of transparent proxies from its remote_class.
14154         Added methods that generate the IL for type checks and casts:
14155         mono_marshal_get_isinst, mono_marshal_get_castclass, 
14156         mono_marshal_get_proxy_cancast.
14157         * marshal.h: Declaration of the previous new methods.
14158         * object.c: Added new moethods for creating and updating MonoRemoteClass
14159         instances: mono_remote_class, mono_upgrade_remote_class, 
14160         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
14161         * verify.c: FIx transparent_proxy_fields layout.
14162         * appdomain.c: Bump corlib version.
14163
14164 2004-03-04  Jackson Harper  <jackson@ximian.com>
14165
14166         * icall.c: Add icall to access char conversion tables.
14167         * char-conversions.h: Character conversion tables.
14168         * Makefile.am: Add char-conversions.h private header file.
14169         
14170 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
14171
14172         * appdomain.c (unload_thread_main): Increase unloading timeout to
14173         10 sec as a temporary workaround for Nant problems.
14174
14175 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
14176
14177         * gc.c: Add checks for GC_enable and GC_disable.
14178
14179         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
14180         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
14181         (bug #54988).
14182         
14183 2004-02-27  Martin Baulig  <martin@ximian.com>
14184
14185         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14186         `MonoReflectionType *' instead of a `MonoType *'.
14187
14188 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
14189
14190         * gc.c (run_finalize): Avoid finalizing the object representing the
14191         finalizer thread.
14192         (finalizer_thread): Fix warning.
14193
14194 2004-02-25  Martin Baulig  <martin@ximian.com>
14195
14196         * class.c (_mono_class_get_instantiation_name): Added `int offset'
14197         argument for nested types.
14198         (mono_class_create_generic): Added support for nested generictypes.
14199
14200         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
14201         `GList *nested'.
14202
14203         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
14204
14205         * reflection.c (method_encode_signature): Increase the minimum
14206         value of `size' from 10 to 11.
14207         (mono_reflection_bind_generic_parameters): Take `int type_argc'
14208         and `MonoType **types' arguments instead of the `MonoArray
14209         *types'; added `MonoType *nested_in'.  Recursively instantiate
14210         nested classes. 
14211
14212 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
14213
14214         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
14215         stack_overflow_ex members which are used by exception handling.
14216
14217         * appdomain.c (mono_runtime_init): Initialize the new members.
14218
14219         * gc.c (mono_gc_enable): New helper function.
14220         * gc.c (mono_gc_disable): New helper function.
14221
14222 2004-02-23  Martin Baulig  <martin@ximian.com>
14223
14224         * icall.c: I must have been really stupid - make it actually work
14225         this time ;-)
14226
14227 2004-02-23  Martin Baulig  <martin@ximian.com>
14228
14229         * loader.c (method_from_memberref): Only inflate the method if
14230         it's in another klass.
14231
14232 2004-02-23  Martin Baulig  <martin@ximian.com>
14233
14234         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
14235         (mono_class_init): If we're a generic instance and an interface,
14236         compute `class->interface_id'; also create `class->interfaces'
14237         here and inflate them.
14238
14239         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
14240         `ginst->is_open'.
14241         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
14242
14243         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
14244
14245 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
14246
14247         * reflection.c (method_encode_code): Improved the error message
14248         generated by the exception.
14249
14250 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14251
14252         * icall.c: Martin did not do what he said in the ChangeLog for
14253         2004-02-18, but put back the changes for properties and events.
14254         Commenting those changes out again and adding comment to bug #54518.
14255         
14256         * process.c: removed warning.
14257
14258 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
14259
14260         * marshal.c (emit_struct_conv): Print an error message instead of
14261         asserting when a type does not have the StructLayout attribute.
14262
14263 2004-02-20  Martin Baulig  <martin@ximian.com>
14264
14265         * reflection.c (mono_type_get_object): Also use the cache for
14266         generic instances.
14267         (mono_reflection_bind_generic_parameters): Always compute
14268         `ginst->ifaces'.        
14269
14270 2004-02-20  Martin Baulig  <martin@ximian.com>
14271
14272         * class.h (MonoGenericMethod): Removed `klass'.
14273
14274         * class.c (mono_class_inflate_generic_method): Added `MonoClass
14275         *klass' argument.
14276
14277 2004-02-20  Martin Baulig  <martin@ximian.com>
14278
14279         * reflection.c (method_encode_methodspec): Actually use the
14280         uninflated signature for the memberref.
14281
14282 2004-02-20  Martin Baulig  <martin@ximian.com>
14283
14284         * class.h (MonoGenericMethod): Removed `declaring'.
14285
14286         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
14287         is NULL, compute it here.
14288
14289 2004-02-20  Martin Baulig  <martin@ximian.com>
14290
14291         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
14292
14293         * metadata.c (mono_metadata_generic_inst_hash): New method.
14294         (mono_metadata_generic_inst_equal): New method.
14295
14296         * reflection.c (mono_reflection_bind_generic_parameters): Use the
14297         `klass->image->generic_inst_cache' cache to avoid creating
14298         duplicate MonoGenericInst's.
14299
14300         * class.c (mono_class_inflate_generic_type): Use the cache.
14301
14302 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14303
14304         * object.c: fixed gc descriptor calculation for embedded valuetypes.
14305
14306 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14307
14308         * icall.c: added Socket.WSAIoctl icall.
14309
14310         * socket-io.[ch]: implemented
14311         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
14312
14313 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
14314
14315         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
14316
14317 2004-02-18  Urs C Muff  <umuff@quark.com>
14318
14319         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
14320         this work on PPC and other big-endian architectures.
14321
14322         * debug-mono-symfile.h: Prepended the names of all the `guint32'
14323         fields with an underscore to make sure they're only accessed by
14324         the read32() macro.
14325
14326 2004-02-18  Martin Baulig  <martin@ximian.com>
14327
14328         * icall.c: Put the klass->refclass changes back for methods and
14329         fields, but not for properties and events.  We're currently not
14330         distinguishing between DeclaringType and ReflectedType for
14331         properties and events, that's what caused the regressions.
14332
14333 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14334
14335         * object.c:
14336         (mono_async_result_new): the handle can be NULL.
14337
14338         * threadpool.c: Use an event instead of a semaphore, don't initialize
14339         it until needed. This saves quite a few semaphores from being created
14340         when using the threadpool.
14341
14342 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
14343
14344         * object.c (mono_string_is_interned_lookup): Fix interning of long
14345         strings. Fixes #54473.
14346
14347         * domain.c (ldstr_equal): Optimize if the two strings are equal.
14348
14349         * icall.c: Revert the klass->refclass changes since they introduce
14350         regressions (bug #54518).
14351
14352 2004-02-18  Martin Baulig  <martin@ximian.com>
14353
14354         * class.c (mono_class_init): If we're a generic instance and don't
14355         come from a TypeBuilder, inflate our members here.
14356         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
14357         (mono_class_create_generic): New public method.
14358         (mono_class_initialize_generic): Removed.
14359         (get_instantiation_name): Renamed to
14360         _mono_class_get_instantiation_name() and made it public.
14361
14362 2004-02-18  Martin Baulig  <martin@ximian.com>
14363
14364         * class.c (mono_class_inflate_generic_type): Clear the new
14365         instance's `nginst->klass' when inflating a generic instance.
14366         (mono_class_is_subclass_of): Added (basic) support for generic
14367         instances.
14368
14369 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
14370
14371         * appdomain.h, domain.c: use a MonoCodeManager instead of a
14372         MonoMempool to hold compiled native code.
14373
14374 2004-02-17  Martin Baulig  <martin@ximian.com>
14375
14376         * class.h (MonoDynamicGenericInst): Added `count_properties' and
14377         `properties'.
14378
14379         * reflection.c (mono_reflection_generic_inst_initialize): Added
14380         `MonoArray *properties' argument.
14381
14382         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
14383
14384 2004-02-17  Martin Baulig  <martin@ximian.com>
14385
14386         * icall.c (ves_icall_Type_GetFields): Renamed to
14387         ves_icall_Type_GetFields_internal() and added a
14388         `MonoReflectionType *rtype' argument; pass it to
14389         mono_field_get_object() to set the field's "reflected" type.
14390         (ves_icall_Type_GetConstructors): Likewise.
14391         (ves_icall_Type_GetEvents): Likewise.
14392         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
14393         argument; pass it to mono_method_get_object() to set the method's
14394         "reflected" type.       
14395
14396 2004-02-17  Martin Baulig  <martin@ximian.com>
14397
14398         * class.h (MonoDynamicGenericInst): New type.
14399         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
14400
14401         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
14402         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
14403         (ves_icall_MonoGenericInst_GetFields): New interncall.
14404
14405         * class.c (mono_class_from_generic): Don't call
14406         mono_class_initialize_generic() if this is a dynamic instance;
14407         ie. it's being created from a TypeBuilder.
14408         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
14409         `class->byval_arg.type'.
14410
14411         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
14412         to `inflate_method' and made static.
14413         (mono_reflection_inflate_field): Removed.
14414         (mono_reflection_generic_inst_initialize): New public method.
14415
14416         * reflection.h (MonoReflectionGenericInst): Removed `methods',
14417         `ctors' and `fields'; added `initialized'.
14418
14419 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
14420
14421         * debug-helpers.c (mono_method_full_name): Fix output for empty
14422         namespaces.
14423
14424 2004-02-12  Martin Baulig  <martin@ximian.com>
14425
14426         * class.h (MonoClassField): Added `MonoType *generic_type'.
14427
14428         * reflection.c (mono_image_get_fieldref_token): Added support for
14429         instantiated generic types.
14430         (field_encode_inflated_field): Removed.
14431         (mono_image_get_inflated_field_token): Removed.
14432         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
14433
14434         * reflection.h (MonoReflectionInflatedField): Removed.
14435
14436 2004-02-12  Martin Baulig  <martin@ximian.com>
14437
14438         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
14439         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
14440
14441         * reflection.c (mono_image_get_methodspec_token): Take a
14442         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
14443         (mono_image_create_token): Check whether we have a
14444         `method->signature->gen_method' and call
14445         mono_image_get_methodspec_token() if appropriate.
14446         (inflated_method_get_object): Removed.
14447         (mono_reflection_bind_generic_method_parameters): Return a
14448         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
14449         (mono_reflection_inflate_method_or_ctor): Likewise.
14450
14451         * reflection.h (MonoReflectionInflatedMethod): Removed.
14452
14453 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
14454
14455         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
14456         for custom valuetype marshalling.
14457
14458         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
14459
14460 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14461
14462         * icall.c: fixed WSAGetLastError_internal name.
14463
14464 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
14465
14466         * threads.c (mono_thread_attach): Allow this to be called multiple
14467         times for a thread.
14468         
14469         * threads.c (build_wait_tids): Do not wait for ourselves.
14470
14471         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
14472         appdomain list is empty.
14473
14474         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
14475         memory returned by mono_string_builder_to_utf16, since it points into
14476         managed memory. Thanks to Bernie Solomon for noticing this.
14477
14478         * icall.c: Add AppDomainSetup icalls.
14479
14480         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
14481
14482         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
14483         types.
14484
14485         * reflection.c (reflection_methodbuilder_to_mono_method): Save
14486         custom attributes to the method_aux struct. Also fix array indexes etc.
14487
14488         * loader.c (mono_method_get_param_names): Make dynamic case work again.
14489         
14490 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
14491
14492         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
14493         (both static and runtime) and reduce startup time.
14494
14495 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
14496
14497         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
14498         AsAny marshalling conversion instead of crashing.
14499
14500         * marshal.c: Fix warnings.
14501
14502 2004-02-09  Martin Baulig  <martin@ximian.com>
14503
14504         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
14505
14506         * reflection.h (MonoReflectionInflatedMethod): Removed the
14507         `declaring' field, it's now in the unmanaged MonoGenericMethod.
14508
14509         * reflection.c (method_encode_methodspec): Removed the `method'
14510         argument; we get it from `gmethod->declaring'.
14511         (inflated_method_get_object): Removed the `declaring' argument.
14512
14513 2004-02-09  Martin Baulig  <martin@ximian.com>
14514
14515         * class.h (MonoGenericMethod): New type.
14516         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
14517         `generic_method'.
14518
14519         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
14520         a `MonoGenericMethod *gen_method' one.
14521
14522         * class.c (mono_class_inflate_generic_type): Take an additional
14523         `MonoGenericMethod * argument.  This is only non-NULL if we're
14524         inflating types for a generic method.   
14525         (mono_class_inflate_generic_signature): Renamed to
14526         inflate_generic_signature() and made static; take a
14527         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14528         (inflate_generic_header): Take a `MonoGenericMethod *' argument
14529         instead of a `MonoGenericInst *' one.
14530         (mono_class_inflate_generic_method): Likewise.
14531
14532         * reflection.c (encode_generic_method_sig): Take a
14533         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
14534         (method_encode_methodspec): Likewise.
14535         (inflated_method_get_object): Likewise. 
14536
14537         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
14538         field with a `MonoGenericMethod *gmethod' one.  
14539
14540 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
14541
14542         * class.h (mono_class_has_parent): add parens to expansion
14543         so you can ! this.
14544
14545 2004-02-08  Martin Baulig  <martin@ximian.com>
14546
14547         * image.h (MonoImage): Removed `generics_cache'.
14548
14549         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
14550         instead of a `MonoType *' argument; removed the `inflate_methods'
14551         argument.  Don't inflate methods here.
14552
14553         * loader.c (find_method): If it's a generic instance, call
14554         mono_class_init() on the `sclass->generic_inst->generic_type'.
14555
14556         * metadata.c (mono_type_size): Make this work on uninitialized
14557         generic instances; call it on the `ginst->generic_type's class.
14558
14559         * reflection.c (mono_reflection_bind_generic_parameters): Call
14560         mono_class_from_generic() to create the `ginst->klass'.
14561
14562 2004-02-08  Martin Baulig  <martin@ximian.com>
14563
14564         * class.h (MonoClass): Changed type of `generic_inst' from
14565         `MonoType *' to `MonoGenericInst *'.
14566
14567 2004-02-08  Martin Baulig  <martin@ximian.com>
14568
14569         * icall.c (ves_icall_Type_BindGenericParameters): Just call
14570         mono_type_get_object(), this is now creating a `MonoGenericInst'
14571         for MONO_TYPE_GENERICINST.
14572         (ves_icall_MonoGenericInst_GetParentType): Likewise.
14573         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
14574
14575         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
14576         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
14577         (inflated_method_get_object): Added `MonoClass *refclass' argument.
14578         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
14579         and reflected type.
14580
14581         * reflection.h (MonoReflectionInflatedMethod): Removed
14582         `declaring_type' and `reflected_type'.
14583
14584 2004-02-08  Martin Baulig  <martin@ximian.com>
14585
14586         * class.h (MonoGenericInst): Added `MonoType *parent' and
14587         `MonoType **ifaces'.
14588
14589         * reflection.h (MonoReflectionGenericInst): Removed `klass',
14590         `parent' and `interfaces'.
14591
14592         * reflection.c (mono_reflection_bind_generic_parameters): Take a
14593         `MonoType *' argument and return a `MonoType *'.
14594
14595         * icall.c
14596         (ves_icall_MonoGenericInst_GetParentType): New interncall.
14597         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
14598
14599 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14600
14601         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
14602         valuetype marshalling.
14603
14604 2004-02-06  Martin Baulig  <martin@ximian.com>
14605
14606         * class.c
14607         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
14608         (my_mono_class_from_generic_parameter): Likewise.
14609
14610 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
14611
14612         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
14613         contents of the symbol files lazily.
14614
14615         * object.h (MonoThread): Add 'name' and 'name_len' fields.
14616
14617         * threads.h threads.c icall.c: New icalls for getting and setting the
14618         threads name.
14619
14620 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
14621
14622         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
14623         Raise an exception when the domain is not found.
14624
14625 2004-02-03  Martin Baulig  <martin@ximian.com>
14626
14627         * reflection.c (mono_image_get_methodspec_token): Use the
14628         uninflated signature; fixes gen-33.
14629
14630 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
14631
14632         * gc.c threads.c: Make the finalizer thread a normal managed thread so
14633         the finalizer code can use thread functionality.
14634
14635         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
14636         the finalizer thread.
14637
14638         * threads.c: Make some functions more robust.
14639
14640         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
14641
14642         * metadata.h: Add new marshalling conventions.
14643
14644         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
14645         stringbuilder marshalling. Fixes #53700.
14646
14647         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
14648
14649         * reflection.c (mono_image_get_type_info): Save declarative security
14650         info.
14651
14652         * reflection.c (mono_image_get_field_info): Handle uninitialized 
14653         unmanaged fields as well.
14654
14655         * appdomain.c: Bump corlib version.
14656
14657 2004-02-01  Martin Baulig  <martin@ximian.com>
14658
14659         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
14660         method type arguments.  
14661
14662 2004-01-30  Duncan Mak  <duncan@ximian.com>
14663
14664         * marshal.h: Add prototype for
14665         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
14666         and
14667         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
14668         fix the build.
14669
14670 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
14671
14672         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
14673         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
14674
14675 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14676
14677         * marshal.c (mono_marshal_get_native_wrapper): Add support for
14678         custom marshalling of valuetypes.
14679
14680         * marshal.c: Fix some warnings.
14681
14682 2004-01-29  Martin Baulig  <martin@ximian.com>
14683
14684         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
14685         for generic method parameters.
14686
14687         * reflection.c (method_encode_methodspec): Write the uninflated
14688         signature into the methodspec table.
14689         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
14690         is always the uninflated method.
14691         (reflection_methodbuilder_to_mono_method): Copy the generic
14692         parameters from the MethodBuilder into `header->gen_params'.
14693
14694 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
14695
14696         * class.c (mono_class_from_generic_parameter): Fix warning.
14697
14698 2004-01-27  Martin Baulig  <martin@ximian.com>
14699
14700         * class.c (mono_class_from_generic_parameter): Don't create
14701         `klass->methods' here.  
14702
14703 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
14704
14705         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
14706         extension since it does not work with libraries named lib<FOO>.dll.so.
14707
14708 2004-01-25  Martin Baulig  <martin@ximian.com>
14709
14710         * class.c (mono_class_inflate_generic_type): Added support for
14711         MONO_TYPE_GENERICINST.
14712
14713         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
14714         inflate methods on open constructed types.      
14715
14716 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14717
14718         * object.c: fire ProcessExit event in the root AppDomain after running
14719         Main. Fixes bug #53299.
14720
14721 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
14722
14723         * socket-io.c: include the new socket-wrappers.h header.
14724         Use the wrappers instead of the unix socket functions to make the code
14725         more clear.
14726
14727 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
14728
14729         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
14730
14731         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14732         Fixes #22532.
14733
14734 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
14735
14736         * reflection.c (mono_image_create_pefile): Handle the case when the
14737         entry point is not a MethodBuilder.
14738
14739         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14740         field to ReflectionMethod since it is not allways a builder.
14741
14742         * reflection.c (type_get_fully_qualified_name): New helper function to
14743         return the fully qualified name of a type.
14744
14745         * reflection.c (encode_marshal_blob): Always emit the fully qualified
14746         type name for custom marshallers.
14747
14748         * reflection.c (mono_marshal_spec_from_builder): Ditto.
14749
14750         * class.c (mono_class_setup_vtable): If a parent class already 
14751         implements an interface, use the implementing methods from that class.
14752         Fixes #53148.
14753
14754 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14755
14756         * threadpool.c: just return instead of ExitThread to allow for thread
14757         clean up earlier.
14758
14759 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
14760
14761         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
14762         when closing resource modules.
14763
14764         * reflection.c (mono_image_create_pefile): Handle the case when the
14765         entry point is not a MethodBuilder.
14766
14767         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
14768         field to ReflectionMethod since it is not allways a builder.
14769
14770 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14771
14772         * marshal.c (mono_marshal_get_managed_wrapper): 
14773         mono_marshal_alloc takes native int so CONV_I
14774         the arg for 64bits.
14775
14776 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
14777
14778         * reflection.c (fixup_cattrs): New function to fixup the methoddef
14779         tokens in the cattr table. Fixes #53108.
14780
14781 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14782
14783         * loader.c: don't trim ".dll" before looking up in the config file.
14784         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
14785
14786 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
14787
14788         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
14789         Return the module which contains the resource as well.
14790         (ves_icall_System_Reflection_Module_Close): New icall.
14791
14792         * appdomain.c: Bump corlib version number.
14793
14794         * image.c (mono_image_addref): New public function.
14795
14796         * assembly.c: Call mono_image_addref.
14797
14798         * reflection.c (mono_module_get_object): Increase reference count of 
14799         the image.
14800
14801         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
14802         Fixes #22532.
14803
14804         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
14805         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
14806         proper exceptions on DllImport problems.
14807
14808 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
14809
14810         * class.c, metadata.c: eliminate CSIZE macro.
14811
14812 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
14813
14814         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
14815         * object.h: Added async_callback field in MonoAsyncResult.
14816         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
14817         * verify.c: Added async_callback in MonoAsyncResult layout.
14818
14819 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
14820
14821         * reflection.c (mono_reflection_get_custom_attrs): Add support
14822         for Modules.
14823
14824 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14825
14826         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
14827         marshalling.
14828         (mono_marshal_method_from_wrapper): Add null pointer check.
14829
14830 2004-01-16  Martin Baulig  <martin@ximian.com>
14831
14832         * debug-mono-symfile.h: Set version number to 36 and reflect
14833         latest symbol writer changes.
14834
14835 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
14836
14837         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
14838         multi-dimensional arrays.
14839         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
14840         (mono_class_from_mono_type): Use bounded_array_class_get.
14841         
14842         * class.c (mono_bounded_array_class_get): New function which takes
14843         a 'bounded' bool argument to distinguish vectors from one dimensional
14844         arrays.
14845
14846         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
14847         bounded_array_class_get if the array has bounds.
14848
14849         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14850         Search modules loaded using AssemblyBuilder:AddModule as well.
14851
14852 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14853
14854         * appdomain.c: increased corlib version.
14855         * filewatcher.c: removed g_print.
14856         * icall.c:
14857         (get_property_info): only allocate what is actually requested.
14858         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
14859
14860 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14861
14862         * Makefile.am: added filewatcher.[ch]
14863         * filewatcher.[ch]: FileSystemWatcher runtime support.
14864         * icall.c: added new FSW icalls.
14865
14866 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
14867
14868         * string-icalls.c: fix stringbuilder regression as suggested by
14869         Iain McCoy <iain@mccoy.id.au>.
14870
14871 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
14872
14873         * process.c (process_read_stringtable_block): Recognize '007f' as
14874         a language neutral stringtable block.
14875
14876 2004-01-12  Patrik Torstensson
14877
14878         * object.h (MonoStringBuilder) : Changed layout to support our
14879         new stringbuilder class.
14880         * marshal.c: Change marshalling to support the new layout of 
14881         string builder.
14882         * appdomain.c: increased version number because new layout of
14883         string builder.
14884
14885 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
14886
14887         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
14888         assembly name as an string instead of an AssemblyName, since it is
14889         easier to extract info from it.
14890
14891         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
14892         the culture subdirectories too. Fixes #52231.
14893
14894 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14895
14896         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
14897         It takes 2 new parameters with an optional name for the method to look
14898         for and case ignoring info.
14899
14900         * threadpool.c: removed unused variable.
14901
14902 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14903
14904         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
14905         It takes 2 new parameters with an optional name for the property to look
14906         for and case ignoring info.
14907         Fixes bug #52753.
14908
14909 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
14910
14911         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
14912         Fix #52451.
14913
14914 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14915
14916         * appdomain.c:
14917         * assembly.c: escape the uri before passing it to g_filename_from_uri.
14918         Fixes bug #52630.
14919
14920 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
14921
14922         * reflection.c: Add support for more than one unmanaged resource.
14923
14924         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
14925         in field->def_value, as done in all other cases.
14926
14927         * reflection.c (mono_reflection_get_custom_attrs): Add support for
14928         TypeBuilders.
14929
14930         * reflection.c (mono_reflection_create_runtime_class): Remove 
14931         errorneous assignment to klass->element_class, since it is already
14932         done in mono_reflection_setup_internal_class.
14933
14934 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14935
14936         * gc.c: added missing LeaveCriticalSection.
14937         * icall.c: indented a couple of lines.
14938         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
14939         if we call EndInvoke inside a callback. Fixes bug #52601.
14940
14941 2004-01-07  Martin Baulig  <martin@ximian.com>
14942
14943         * mono-debug-debugger.h
14944         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
14945
14946 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
14947
14948         * appdomain.c: Use messages in NotImplementedException.
14949
14950         * exception.c (mono_get_exception_not_implemented): Now this takes
14951         a message argument.
14952
14953         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
14954         exception instead of g_asserting an aborting when something is not
14955         implemented.
14956
14957         Add some inline docs.
14958
14959 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
14960
14961         * reflection.h: Update after changes to object layout.
14962
14963         * reflection.c: Implement saving of unmanaged aka win32 resources.
14964
14965         * appdomain.c: Bump version number.
14966
14967         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
14968         Handle missing domains gracefully.
14969
14970 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
14971
14972         * file-io.c : On Windows, there are much more invalid_path_chars.
14973
14974 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
14975
14976         * class.h, object.c: prepare for GetType () speedup.
14977
14978 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
14979
14980         * profiler.c: workaround for --profile null reference exception on
14981           cygwin. Patch by Patrik Torstensson.
14982
14983 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
14984
14985         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
14986         make work for unaligned access.
14987
14988 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
14989
14990         * class.c: small cleanup (class->fields [i] -> field).
14991         * image.c: check address of metadata is valid.
14992
14993 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
14994
14995         * assembly.h assembly.c (mono_assembly_loaded): New public function to
14996         search the list of loaded assemblies.
14997
14998         * reflection.c (mono_reflection_type_from_name): Use 
14999         mono_assembly_loaded instead of mono_image_loaded.
15000
15001         * reflection.c: Fix warnings.
15002
15003 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
15004
15005         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
15006         is dynamic. This is needed since an assembly can contain both dynamic and
15007         non-dynamic images.
15008
15009         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
15010         assembly->dynamic.
15011
15012         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
15013
15014         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
15015         to store modules loaded using AddModule.
15016
15017         * reflection.c (mono_image_fill_file_table): Generalize this so it works
15018         on Modules.
15019
15020         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
15021
15022         * reflection.c (mono_image_fill_export_table_from_module): New function to
15023         fill out the EXPORTEDTYPES table from a module.
15024
15025         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
15026         into a separate function. Also handle loaded non-dynamic modules.
15027
15028         * reflection.c (mono_image_basic_init): Fix memory allocation.
15029
15030         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15031
15032         * assembly.c (mono_assembly_load_references): Make this public.
15033
15034 2003-12-19  Martin Baulig  <martin@ximian.com>
15035
15036         * class.c (mono_class_initialize_generic): Made this static, take
15037         a `MonoGenericInst *' instead of a `MonoClass *'.
15038         (mono_class_from_generic): Call mono_class_initialize_generic()
15039         unless we're already initialized or being called from
15040         do_mono_metadata_parse_generic_inst().
15041
15042         * class.h (MonoGenericInst): Added `initialized' and
15043         `init_pending' flags.
15044
15045         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
15046         `mono_class_init (gklass)' or mono_class_initialize_generic()
15047         here; set `generic_inst->init_pending' while parsing the
15048         `type_argv'.
15049
15050 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
15051
15052         * locales.c: include string.h for memxxx prototypes
15053
15054 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
15055
15056         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
15057         constructor when accessing literal fields.
15058
15059 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
15060
15061         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15062
15063         * reflection.c (assembly_add_resource_manifest): New function to fill
15064         the MANIFESTRESOURCE table.
15065
15066         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
15067
15068         * reflection.h: Update to changes in class layout.
15069
15070         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
15071         Reenable call to mono_runtime_is_shutting_down ().
15072
15073         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
15074         determine if the runtime is shutting down.
15075
15076 2003-12-16  Jackson Harper <jackson@ximian.com>
15077
15078         * icall.c: comment out call to mono_runtime_is_shutting_down to
15079         fix build.
15080         
15081 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
15082
15083         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
15084         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
15085
15086 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
15087
15088         * reflection.c: move definition of swap_with_size
15089         to before its first call
15090
15091 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
15092
15093         * appdomain.c (mono_runtime_is_shutting_down): New public function.
15094
15095         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
15096         icall.
15097
15098         * object.c: Fix warnings.
15099
15100         * icall.c (ves_icall_Type_Get...): Only consider inherited static
15101         members if FlattenHierarchy is set.
15102
15103         * reflection.c (mono_image_add_decl_security): New function to emit
15104         declarative security.
15105
15106         * reflection.h reflection.c: Add support for declarative security.
15107
15108         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15109         
15110 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
15111
15112         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
15113         
15114         * appdomain.c verify.c: Moved corlib version checking into its own
15115         function in appdomain.c since it needs to create vtables etc.
15116
15117 2003-12-13  Patrik Torstensson <p@rxc.se>
15118
15119         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
15120         instead of unwrapped server.
15121
15122 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
15123
15124         * verify.c (check_corlib): Fix field index.
15125
15126 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
15127
15128         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
15129         GetGacPath icall.
15130
15131 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
15132
15133         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
15134         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
15135         cope with sizeof(size_t) != sizeof(guint32).
15136
15137 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15138
15139         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
15140         in case of failure.
15141
15142 2003-12-10  Mark Crichton <crichton@gimp.org>
15143
15144         * icall.c: removed the GetNonZeroBytes.  We now handle this case
15145         in managed code.
15146
15147         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
15148
15149 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
15150
15151         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
15152         marked as deleted.
15153
15154 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
15155
15156         * verify.c (check_corlib): Handle the case when the version field is 
15157         initialized by a static constructor.
15158
15159 2003-12-08  Patrik Torstensson  <p@rxc.se>
15160
15161     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
15162
15163 2003-12-08  Martin Baulig  <martin@ximian.com>
15164
15165         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
15166         a MonoReflectionGenericParameter, also take the parameter index
15167         and name as arguments.
15168         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
15169         (ves_icall_MonoGenericParam_initialize): New interncall.
15170         (ves_icall_Type_make_byref_type): New interncall.
15171
15172         * reflection.h (MonoReflectionGenericParam): Derive from
15173         MonoReflectionType, not just from MonoObject.  Added `refobj' and
15174         `index' fields.
15175
15176         * reflection.c (mono_reflection_define_generic_parameter): Create
15177         and return a new MonoReflectionGenericParam; don't initialize the
15178         constraints here.
15179         (mono_reflection_initialize_generic_parameter): New public method;
15180         initializes the constraints and creates the `param->pklass'.
15181
15182 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
15183
15184         * reflection.h reflection.c: Use the new fields 'num_types', 
15185         'num_fields' and 'num_methods' to track the number of types etc.
15186
15187         * verify.c (check_corlib): Check corlib version number.
15188
15189 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
15190
15191         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
15192         function works on all methods.
15193
15194 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
15195
15196         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
15197         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
15198         the custom_type_info flag of the transparent proxy.
15199         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
15200         objects that supports IRemotingTypeInfo.
15201         * object.h: Added custom_type_info field in transparent proxy.
15202
15203 2003-12-06  Martin Baulig  <martin@ximian.com>
15204
15205         * class.c (mono_class_create_from_generic): Removed.
15206         (mono_class_from_generic): Check `ginst->klass' before doing
15207         anything else.  This is important to fully support "recursive"
15208         generic types.
15209
15210         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
15211         empty `generic_inst->klass' before doing anything else.
15212
15213 2003-12-06  Dick Porter  <dick@ximian.com>
15214
15215         * verify.c: 
15216         * object.h:
15217         * icall.c:
15218         * locales.c: Use C structs to access class fields.  Don't do a
15219         conversion between MonoString and UChar because both are
15220         platform-endian UTF-16.  Compare now takes startindex and count
15221         parameters.  Add a char overload for IndexOf.  Speed up the
15222         invariant string IndexOf.
15223
15224 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
15225
15226         * Makefile.am (monosn_LDADD): Fix parallel build.
15227
15228 2003-12-04  Martin Baulig  <martin@ximian.com>
15229
15230         * icall.c
15231         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15232         (ves_icall_Type_make_array_type): New interncall.       
15233
15234 2003-12-04  Martin Baulig  <martin@ximian.com>
15235
15236         * locales.c: also change it in the !HAVE_ICU case.
15237
15238 2003-12-04  Dick Porter  <dick@ximian.com>
15239
15240         * icall.c:
15241         * locales.c: construct_compareinfo is now in CompareInfo, not
15242         CultureInfo.
15243
15244 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
15245
15246         * image.c (mono_image_load_file_for_image): Cache loaded images in the
15247         image->files array.
15248
15249         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
15250         table as well.
15251
15252         * assembly.c (mono_assembly_load_references): Only load references
15253         once.
15254
15255         * class.c (mono_class_from_name): Avoid linear search of the 
15256         EXPORTEDTYPE table.
15257
15258         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
15259
15260 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
15261
15262         * image.h (MonoImage): Add 'field_cache' field.
15263
15264         * loader.c (mono_field_from_token): Cache field lookups.
15265         
15266         * reflection.c (mono_module_get_object): Fix name property.
15267
15268         * icall.c (ves_icall_get_enum_info): Update after changes to 
15269         mono_metadata_get_constant_index ().
15270
15271         * icall.c: Get rid of get_type_info icall, use a separate icall for
15272         each type property to avoid needless memory allocations. Fixes #51514.
15273
15274         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
15275         to avoid needless binary searches.
15276
15277         * class.c (class_compute_field_layout): Move the initialization of
15278         field->def_value to mono_class_vtable ().
15279
15280         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
15281         non-corlib types.
15282
15283         * object.c (mono_object_allocate): Make it inline.
15284
15285         * object.c (mono_object_allocate_spec): Make it inline.
15286         
15287 2003-12-02  Dick Porter  <dick@ximian.com>
15288
15289         * locales.c (create_NumberFormat): NumberFormatInfo construction.
15290         Patch by Mohammad DAMT (mdamt@cdl2000.com).
15291
15292 2003-12-01  Dick Porter  <dick@ximian.com>
15293
15294         * threads.c: Fix signature and call in CreateMutex and
15295         CreateEvent.
15296
15297 2003-12-01  Dick Porter  <dick@ximian.com>
15298
15299         * icall.c: 
15300         * locales.c: Implement string compares and searching
15301
15302         * object.h: Add extra Thread field
15303
15304 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
15305
15306         * reflection.c (fixup_method): Add support for MonoCMethod.
15307
15308 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
15309
15310         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
15311
15312         * reflection.c (assembly_name_to_aname): Allow extra characters in
15313         assembly names. Fixes #51468.
15314
15315 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
15316
15317         * exception.c (mono_exception_from_name_domain): New helper function.
15318
15319         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
15320         exception object in the correct domain.
15321
15322         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
15323         formatting + make a copy a the input data.
15324
15325         * loader.c (mono_get_method_from_token): Methods which contain
15326         native code do not have entries in the ImplMap.
15327
15328         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
15329         Thanks to Gonzalo for spotting this.
15330         
15331         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
15332         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
15333
15334         * assembly.h (mono_assembly_load_from): Split the second part of 
15335         assembly loading into a new public function.
15336
15337         * exception.h (mono_get_exception_bad_image_format): New function.
15338
15339 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
15340
15341         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15342         Enumerate all modules inside a dynamic assembly. Fixes #51293.
15343         
15344         * icall.c: Add new icall for creating dynamic methods.
15345
15346         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
15347
15348         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
15349
15350         * reflection.c (mono_reflection_create_dynamic_method): New icall to
15351         create a dynamic method.
15352
15353         * reflection.c (resolve_object): New helper function.
15354
15355         * reflection.c: Generalize ReflectionMethodBuilder and the functions
15356         which manipulate it so they can also work on dynamic methods.
15357
15358         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
15359         creating the MonoReflectionMethodAux structure if it is not needed.
15360         
15361         * reflection.h verify.c: Update after changes to object layout.
15362
15363         * reflection.c (method_builder_encode_signature): Fix compilation on
15364         gcc 2.95.x.
15365
15366 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
15367
15368         * appdomain.h: Added support for context static fields. Added static_data
15369           field to MonoAppContext and renamed thread_static_fields to a more
15370           generic special_static_fields in MonoAppDomain, since it can now contain
15371           context static fields.
15372         * domain.c: Updated hashtable name.
15373         * object.c: Replaced field_is_thread_static() for a more generic
15374           field_is_special_static() which also checks for context static attribute.
15375           In mono_class_vtable(), added support for static context fields.
15376         * threads.c: Changed methods that manage thread static fields to more
15377           generic methods so they can be reused both for thread and context static
15378           data.
15379         * threads.h: Declared some new methods.
15380
15381 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
15382
15383         * reflection.h: Update after changes to the managed types.
15384
15385         * reflection.c (encode_custom_modifiers): New helper function.
15386
15387         * reflection.c (method_encode_signature): Emit custom modifiers.
15388
15389         * reflection.c (field_encode_signature): Emit custom modifiers.
15390
15391 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
15392
15393         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
15394
15395         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
15396         implementation.
15397
15398         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
15399         icall.
15400
15401         * object.c (mono_field_get_value_object): New function.
15402
15403         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
15404         specific.
15405
15406 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
15407
15408         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
15409         return a preallocated out-of-memory exception instance.
15410
15411         * object.c (out_of_memory): Use the new function.
15412
15413         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
15414         flag is before the custom modifiers. Fixes #49802.
15415
15416 2003-11-16  Martin Baulig  <martin@ximian.com>
15417
15418         * class.c (mono_class_is_open_constructed_type): Implemented the
15419         MONO_TYPE_GENERICINST case.
15420
15421 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
15422
15423         * assembly.c (mono_assembly_fill_assembly_name): New function to
15424         fill out the MonoAssemblyName structure.
15425         (mono_assembly_open): Use the new function.
15426
15427         * icall.c (fill_reflection_assembly_name): New helper function.
15428
15429         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
15430         new function.
15431
15432         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
15433
15434 2003-11-15  Martin Baulig  <martin@ximian.com>
15435
15436         * class.c (mono_class_is_open_constructed_type): New public
15437         function; checks whether a type is an open constructed type,
15438         ie. whether it still contains type parameters.
15439         (mono_class_inflate_generic_type): If we're a type parameter and
15440         the inflated type is also a MONO_TYPE_(M)VAR, return the original
15441         type.
15442
15443         * class.h (MonoGenericInst): Added `guint32 is_open'.
15444
15445         * loader.c (method_from_methodspec): Check whether we're an open
15446         or closed constructed type and set `ginst->is_open'.
15447
15448         * reflection.c (mono_reflection_bind_generic_parameters): Check
15449         whether we're an open or closed constructed type and set
15450         `ginst->is_open'.
15451         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
15452         from open constructed types.
15453
15454 2003-11-15  Martin Baulig  <martin@ximian.com>
15455
15456         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15457         a generic instance (instead of a generic type declaration) with
15458         unbound generic parameters, bind them to our actual types.
15459
15460 2003-11-14  Martin Baulig  <martin@ximian.com>
15461
15462         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
15463
15464         * reflection.c (mono_reflection_bind_generic_parameters): If we're
15465         an interface type, populate `res->interfaces' with instantiated
15466         versions of all the interfaces we inherit.
15467
15468 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
15469
15470         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
15471         when MONO_PATH is set but doesn't contain the install dir.
15472
15473 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15474
15475         * icall.c:
15476         (ves_icall_Type_GetInterfaces): don't return an interface twice when
15477         it's also implemented in base classes. Fixes bug #50927.
15478
15479 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
15480
15481         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
15482         if this method is called from a finalizer. Fixes #50913.
15483
15484 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
15485
15486         * threads.c: Implement VolatileRead/VolatileWrite
15487
15488         * icall.c: Add new icalls for VolatileRead/VolatileWrite
15489
15490 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15491
15492         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
15493         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
15494         2.95.3.
15495
15496         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
15497         from Peter Ross (pro@missioncriticalit.com).
15498         
15499 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
15500
15501         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
15502
15503 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15504
15505         * assembly.c (mono_assembly_load_references): Disable check because it
15506         triggers on older corlibs which lots of people have.
15507
15508 2003-11-12  Jackson Harper  <jackson@ximian.com>
15509
15510         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
15511         load corlib.dll if mscorlib.dll is not found.
15512         * assembly.h: Remove corlib name define.
15513         * class.c:
15514         * domain.c:
15515         * image.c: Change corlib name to mscorlib.
15516         
15517 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
15518
15519         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
15520
15521 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
15522
15523         * appdomain.h: Added loader_optimization here to sync with the C#
15524         code, and add disallow_binding_redirects field.
15525
15526 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15527
15528         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
15529
15530         * reflection.c (mono_image_build_metadata): Fix crash on modules
15531         with no types.
15532
15533         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
15534
15535         * icall.c (ves_icall_get_method_info): Return callingConvention as
15536         well.
15537
15538         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
15539         namespaces from the EXPORTEDTYPE table as well.
15540
15541         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
15542         from all modules inside the assembly.
15543         
15544 2003-11-11  Martin Baulig  <martin@ximian.com>
15545
15546         * reflection.c (mono_reflection_bind_generic_parameters): Make
15547         this work for interfaces.
15548
15549 2003-11-11  Martin Baulig  <martin@ximian.com>
15550
15551         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
15552
15553 2003-11-11  Martin Baulig  <martin@ximian.com>
15554
15555         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
15556         "MonoInflatedMethod" and "MonoInflatedCtor".
15557
15558 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
15559
15560         * reflection.c (resolution_scope_from_image): Use the assembly table
15561         from the manifest module, since other modules don't have it.
15562
15563         * debug-helpers.c (mono_type_full_name): New helper function.
15564
15565         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
15566
15567         * image.c (mono_image_load_file_for_image): New public function which
15568         is a replacement for the load_file_for_image in class.c.
15569
15570         * assembly.c (mono_assembly_load_module): A wrapper for the function
15571         above which does assembly association and reference loading too.
15572
15573         * class.c (mono_class_from_name): Call mono_assembly_load_module.
15574
15575 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15576
15577         * appdomain.c: not all of the attributes for the full assembly name
15578         are required and the order doesn't matter. Fixes bug #50787.
15579
15580 2003-11-10  Dick Porter  <dick@ximian.com>
15581
15582         * locales.c: Use platform-endian UTF16
15583
15584 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15585
15586         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15587         
15588 2003-11-10  Martin Baulig  <martin@ximian.com>
15589
15590         * metadata.c
15591         (mono_metadata_load_generic_params): Make this actually work.
15592
15593         * reflection.c (mono_reflection_bind_generic_parameters): If our
15594         parent is a generic instance, pass all the `types' to it, no
15595         matter whether it has the same number of type parameters or not.
15596
15597 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
15598
15599         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
15600
15601         * assembly.c (mono_assembly_load_references): Move the image<->assembly
15602         assignment code to this function so it gets called recursively for all
15603         modules.
15604
15605         * image.c (load_modules): Remove the assembly assignment since it is
15606         now done by mono_assembly_load_references.
15607         
15608         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
15609         Add 'module' argument.
15610         (mono_module_get_types): New helper function.
15611         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
15612
15613 2003-11-08  Martin Baulig  <martin@ximian.com>
15614
15615         * class.c (mono_class_inflate_generic_method): Interface method
15616         don't have a header.
15617
15618         * reflection.c (mono_image_get_methodspec_token): Take an
15619         additional `MonoGenericInst *' argument instead of reading it from
15620         the header; this is necessary to support interfaces.
15621         (mono_image_create_token): Pass the `MonoGenericInst *' from the
15622         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
15623         (inflated_method_get_object): Take an additional `MonoGenericInst *'
15624         argument.
15625
15626         * reflection.h (MonoReflectionInflatedMethod): Added
15627         `MonoGenericInst *ginst'.
15628
15629 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
15630
15631         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
15632
15633 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
15634
15635         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
15636
15637 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
15638
15639         * reflection.c 
15640         (reflection_methodbuilder_from_method_builder):
15641         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
15642         initialize a ReflectionMethodBuilder structure.
15643         (mono_image_get_methodbuilder_token):
15644         (mono_image_get_ctorbuilder_token): New functions to emit memberref
15645         tokens which point to types in another module inside the same assembly.
15646
15647         * reflection.c: Use the new helper functions.
15648         
15649         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
15650
15651         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
15652         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
15653
15654         * reflection.c (resolution_scope_from_image): Emit a moduleref if
15655         neccesary.
15656
15657         * reflection.c (mono_image_build_metadata): Emit metadata only for the
15658         current module. Emit the manifest only for the main module.
15659
15660         * reflection.c (mono_image_create_token): Add assertion when a 
15661         memberref needs to be created.
15662
15663         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
15664
15665         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
15666         larger buffer for the custom attribute blob. Fixes #50637.
15667         
15668 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15669
15670         * threadpool.c: notify listener on async processing handles after
15671         invoking the async callback. Thanks to Zoltan.
15672
15673 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15674
15675         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
15676         avoid code duplication.
15677
15678         * reflection.h (MonoDynamicImage): New type which is currently unused,
15679         but will be used through the ref.emit code in place of 
15680         MonoDynamicAssembly.
15681
15682         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15683         object layout.
15684
15685         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
15686         a MonoDynamicImage instead of just a MonoImage.
15687         
15688         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
15689         icalls to ModuleBuilder but keep their semantics, so they will work
15690         with moduleb->assemblyb. This will change later.
15691         
15692 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15693
15694         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
15695         object layout.
15696
15697         * reflection.c (mono_image_build_metadata): Avoid creation of a default
15698         main module, since it is now done by the managed code.
15699
15700 2003-11-03  Martin Baulig  <martin@ximian.com>
15701
15702         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
15703         `ginst->klass' here.
15704         (method_encode_methodspec): Don't use the `ginst->generic_method's
15705         klass if it's a generic instance, use `ginst->klass' in this case.
15706
15707 2003-11-03  Martin Baulig  <martin@ximian.com>
15708
15709         * reflection.c (mono_image_get_generic_method_param_info):
15710         Removed, use mono_image_get_generic_param_info() instead.
15711         (mono_image_get_type_info): Write the GenericParam table before
15712         the Method table.  This is neccessary because in the GenericParam
15713         table, type parameters of the class (ie. '!0' etc.) must come
15714         before the ones from its generic methods (ie. '!!0' etc).
15715
15716 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
15717
15718         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
15719
15720 2003-11-02  Martin Baulig  <martin@ximian.com>
15721
15722         * reflection.c (create_generic_typespec): Take a
15723         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
15724         the generic parameters from it.
15725
15726 2003-11-02  Martin Baulig  <martin@ximian.com>
15727
15728         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
15729         instead of a `MonoClassField *' since we just need the type.
15730         (create_generic_typespec): New static function.  Creates a
15731         TypeSpec token for a generic type declaration.
15732         (mono_image_get_generic_field_token): New static function.
15733         (mono_image_create_token): If we're a FieldBuilder in a generic
15734         type declaration, call mono_image_get_generic_field_token() to get
15735         the token.
15736
15737 2003-11-02  Martin Baulig  <martin@ximian.com>
15738
15739         * reflection.h
15740         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
15741         `MonoReflectionGenericInst *declaring_type' and
15742         `MonoReflectionGenericInst *reflected_type' fields.
15743
15744         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
15745         `MonoReflectionGenericInst *declaring_type' and a
15746         `MonoReflectionGenericInst *reflected_type' argument instead of a
15747         single `MonoReflectionGenericInst *type' one.  Set
15748         `res->declaring_type' and `res->reflected_type' from them.
15749         (mono_reflection_inflate_field): Likewise.      
15750
15751 2003-11-02  Martin Baulig  <martin@ximian.com>
15752
15753         * class.c (mono_class_setup_vtable): Don't store generic methods
15754         in the vtable.  
15755
15756 2003-11-02  Martin Baulig  <martin@ximian.com>
15757
15758         * reflection.h (MonoReflectionGenericInst): Added
15759         `MonoReflectionType *declaring_type'.
15760
15761         * reflection.c (mono_reflection_bind_generic_parameters): Use
15762         `if (tb->parent)' instead of `klass->parent'.
15763
15764 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
15765
15766         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
15767         with an empty ASSEMBLY table.
15768
15769         * reflection.c (mono_image_build_metadata): Avoid using the same loop
15770         variable in the inner and outer loops.
15771
15772 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
15773
15774         * metadata.h (mono_metadata_make_token): Put parentheses around macro
15775         argument.
15776
15777         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
15778         
15779         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
15780         icalls. Instead, do everything in managed code. This is needed since
15781         it is hard to restore the original domain etc. in unmanaged code in the
15782         presence of undeniable exceptions.
15783
15784         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
15785         New icalls to push and pop appdomain refs.
15786
15787 2003-10-31  Martin Baulig  <martin@ximian.com>
15788
15789         * class.c (inflate_generic_type): Renamed to
15790         mono_class_inflate_generic_type() and made it public.
15791
15792         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
15793         New interncall.
15794
15795         * loader.c (mono_field_from_memberref): Also set the retklass for
15796         typespecs.
15797
15798         * fielder.c (mono_image_get_inflated_field_token): New static
15799         method; creates a metadata token for an inflated field.
15800         (mono_image_create_token, fixup_method): Added support for
15801         "MonoInflatedField".
15802         (fieldbuilder_to_mono_class_field): New static function.
15803         (mono_reflection_inflate_field): New public function.
15804
15805         * reflection.h
15806         (MonoReflectionGenericInst): Added `MonoArray *fields'.
15807         (MonoReflectionInflatedField): New typedef.     
15808
15809 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
15810
15811         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
15812         for Solaris and other platforms without s6_addr16
15813
15814 2003-10-30  Martin Baulig  <martin@ximian.com>
15815
15816         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
15817         argument instead of two.
15818         (mono_class_inflate_generic_signature): Likewise.
15819         (inflate_generic_header): Likewise.
15820         (mono_class_inflate_generic_method): Likewise.  In addition, if
15821         `ginst->klass' is set, it becomes the new `method->klass'.
15822
15823         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
15824         field.
15825
15826         * reflection.c (encode_generic_method_sig): Write a 0xa as the
15827         first byte. [FIXME]
15828         (method_encode_methodspec): If we have generic parameters, create
15829         a MethodSpec instead of a MethodRef.
15830         (fixup_method): Added support for "MonoInflatedMethod" and
15831         "MonoInflatedCtor".
15832         (mono_image_create_token): Added support for "MonoInflatedMethod"
15833         and "MonoInflatedCtor".
15834         (inflated_method_get_object): New static function; returns a
15835         managed "System.Reflection.MonoInflatedMethod" object.
15836         (mono_reflection_bind_generic_method_parameters): Return a
15837         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
15838         (mono_reflection_inflate_method_or_ctor): Likewise.
15839         (mono_image_get_generic_method_param_info): Initialize unused
15840         fields to zero.
15841         (mono_image_get_generic_param_info): Likewise.
15842
15843         * reflection.h (MonoReflectionInflatedMethod): New public
15844         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
15845         "S.R.MonoInflatedCtor" classes.
15846
15847         * loader.c (method_from_memberref): If we're a TypeSpec and it
15848         resolves to a generic instance, inflate the method.
15849
15850 2003-10-28  Dick Porter  <dick@ximian.com>
15851
15852         * object.c (mono_runtime_run_main): Convert command-line arguments
15853         into utf8, falling back to the user's locale encoding to do so.
15854
15855 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
15856
15857         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
15858         at this time.
15859
15860         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
15861
15862         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
15863         up icalls at method definition time. Partially fixes #33569.
15864
15865 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
15866
15867         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
15868         marshalling of arrays. Fixes #50116.
15869
15870         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
15871
15872         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
15873         points to a vtable in the dying appdomain.
15874
15875         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
15876         listeners into unmanaged code inside the lock.
15877
15878         * object.c (mono_class_vtable): Turn off typed allocation in non-root
15879         domains and add some comments.
15880
15881 2003-10-25  Martin Baulig  <martin@ximian.com>
15882
15883         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
15884
15885         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
15886
15887         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
15888         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
15889         currently parsing.  Create the generic class and store it in
15890         `generic_inst->klass' before parsing the type arguments.  This is
15891         required to support "recursive" definitions; see mcs/tests/gen-23.cs
15892         for an example.
15893         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
15894         to support recursive typespec entries.
15895
15896         * class.c (mono_class_setup_parent): If our parent is a generic
15897         instance, we may get called before it has its name set.
15898         (mono_class_from_generic): Splitted into
15899         mono_class_create_from_generic() and mono_class_initialize_generic().
15900
15901 2003-10-25  Martin Baulig  <martin@ximian.com>
15902
15903         * icall.c (ves_icall_Type_BindGenericParameters): Return a
15904         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
15905         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
15906         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
15907
15908         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
15909         (create_typespec): Likewise.
15910         (mono_reflection_bind_generic_parameters): Return a
15911         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
15912         (mono_reflection_inflate_method_or_ctor): New public function.
15913
15914         * reflection.h (MonoReflectionGenericInst): New typedef.        
15915
15916 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
15917
15918         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
15919         inside the domain lock. Fixes #49993.
15920         
15921         * object.c (mono_class_vtable): When typed allocation is used, 
15922         allocate vtables in the GC heap instead of in the mempool, since the
15923         vtables contain GC descriptors which are used by the collector even
15924         after the domain owning the mempool is unloaded.
15925
15926         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
15927
15928         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
15929         reflect what it does. Also invalidate mempools instead of freeing
15930         them if a define is set.
15931
15932         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
15933         of the appdomain.
15934         
15935         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
15936         hold the finalizable objects in this domain.
15937
15938         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
15939         appdomain.
15940
15941         * appdomain.c (mono_domain_set): New function to set the current
15942         appdomain, but only if it is not being unloaded.
15943
15944         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
15945         appdomain which is being unloaded.
15946         
15947         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
15948         unloading of the root appdomain.
15949
15950         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
15951         icall to execute a method in another appdomain. Intended as a 
15952         replacement for InternalSetDomain, which can confuse the code 
15953         generation in the JIT.
15954
15955         * appdomain.c (mono_domain_is_unloading): New function to determine
15956         whenever an appdomain is unloading.
15957
15958         * appdomain.c (mono_domain_unload): New function to correctly unload
15959         an appdomain.
15960
15961         * assembly.c (mono_assembly_load_references): Check that an assembly
15962         does not references itself.
15963
15964         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
15965         domain manually, it asks the finalizer thread to do it, then waits for
15966         the result. Also added a timeout.
15967
15968         * icall.c: Register the new icalls.
15969
15970         * threads.h threads.c: Export the mono_gc_stop_world and 
15971         mono_gc_start_world functions.
15972         
15973         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
15974         function to fill out the mempool with 0x2a.
15975
15976 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
15977
15978         * reflection.h (MonoReflectionMethodAux): New structure to store
15979         information which is rarely used, thus is not in the MonoMethod
15980         structure.
15981
15982         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
15983         store the aux info.
15984
15985         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
15986         and marshalling info into the aux structure.
15987
15988         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
15989         from the aux structure.
15990
15991         * loader.c (mono_method_get_param_names): Retrieve the param names from
15992         the aux structure.
15993         
15994 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
15995
15996         * exception.h exception.c: Add AppDomainUnloadedException && fix 
15997         warning.
15998
15999 2003-10-21  Dick Porter  <dick@ximian.com>
16000
16001         * socket-io.c
16002         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
16003         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
16004
16005 2003-10-21  Martin Baulig  <martin@ximian.com>
16006
16007         * reflection.c (mono_reflection_bind_generic_parameters):
16008         `klass->parent' is NULL for interfaces.
16009
16010 2003-10-21  Martin Baulig  <martin@ximian.com>
16011
16012         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16013
16014 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
16015
16016         * exception.c (mono_exception_from_name_msg): New helper function for
16017         creating exceptions and initializing their message field.
16018
16019         * exception.c: Simplify functions using the new helper.
16020
16021         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
16022         New function.
16023
16024         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
16025         mono_raise_exception, since otherwise gcc doesn't generate the function
16026         epilog for raise_exception, confusing the stack unwinding in the JIT.
16027         Fixes #45043.
16028
16029         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
16030         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
16031         Fixes #49499.
16032
16033 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16034
16035         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
16036         utf8.
16037
16038 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
16039
16040         * icall.c: Removed GetUninitializedObject method because
16041           AllocateUninitializedClassInstance does the same.
16042
16043 2003-10-18  Martin Baulig  <martin@ximian.com>
16044
16045         * class.c (inflate_generic_signature): Renamed to
16046         mono_class_inflate_generic_signature() and made it public.
16047         (my_mono_class_from_generic_parameter): New static function; if we
16048         don't already have the generic parameter's MonoClass, create a
16049         very simple one which is just used internally in the runtime and
16050         not passed back to managed code.
16051
16052         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
16053
16054         * metadata.h (MonoMethodSignature): Moved the
16055         `MonoGenericParam *gen_params' to the MonoMethodHeader.
16056         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
16057
16058         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
16059         ves_icall_MonoMethod_GetGenericArguments(); this is now an
16060         interncall on the MonoMethod class, not on MethodInfo.
16061         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
16062         calling mono_reflection_bind_generic_method_parameters() directly.
16063
16064         * loader.c (mono_method_get_signature): If this is a MethodSpec;
16065         return the already computed `method->signature'.
16066         (method_from_methodspec): New static function to load a method
16067         from a MethodSpec entry.
16068         (mono_get_method_from_token): Call the new method_from_methodspec()
16069         for MethodSpec tokens.  
16070         (mono_get_method_from_token): If we're a generic method, load the
16071         type parameters.
16072
16073         * reflection.c (mono_image_get_memberref_token): Allow
16074         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
16075         table.
16076         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
16077         (mono_image_create_token): First check whether it's a generic
16078         method (so we'd need to create a MethodSpec), then do the other
16079         two alternatives.
16080         (mono_reflection_bind_generic_method_parameters): Return a
16081         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
16082         called directly from the interncall.
16083
16084 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
16085
16086         * reflection.c (load_public_key): Move loading of the public key
16087         into managed code.
16088
16089         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
16090
16091         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
16092         fields.
16093
16094         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
16095         culture, hash_alg and public_key. Fixes #49555.
16096
16097 2003-10-17  Martin Baulig  <martin@ximian.com>
16098
16099         * class.h (MonoGenericInst): Moved this declaration here and added
16100         `MonoMethod *generic_method'.
16101
16102         * icall.c
16103         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
16104         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
16105
16106         * metadata.c (mono_metadata_type_equal): Two types of
16107         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
16108         index; ie. don't compare the address of the `MonoGenericParam'
16109         structure.
16110         (mono_metadata_load_generic_params): Removed the `MonoMethod
16111         *method' argument.
16112
16113         * metadata.h (MonoGenericInst): Moved declaration to class.h.
16114         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
16115
16116         * reflection.c (method_encode_signature): Encode the number of
16117         generic parameters.
16118         (encode_generic_method_sig): New static function.
16119         (method_encode_methodspec): New static function; creates an entry
16120         in the MethodSpec table for a generic method.
16121         (mono_image_get_methodspec_token): New static function.
16122         (mono_image_create_token): Call mono_image_get_methodspec_token()
16123         for generic methods.
16124         (mono_reflection_bind_generic_method_parameters): New public
16125         function.  Instantiates a generic method.
16126
16127 2003-10-16  Martin Baulig  <martin@ximian.com>
16128
16129         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
16130         *gen_params' here from MonoMethodHeader.
16131
16132         * metadata.c (mono_metadata_parse_method_signature): If we have
16133         generic parameters, initialize `method->gen_params' and then set
16134         the correct `type->data.generic_param' in all the parameters.
16135
16136 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
16137
16138         * threads.c (mono_threads_get_default_stacksize): New function to 
16139         return the default stacksize.
16140
16141         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
16142         termination of the finalizer thread, since the previous method had
16143         race conditions. Fixes #49628.
16144
16145         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
16146         as for the other managed threads.
16147
16148 2003-10-16  Martin Baulig  <martin@ximian.com>
16149
16150         * class.c (inflate_generic_signature): Copy `generic_param_count'
16151         and `gen_params'.
16152
16153         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
16154         New interncall.
16155
16156         * metadata.c (mono_metadata_parse_method_signature): Actually set
16157         the `method->generic_param_count' here.
16158         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
16159
16160 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
16161
16162         * object.h: Add a new field to TypedRef to simplify the implementation
16163         of the REFANY opcodes in the JIT.
16164
16165         * icall.c: Make use of the new field.
16166
16167         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
16168         dynamically.
16169
16170 2003-10-15  Martin Baulig  <martin@ximian.com>
16171
16172         * class.c (mono_class_from_gen_param): Renamed to
16173         mono_class_from_generic_parameter() and moved most of the
16174         functionality from mono_reflection_define_generic_parameter()
16175         here; ie. we create a "real" class here.
16176         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
16177         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
16178         previously been called.
16179
16180         * class.h (MonoGenericParam): Moved the declaration of this struct
16181         here from metadata.h and added `MonoMethod *method'.
16182
16183         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
16184         interncall.
16185
16186         * loader.c (mono_get_method_from_token): If we have any generic
16187         parameters, call mono_metadata_load_generic_params() to read them
16188         from the MONO_TABLE_GENERICPAR.
16189
16190         * metadata.c (mono_metadata_load_generic_params): Added
16191         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
16192
16193         * metadata.h (MonoMethodSignature): Replaced
16194         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
16195         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
16196
16197         * reflection.c (mono_reflection_define_generic_parameter): Moved
16198         most of the functionality into the new
16199         mono_class_from_generic_parameter(); set the `method' field if
16200         we're a method parameter.       
16201
16202 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
16203
16204         * marshal.c (emit_struct_conv): if native size is 0
16205         emit no code.
16206
16207 2003-10-14  Martin Baulig  <martin@ximian.com>
16208
16209         * icall.c: The generics API has changed in the spec since it was
16210         added to System.Type; these modifications make it match the spec
16211         again.
16212         (ves_icall_Type_GetGenericParameters): Renamed to
16213         `ves_icall_Type_GetGenericArguments'.
16214         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
16215         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
16216         `ves_icall_MonoType_get_HasGenericArguments'.
16217         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
16218         `ves_icall_MonoType_get_IsGenericParameter'.
16219         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
16220         this is no interncall anymore.
16221         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
16222         `ves_icall_TypeBuilder_get_IsGenericParameter'.
16223
16224 2003-10-14  Martin Baulig  <martin@ximian.com>
16225
16226         * reflection.c (mono_reflection_bind_generic_parameters): Also
16227         inflate generic methods if we're reading the class from IL.
16228
16229 2003-10-13  Martin Baulig  <martin@ximian.com>
16230
16231         * reflection.c (mono_reflection_define_generic_parameter): This
16232         method isn't called directly from the icall anymore; take a
16233         `MonoReflectionAssemblyBuilder *' so we can use this for type and
16234         method generic parameters.
16235         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
16236         (method_builder_encode_signature): Encode generic parameters.
16237         (mono_image_get_method_info): Write generic params to the
16238         MONO_TABLE_GENERICPARAM table.
16239
16240         * reflection.h (MonoReflectionMethodBuilder): Added
16241         `MonoArray *generic_params'.
16242
16243         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
16244
16245         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
16246         wrapper for mono_reflection_define_generic_parameter().
16247         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
16248
16249 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
16250
16251         * marshal.h: Add missing function to fix build.
16252
16253         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
16254         the SetLastError pinvoke attribute.
16255
16256         * marshal.c (mono_marshal_set_last_error): New helper function called
16257         by the generated code.
16258         
16259         * marshal.c (mono_mb_emit_branch): New helper function.
16260
16261         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
16262
16263         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16264         classes as parameters and return values of delegates. Fixes #29256. 
16265
16266 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
16267
16268         * locales.c: use gint32 in non HAVE_ICU case
16269
16270 2003-10-11  Martin Baulig  <martin@ximian.com>
16271
16272         * mono-debug.c (mono_debug_add_method): Added a workaround for
16273         bug #48591.
16274
16275 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
16276
16277         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
16278         delegates passed to native code must use the STDCALL calling 
16279         convention. Fixes #35987.
16280
16281 2003-10-10  Martin Baulig  <martin@ximian.com>
16282
16283         * class.c (inflate_generic_type): If we're inflating for a generic
16284         type instance (and not for a generic method), return
16285         MONO_TYPE_MVAR unchanged.
16286
16287 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16288
16289         * string-icalls.c: Join ignores null strings in the source array.
16290         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
16291         * threads.c: GetAvailableTheads is slightly more accurate.
16292
16293 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
16294
16295         * threads.h threads.c : add mono_threads_set_default_stacksize
16296         and pass default to CreateThread calls.
16297
16298 2003-10-09  Dick Porter  <dick@ximian.com>
16299
16300         * icall.c:
16301         * locales.h:
16302         * locales.c: Internal calls for constructing CultureInfo and
16303         related objects from libicu (if its available.)
16304
16305 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
16306
16307         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
16308
16309 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16310
16311         * threadpool.c: added an argument to async_invoke_thread that is the
16312         item to process, pass the MonoAsyncResult to the thread start function
16313         when creating a new thread. This way we don't need to acquire any lock
16314         when we're creating a new thread. Readded a semaphore for faster
16315         response times (instead of that Sleep i added).
16316
16317 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
16318
16319         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
16320         get daylight change dates better on Windows, fix handling
16321         of platforms without tm_gmtoff.
16322
16323 2003-10-06  Martin Baulig  <martin@ximian.com>
16324
16325         * class.c (inflate_generic_method): Renamed to
16326         mono_class_inflate_generic_method() and made public.
16327         (mono_class_init): Don't inflate the generic methods here.
16328         (mono_class_from_generic): Added `gboolean inflate_methods'
16329         argument.  Inflate the methods here.
16330
16331         * loader.c (mono_method_get_param_names): Ignore instances of
16332         generic types for the moment.
16333
16334         * reflection.c (fixup_method): Added support for inflated methods.
16335         (mono_image_create_token): Use mono_image_get_methodref_token()
16336         for inflated methods.
16337         (mono_custom_attrs_from_param): Ignore instances of generic types
16338         for the moment.
16339         (mono_reflection_bind_generic_parameters): New public function.
16340         Moved all the functionality from
16341         ves_icall_Type_BindGenericParameters() here and added support for
16342         dynamic types.
16343         (mono_reflection_define_generic_parameter): Initialize
16344         `klass->methods' here.
16345
16346         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
16347         functionality into mono_reflection_define_generic_parameter().
16348         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
16349         TypeBuilder, return that TypeBuilder.
16350
16351 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16352
16353         * appdomain.c: removed mono_delegate_semaphore.
16354
16355         * threadpool.c:
16356         (mono_thread_pool_add): moved hash table creation inside and the thread 
16357         creation outside of the critical region.
16358         (mono_thread_pool_finish): removed obsolete code.
16359         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
16360         continue or exit the thread depending on the queue.
16361
16362 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
16363
16364         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
16365         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
16366         handle more bool marshalling options
16367
16368 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
16369
16370         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
16371         arrays of structs. Also add a more descriptive error message when
16372         a structure member is marshalled as LPArray.
16373
16374 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
16375
16376         * marshal.c (mono_marshal_get_native_wrapper): Add support for
16377         marshalling arrays of complex types. Fixes #29098. Also remove an
16378         usused and incomplete function.
16379
16380 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16381
16382         * gc.c: report heap_size - free_bytes as total memory allocated
16383         (bug#49362).
16384
16385 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
16386
16387         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
16388         fix timezone handling problems on Windows.
16389         
16390         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
16391         asserts when the year is outside the range handled by ms the functions.
16392
16393         * class.c (setup_interface_offsets): If the class is an interface,
16394         fill out its interface_offsets slot.
16395
16396 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16397
16398         * threadpool.c: mark threadpool threads as background.
16399
16400 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
16401
16402         * decimal.c - define DECINLINE to nothing if not using GCC
16403
16404 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
16405
16406         * assembly.c: More refcount fixes.
16407
16408 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16409
16410         * string-icalls.c: if we're not trimming, return the same string.
16411         When not splitting, don't create a new string.
16412
16413 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16414
16415         * image.c:
16416         (mono_image_open): increment the ref_count inside the critical section.
16417
16418 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
16419
16420         * image.c (mono_image_open): Fix reference counting bug.
16421
16422 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
16423
16424         * marshal.c (mono_marshal_type_size) struct alignment changed for 
16425         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
16426         64bits. Avoid leak in mono_marshal_get_native_wrapper when
16427         mono_lookup_pinvoke_call throws.        
16428
16429 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
16430
16431         * reflection.c (mono_reflection_parse_type): Fix #49114.
16432
16433         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
16434         temporary workaround for cygwin header problem.
16435
16436         * object.c (mono_object_isinst): Synchronize this with the code
16437         generated by the JIT for casts.
16438
16439 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
16440
16441         * reflection.c (encode_type): Fix #38332.
16442
16443 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
16444
16445         * marshal.c (mono_marshal_method_from_wrapper): New function to return
16446         the original method from the wrapper method.
16447
16448 2003-09-25  Martin Baulig  <martin@ximian.com>
16449
16450         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
16451         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
16452         (ves_icall_Type_get_IsGenericInstance): New interncall.
16453
16454 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
16455
16456         * object.c: fix cast warning in big endian code.
16457
16458 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
16459
16460         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
16461         
16462 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16463
16464         * assembly.c: don't call check_env from mono_assembly_load. It's
16465         already done once in mono_assemblies_init and may cause headaches when
16466         multiple threads are loading assemblies.
16467
16468 2003-09-19  Martin Baulig  <martin@ximian.com>
16469
16470         * reflection.c (mono_reflection_define_generic_parameter): Don't
16471         allocate `klass->methods', set `klass->flags' to
16472         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
16473
16474 2003-09-18  Martin Baulig  <martin@ximian.com>
16475
16476         * class.c (mono_class_init): Don't create `class->methods' if it's
16477         already initialized.
16478
16479         * metadata.c (mono_metadata_load_generic_params): Make this
16480         actually work.
16481
16482         * reflection.c (mono_reflection_define_generic_parameter): Set
16483         parent class and interfaces from the constraints.
16484
16485         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
16486         to keep this struct in sync with the declaration in TypeBuilder.cs.
16487
16488 2003-09-17  Martin Baulig  <martin@ximian.com>
16489
16490         * metadata.h (MonoType): Replaced the data's `int type_param'
16491         field with `MonoGenericParam *generic_param'.
16492         (MonoGenericParam): Added `MonoClass *klass'.
16493
16494         * class.c (mono_class_from_gen_param): Removed the
16495         `MonoImage *image' and `int type_num' arguments.
16496
16497         * metadata.c (mono_metadata_parse_generic_param): New static
16498         method; creates a MonoGenericParam which just contains the index.
16499         (do_mono_metadata_parse_type): Call
16500         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
16501         MONO_TYPE_MVAR.
16502
16503         * reflection.c (mono_image_typedef_or_ref): Generic type
16504         parameters may be in the same assembly, but never use a typedef
16505         for them.
16506         (mono_reflection_define_generic_parameter): We're now creating a
16507         "real" class for the type parameter; it's now safe to call
16508         mono_class_from_mono_type() on the class'es type, it'll do the
16509         right thing.
16510
16511 2003-09-16  Martin Baulig  <martin@ximian.com>
16512
16513         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
16514         `symfile->range_entry_size' and `symfile->class_entry_size' here;
16515         the `symfile' data structure must be fully initialized before it
16516         gets added to the table.
16517
16518 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
16519
16520         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
16521
16522         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
16523         class init trampolines.
16524
16525 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
16526
16527         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
16528         to the built-in profiler to turn off time and allocation profiling
16529         respectively.
16530
16531 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
16532
16533         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
16534         g_direct_equal.
16535
16536         * debug-helpers.c (mono_method_full_name): Print the wrapper type
16537         in human readable form.
16538
16539 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
16540
16541         * reflection.c icall.c: Fixed warnings.
16542
16543         * image.c (load_class_names): Use a temporary hash table to hold the
16544         namespaces in order to avoid doing many string comparisons.
16545
16546         * image.h: Fix typo.
16547
16548         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
16549         Pass NULL instead of g_direct_equal to the GHashTable constructor 
16550         since the NULL case is short-circuited inside g_hash_table_lookup, 
16551         leading to better performance.  
16552
16553         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
16554         obtain the first custom attribute for a given index. Depends on the
16555         CustomAttribute table being sorted by the parent field.
16556
16557         * reflection.c (mono_custom_attrs_from_index): Use the new function 
16558         for better performance.
16559
16560 2003-09-07  Martin Baulig  <martin@ximian.com>
16561
16562         * class.c (mono_class_init): If we're a generic instance, inflate
16563         all our methods instead of loading them from the image.
16564         (mono_class_from_generic): Set `class->methods = gklass->methods'.
16565
16566 2003-09-07  Martin Baulig  <martin@ximian.com>
16567
16568         * mono-debug-debugger.c: Added support for constructors.
16569
16570 2003-09-06  Martin Baulig  <martin@ximian.com>
16571
16572         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
16573         New interncall.
16574
16575         * reflection.c (mono_reflection_setup_generic_class): Call
16576         ensure_runtime_vtable() to create the vtable.
16577
16578 2003-09-05  Martin Baulig  <martin@ximian.com>
16579
16580         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
16581         MONO_TYPE_MVAR.
16582
16583 2003-09-04  Martin Baulig  <martin@ximian.com>
16584
16585         * reflection.c (mono_reflection_define_generic_parameter): Generic
16586         parameters start with zero.
16587
16588 2003-09-04  Martin Baulig  <martin@ximian.com>
16589
16590         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
16591
16592         * reflection.h (MonoReflectionGenericParam): New typedef.
16593         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
16594         the generic parameters from the managed TypeBuilder.
16595
16596         * reflection.c (mono_reflection_define_generic_parameter): New function.
16597         (mono_reflection_create_runtime_class): Encode generic parameters.
16598         (mono_reflection_setup_generic_class): New function; this is
16599         called after adding adding all generic params to the TypeBuilder.
16600         (encode_type): Added MONO_TYPE_VAR.
16601
16602 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
16603
16604         * class.h class.c (mono_class_needs_cctor_run): Moved this method
16605         here from the JIT.
16606
16607         * assembly.h assembly.c: Moved the AOT loading code into an assembly
16608         load hook.
16609
16610 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
16611
16612         * reflection.h reflection.c class.h class.c: Delete duplicate 
16613         definition of mono_type_get_name () from reflection.c and export the
16614         one in class.c.
16615
16616         * class.c: Class loading fixes from Bernie Solomon 
16617         (bernard@ugsolutions.com).
16618
16619         * reflection.c: Endianness fixes from Bernie Solomon 
16620         (bernard@ugsolutions.com).
16621         
16622 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
16623
16624         * assembly.h assembly.c: Define a file format version for AOT
16625         libraries.
16626         
16627         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
16628
16629         * appdomain.h (MonoJitInfo): New field to determine whenever the
16630         code is domain neutral.
16631         
16632 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
16633
16634         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
16635
16636 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
16637
16638         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
16639         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
16640         Avoid caching the result since strings must be domain specific. Fixes
16641         #48050.
16642
16643 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
16644
16645         * marshal.c (mono_marshal_init): Make this callable multiple times
16646         since it is hard to find a correct place to call it.
16647
16648         * object.c (mono_runtime_class_init): Execute static constructors in
16649         the correct appdomain.
16650
16651         * image.c (build_guid_table): Handle the case when multiple images have
16652         the same GUID.
16653
16654 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16655
16656         * icall.c: added a couple of icalls for System.Web.
16657
16658 2003-08-28  Martin Baulig  <martin@ximian.com>
16659
16660         * icall.c (ves_icall_Type_BindGenericParameters): Use
16661         `klass->generic_inst' instead of `&klass->byval_arg' in the
16662         mono_type_get_object() call.  The returned type must be
16663         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
16664
16665 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
16666
16667         * NOTES: New file.
16668
16669         * object.c (mono_class_proxy_vtable): Make it thread safe.
16670
16671         * pedump.c: Fix warning.
16672
16673         * object.c appdomain.h: Get rid of metadata_section. 
16674         It is no longer needed and it was causing deadlocks with domain->lock.
16675
16676         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
16677
16678 2003-08-26  Martin Baulig  <martin@ximian.com>
16679
16680         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
16681
16682 2003-08-26  Martin Baulig  <martin@ximian.com>
16683
16684         * pedump.c (main): Call mono_metadata_init(),
16685         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
16686         and mono_loader_init().
16687
16688 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
16689
16690         * loader.h: Add missing include to fix build.
16691
16692         * image.h: mono_image_load_references is no more.
16693
16694         * assembly.c: Reworked assembly loading to make it really thread safe.
16695         After these changes, the assembly returned by mono_assembly_open is
16696         fully initialized, i.e. all its references assemblies are loaded.
16697
16698         * assembly.c (mono_image_load_references): Renamed to 
16699         mono_assembly_load_references, and made private, since clients no
16700         longer need to call it.
16701
16702         * class.c: Removed calls to mono_assembly_load_references, since it was
16703         a source of deadlocks.
16704
16705         * loader.h loader.c class.h class.c: Protect data structures using a 
16706         new lock, the loader lock.
16707
16708         * class.c (mono_class_setup_vtable): Create temporary hash tables and
16709         GPtrArrays only when needed.
16710
16711         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
16712         into empty structures by mcs. Fixes pinvoke7.cs.
16713         
16714         * domain.c (mono_init): Call a new initialization function.
16715
16716         * appdomain.c (mono_runtime_init): Call the new initializer function
16717         of the marshal module.
16718
16719         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
16720         inserted into empty structures by mcs. Fixes pinvoke7.cs.
16721
16722         * marshal.h marshal.c: Added locks around the wrapper caches to make
16723         this module thread safe.
16724
16725         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
16726         this argument. Fixes pinvoke1.exe.
16727
16728 2003-08-25  Lluis Sanchez <lluis@ximian.com>
16729
16730         * object.h: Added call_type field to MonoMethodMessage and the corresponding
16731         enumeration of values. Removed fields to store remote call output values in
16732         MonoAsyncResult. Not needed any more.
16733         * object.c: Initialize call_type and async_result fields in mono_message_init.
16734         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
16735         dispatching the message.
16736         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
16737         async call to finish. To do it use a message with EndInvoke call type.
16738
16739 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
16740
16741         * loader.h loader.c (mono_method_hash_marhal_info): New function which
16742         determines whenever a method has marshalling info.
16743
16744 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16745
16746         * assembly.c: fix the build on windows.
16747
16748 2003-08-22 Lluis Sanchez <lluis@ximian.com>
16749
16750         * object.cs: Fixed bug #47785.
16751
16752 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
16753
16754         * string-icalls.c (StringReplace): If their are no occurances of
16755         the old string found return a reference to the supplied
16756         string. This saves some memory and matches MS behavoir.
16757         
16758 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16759
16760         * socket-io.c: fixed compilation for systems that define AF_INET6
16761         and don't define SOL_IP/SOL_IPV6.
16762
16763 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
16764
16765         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
16766         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
16767
16768         * rawbuffer.c rawbuffer.h: Make this module thread safe.
16769
16770         * domain.c: Make this module thread safe.
16771
16772         * domain.c (mono_init): Call new initialization function.
16773
16774         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
16775         reference types too. Fixes #38812.
16776
16777         * image.c (mono_image_init): Fixed warnings.
16778
16779         * class.c (mono_class_from_typeref): Handle assembly load failure
16780         correctly.
16781
16782         * appdomain.c (add_assemblies_to_domain): Handle the case when
16783         the references of an assembly are not yet loaded.
16784
16785         * metadata.c image.c assembly.c: Moved initialization of global
16786         variables to a separate function called at startup since lazy 
16787         initialization of these variables is not thread safe.
16788         
16789         * image.c assembly.c: Made this module thread safe by adding locks in 
16790         the appropriate places.
16791
16792         * domain.c (mono_init): Call the new initialization functions of the
16793         three modules.
16794
16795 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
16796
16797         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
16798           make a direct call. It is proxy's work to make the call asynchronous.
16799           mono_delegate_end_invoke(): If the targe is a proxy, just collect
16800           the return values.
16801         * object.cs: mono_method_call_message_new(): read AsyncResult and
16802           state object from parameters list, if this info is requested.
16803         * object.h: Added fields to store remote call output values in
16804           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
16805
16806 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16807
16808         * object.h: add needed fields to MonoThread.
16809         * threads.c, threads.h: allow registering a function to cleanup data
16810         allocated per thread by the JIT.
16811
16812 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16813
16814         * loader.h: portability fix by Bernie Solomon
16815         * <bernard@ugsolutions.com>.
16816
16817 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
16818
16819         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
16820         return a MonoArray. This simplifies the code and also ensures that
16821         the cache allways contains an object reference as a value.
16822
16823         * icall.c (ves_icall_get_parameter_info): Simplified using the new
16824         function.
16825
16826 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16827
16828         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
16829         fixes a problem with byte ordering when getting the address family for
16830         a socket.
16831
16832 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
16833
16834         * .cvsignore: Added monosn.
16835
16836         * reflection.h reflection.c loader.c: Added support for parameter
16837         marshalling to dynamically created types. Fixes #47295.
16838
16839 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
16840
16841         * rand.c: remove useless warnings.
16842
16843 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16844
16845         * class.c: implemented ldtoken for methods and fieldrefs.
16846
16847 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16848
16849         * threadpool.c: when mono_async_invoke was called, no one took care of
16850         monitoring the queue. So if the method invoked took some time and we
16851         got new async invoke requests after 500 ms (the thread created waited
16852         that long in WaitForSingleObject), the new async invoke was not called
16853         until the previous one finished.
16854
16855         This is fixed now. Thanks to Totte for helping with it.
16856
16857 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16858
16859         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
16860
16861 2003-08-11  Martin Baulig  <martin@ximian.com>
16862
16863         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
16864
16865 2003-08-06  Martin Baulig  <martin@ximian.com>
16866
16867         * mono-debug-debugger.c: Added support for static fields,
16868         properties and methods.
16869
16870 2003-08-06  Martin Baulig  <martin@ximian.com>
16871
16872         * mono-debug-debugger.c: Don't store the MonoString's vtable to
16873         make this work for applications with multiple application domains.
16874
16875 2003-08-04  Martin Baulig  <martin@ximian.com>
16876
16877         * mono-debug-debugger.c: Completely reworked the type support; the
16878         most important thing is that we're now just using one single
16879         `MonoType' instance per type.
16880
16881 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
16882
16883         * mono-endian.h, mono-endian.c, icall.c: Added icall
16884         ves_icall_System_Double_AssertEndianity to assert double word endianity
16885         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
16886
16887 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16888
16889         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
16890         support, icalls and fixes.
16891
16892 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
16893
16894         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
16895         classes that are a punctuation character in .NET is not the same a
16896         g_unichar_ispunct.
16897
16898 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16899
16900         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
16901
16902 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
16903
16904         * icall.c: Add new MemCopy internalcall.
16905         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
16906         Simplified code; It is not necessary to handle all the cases here,
16907         as the C# code takes care of it.  Only handle the case of the name
16908         resource embedded into the assembly.
16909
16910         Changed signature to return the data pointer and the size of the
16911         data. 
16912
16913 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
16914
16915         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
16916         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
16917
16918 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16919
16920         * socket-io.c: ignore EINTR error in select.
16921
16922 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16923
16924         * class.h, class.c: removed unused subclasses field in MonoClass.
16925
16926 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
16927
16928         * icall.c: improve fix of get_base_definition(). If the parent class
16929           doesn't have the mehod, look at the parent of the parent.
16930         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
16931           to check if a parameter is an in or out parameter
16932           (PARAM_ATTRIBUTE_IN is not set by default).
16933           mono_method_return_message_restore(): Use mono_class_value_size to
16934           get the size of a value type. mono_type_stack_size (parameterType)
16935           does not return the correct value if parameterType is byRef.
16936           mono_load_remote_field(), mono_load_remote_field_new(),
16937           mono_store_remote_field(), mono_store_remote_field_new():
16938           raise exception if the remote call returns an exception.
16939
16940 2003-07-28  Martin Baulig  <martin@ximian.com>
16941
16942         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
16943         method.  This is a wrapper around mono_runtime_invoke() which
16944         boxes the instance object if neccessary.
16945
16946 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16947
16948         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
16949         metadata.h, row-indexes.h, verify.c: first cut of generics support.
16950
16951 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16952
16953         * icall.c: disable mcs bug workaround.
16954
16955 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
16956
16957         * object.c (mono_runtime_class_init): Take the metadata_section
16958         mutex before obtaining the domain mutex.
16959
16960         * appdomain.h: Added definition of metadata_section mutex here. 
16961
16962         * object.c: define metadata_mutex here.
16963
16964 2003-07-24  Ravi Pratap  <ravi@ximian.com>
16965
16966         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
16967         fixed.
16968
16969 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
16970
16971         * reflection.c: Fix bug #46669
16972
16973 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16974
16975         * exception.c:
16976         * exception.h:
16977         * icall.c:
16978         * object.h: fill in the type name for TypeLoadException.
16979
16980 2003-07-23  Ravi Pratap  <ravi@ximian.com>
16981
16982         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
16983         relationship between TypeBuilders while compiling corlib) and bug
16984         45993 (Array types returned from the runtime while compiling
16985         corlib were from the loaded corlib).
16986
16987 2003-07-22  Martin Baulig  <martin@ximian.com>
16988
16989         * mono-debug-debugger.c: Reworked the type support a bit more;
16990         distinguish between types and classes.
16991
16992 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
16993
16994         * icall.c: add IsArrayImpl icall.
16995
16996 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
16997
16998         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
16999         initializing real_size only once. Also fix bug #46602.
17000
17001 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
17002
17003         * object.c: Renamed mono_metadata_section to metadata_section.
17004
17005 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
17006
17007         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
17008           empty array if the type is an array. Fixed.
17009           ves_icall_MonoMethod_get_base_definition: if the base method
17010           is abstract, get the MethodInfo from the list of methods of
17011           the class.
17012         * reflection.c: ParameterInfo.PositionImpl should be zero-based
17013           and it was 1-based. Fixed in mono_param_get_objects.
17014
17015 2003-07-20  Martin Baulig  <martin@ximian.com>
17016
17017         * mono-debug.h: Set version number to 31.
17018         (mono_debug_init): Added `MonoDomain *' argument.
17019
17020         * mono-debug-debugger.c: Reworked the type support; explicitly
17021         tell the debugger about builtin types; pass the `klass' address to
17022         the debugger.
17023
17024 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
17025
17026         * image.c: Allow new metadata tables to be loaded without a
17027         warning. Also update the warning message to give the new constant value.
17028                 
17029 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
17030
17031         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
17032         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
17033         array type representation changes.
17034
17035 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17036
17037         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
17038         on Environment.Exit () call.
17039
17040 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
17041
17042         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
17043         requires a matching corlib.
17044
17045 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
17046
17047         * Changelog: My editor decided to add a CR to each line. Sorry about that.
17048           Committed again without the CRs.
17049         
17050 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
17051
17052         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
17053           getting it from the "this" socket instance. Did not work
17054           if the socket is a subclass of Socket.
17055           Also fixed bug #35371.
17056
17057 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17058
17059         * metadata.c: fixed size for TypedByRef.
17060         * loader.c: when searching for a method, consider the vararg amrker.
17061         * unicode.c, decimal.c: constify some arrays.
17062
17063 2003-07-15  Dick Porter  <dick@ximian.com>
17064
17065         * socket-io.c: Fixed compilation for gcc < 3.2.
17066
17067         Fixed compilation for machines that don't have AF_INET6 (thanks to
17068         Bernie Solomon <bernard@ugsolutions.com> for that part.)
17069
17070         Fixed compile warnings.
17071         
17072         Fixed formatting and line endings.
17073
17074 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
17075
17076         * socket-io.h:
17077         * socket-io.c: Added IPv6 support.
17078
17079 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
17080
17081         * class.c (mono_class_is_assignable_from): New function to implement
17082         the is_assignable_from logic. Used by mono_object_isinst, 
17083         Type::IsAssignableFrom () and the interpreter.
17084
17085         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
17086         Object, even interfaces.
17087         
17088         * object.c (mono_object_isinst): Implement in terms of 
17089         is_assignable_from.
17090
17091         * icall.c (ves_icall_type_is_assignable_from): New icall.
17092
17093 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
17094
17095         * domain.c (foreach_domain): fix compiler warning.
17096
17097 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
17098
17099         * image.c (load_metadata_ptrs): use g_strndup because strndup is
17100         not available on all plattforms
17101
17102 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
17103
17104         * image.h image.c: Store the metadata version string in MonoImage.
17105         * icall.c: New icall to retrieve the image version.
17106         * reflection.c (create_dynamic_image): Fill in the image version field
17107         * reflection.c (build_compressed_metadata): Use the image version
17108         from the image structure.
17109
17110 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17111
17112         * appdomain.c: modified comment.
17113         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
17114         That will be its last iteration when mono_gc_cleanup is called from
17115         mono_runtime_cleanup and before the domain is unloaded.
17116
17117         Fixes bug #45962.
17118
17119 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
17120
17121         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
17122         attributes.
17123
17124 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17125
17126         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
17127         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
17128         Bernie Solomon <bernard@ugsolutions.com>.
17129
17130 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17131
17132         * object.c, object.h: provide mono_object_new_fast() for faster
17133         allocation in some special cases.
17134
17135 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
17136
17137         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
17138         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
17139
17140 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
17141
17142         * threadpool.c: fix leaks.
17143
17144 2003-07-01  Dick Porter  <dick@ximian.com>
17145
17146         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
17147         using MonoGHashTables.  Fixes threadpool bug posted to list.
17148
17149 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
17150
17151         * image.h, image.c: added support to load an assembly from a byte array.
17152         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
17153         assembly bundle support.
17154
17155 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
17156
17157         * threadpool.c (mono_thread_pool_add): keep a reference to the
17158         AsyncResult to prevent GC
17159
17160 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17161
17162         * class.c: leak fix.
17163
17164 2003-06-25  Dick Porter  <dick@ximian.com>
17165
17166         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
17167         for the async object, the WaitHandle object will close the handle.
17168         Fixes bug 45321.
17169
17170 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17171
17172         * class.c: in mono_array_class_get (), lookup from the hash with the
17173         same type we insert: this works around a bug in
17174         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
17175         lluis. The real fix will have to wait for after the release.
17176
17177 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17178
17179         * icall.c: fix memory leak when getting type members.
17180
17181 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17182
17183         * reflection.c: added more pubtoken special cases.
17184
17185 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
17186
17187         * class.c: handle field offset correctly when class size
17188         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
17189
17190 2003-06-20  Martin Baulig  <martin@ximian.com>
17191
17192         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
17193         *image' field.
17194
17195 2003-06-20  Martin Baulig  <martin@ximian.com>
17196
17197         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
17198
17199 2003-06-20  Martin Baulig  <martin@ximian.com>
17200
17201         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
17202         just distinguish between variables in registers and variables at
17203         an offset relative to a register.
17204
17205 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17206
17207         * icall.c: #ifdef out latest changes until mcs is fixed.
17208
17209 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17210
17211         * icall.c: return members in metadata order.
17212
17213 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
17214
17215         * icall.c: avoid infinite loop in GetTimeZoneData.
17216
17217 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
17218
17219         * icall.c: added Marshal.Prelink/All icalls.
17220
17221 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
17222
17223         * object.c, object.h: fix warnings and do some overflow checking
17224         when creating arrays.
17225
17226 2003-06-17  Dick Porter  <dick@ximian.com>
17227
17228         * file-io.h:
17229         * file-io.c: File attributes need to be tweaked slightly when
17230         passed from the managed to the w32 world.
17231
17232 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17233         * profiler.h profiler-private.h profiler.c: Rework last patch
17234         based on suggestion by Paolo.
17235         
17236 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
17237
17238         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
17239         instruction level coverage data collection.
17240         * profiler.h profiler.c (: Added new callback function which can be
17241         used by the profiler to limit which functions should have coverage
17242         instrumentation.
17243         * profiler.c (mono_profiler_load): Call g_module_build_path to
17244         generate the file name of the profiler library.
17245
17246 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
17247
17248         * profiler.c, profiler.h, profiler-private.h: added basic block 
17249         coverage profiling API.
17250
17251 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
17252
17253         * reflection.c (mono_reflection_create_runtime_class): Add support
17254         for events in dynamically generated code.
17255
17256         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
17257         not allocated.
17258
17259 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
17260
17261         * icall.c: when getting timezone info, return reasonable values if we
17262         can't get the actual data.
17263
17264 2003-06-14  Dick Porter  <dick@ximian.com>
17265
17266         * threads.c (start_wrapper): Remove the reference to the thread
17267         object in the TLS data, so the thread object can be finalized.
17268         This won't be reached if the thread threw an uncaught exception,
17269         so those thread handles will stay referenced :-( (This is due to
17270         missing support for scanning thread-specific data in the Boehm GC
17271         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
17272
17273 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
17274
17275         * reflection.c: ensure streams and tables are first allocated with
17276         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
17277
17278 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
17279
17280         * icall.c: fixed GetElementType for byrefs (bug# 44792).
17281
17282 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
17283
17284         * reflection.c (mono_reflection_create_runtime_class): Add support for
17285         properties to dynamically created classes.
17286         * reflection.c: Fix a few places where non-MonoObjects were inserted
17287         into the tokens hashtable.
17288
17289 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17290
17291         * object.c: some support to handle out of memory exceptions.
17292
17293 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
17294
17295         * marshal.c (mono_marshal_get_native_wrapper): support reference
17296         return types
17297
17298 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17299
17300         * object.h, object.c: more portability stuff from Bernie Solomon.
17301         Unexport mono_object_allocate(). Added mono_object_unbox ().
17302         Set exitcode when an unhandled exception is thrown.
17303
17304 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
17305
17306         * marshal.c (mono_marshal_get_native_wrapper): use custom
17307         marshaler for return types.
17308
17309 2003-06-10  Dick Porter  <dick@ximian.com>
17310
17311         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
17312         ip_mreq is available
17313
17314 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
17315
17316         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
17317         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
17318         by Bernie Solomon <bernard@ugsolutions.com>.
17319
17320 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
17321
17322         * gc.c (mono_gc_init): Avoid error message on shutdown when
17323         GC_DONT_GC=1 is used.
17324
17325         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
17326         New icall to return the GUID of a module.
17327
17328 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
17329
17330         * class.c: ensure instance size always includes the parent's size
17331         even whem class size is set explicitly (fixes bug#44294).
17332
17333 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17334
17335         * profiler.h, profiler.c: made the simple profiler thread-safe,
17336         get more accurate timing info. Allow the loading of an
17337         externally-developed profiler module.
17338
17339 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
17340
17341         * marshal.c (mono_marshal_get_native_wrapper): improved
17342         class/byref arguments.
17343         (mono_marshal_get_native_wrapper): better string marshaling support.
17344
17345 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
17346
17347         * class.c: ensure .pack and .size are handled correctly and
17348         simplified layout of static fields.
17349
17350 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
17351
17352         * appdomain.c
17353         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
17354
17355         * loader.c (mono_lookup_pinvoke_call): look for modules in the
17356         current directory (fix bug 44008)
17357
17358 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
17359
17360         * marshal.c (mono_marshal_get_native_wrapper): started support for
17361         custom marshalers.
17362         (mono_delegate_to_ftnptr): consider marshalling specifications
17363
17364 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
17365
17366         * reflection.c, reflection.h: emit custom marshal info.
17367
17368 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17369
17370         * object.c: free the GError.
17371         * icall.c: added CloseEvent_internal.
17372         * threads.[ch]:
17373         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
17374         call.
17375
17376 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
17377
17378         * loader.c (mono_method_get_signature): Add support for dynamic
17379         assemblies.
17380
17381 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
17382
17383         * reflection.c: fixed bug #43905.
17384
17385 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
17386
17387         * class.c, domain.c, icall.c, metadata.h, object.h: support for
17388         handling TypedReference and ArgIterator.
17389         * loader.c, loader.h: added function to get signature at call site.
17390
17391 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17392
17393         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
17394         data readonly. Buglets and warning fixes. Some MethodSpec support.
17395
17396 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
17397
17398         * class.h, class.c, object.c: remove relative numbering support.
17399
17400 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
17401
17402         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
17403         free the string, until we get a chance to fix Gtk#
17404
17405 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17406
17407         * marshal.c: revert last patch.
17408
17409 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
17410
17411         * icall.c: updates for new mono_class_vtable() not calling
17412         the type constructor anymore.
17413
17414 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17415
17416         * object.h, object.c: separate vtable creation from type
17417         initialization. Make running the .cctor thread safe.
17418
17419 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
17420
17421         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
17422
17423 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
17424
17425         * loader.c (mono_get_method): consider calling convention
17426
17427 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
17428
17429         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
17430         to return the invisible global type for a module.
17431
17432         * reflection.c (mono_image_build_metadata): Emit global fields too.
17433
17434 2003-05-20  Peter Williams  <peterw@ximian.com>
17435
17436         * loader.c (mono_lookup_internal_call): Add a few newlines.
17437
17438 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
17439
17440         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
17441         literal strings.
17442
17443         * appdomain.c (set_domain_search_path): Recalculate search path when
17444         AppDomainSetup.PrivateBinPath changes.
17445
17446         * object.c (mono_class_compute_gc_descriptor): It turns out some
17447         parts of the class libs (like System.Thread) holds pointers to
17448         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
17449         to treat native int a pointer type here.
17450         
17451 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
17452
17453         * appdomain.h, domain.c: add hashtable for jump target resolution.
17454
17455 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
17456
17457         * reflection.h reflection.c icall.c: Added new icalls 
17458         GetManifestResourceInfoInternal, GetModulesInternal and support
17459         infrastructure.
17460
17461 2003-05-16  Dick Porter  <dick@ximian.com>
17462
17463         * icall.c:
17464         * file-io.h:
17465         * file-io.c: Implement System.IO.MonoIO::GetTempPath
17466
17467 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
17468
17469         * object.c: mono_store_remote_field: little fix to previous patch.
17470
17471 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
17472
17473         * class.c: add constructors to array classes.
17474         * icall.c: special case array construction for InternalInvoke (),
17475
17476 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
17477
17478         * class.h class.c reflection.c object.c: Added support for field
17479         defaults in dynamically generated classes.
17480
17481 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
17482
17483         * reflection.c: properly encode charset for ddlimport.
17484
17485 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
17486
17487         * threads.c: allow compiling without GC.
17488
17489 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
17490
17491         * appdomain.h, object.c, object.h, threads.c, threads.h: added
17492         handling of thread static data.
17493
17494 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
17495
17496         * reflection.h, reflection.c: added mono_custom_attrs_free ().
17497
17498 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
17499
17500         * class.c (mono_array_class_get): always set the serializable flags
17501         (mono_array_class_get): always set the SEALED attribute for array types
17502
17503 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
17504
17505         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
17506         attributes (fix for bug 42021).
17507
17508 2003-05-12  Dick Porter  <dick@ximian.com>
17509
17510         * gc.c: Don't run finalizers when the finalizer thread is
17511         finishing up, because the default domain has already been
17512         destroyed.
17513
17514 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
17515
17516         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
17517         value is null, we should throw an exception.   This is slightly
17518         different than the other conventions used for the constructor.
17519
17520 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17521
17522         * socket-io.c: fixed windows build.
17523
17524 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17525
17526         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
17527
17528 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
17529
17530         * object.c (mono_string_new_wrapper): Compatibility fix for MS
17531         compilers.
17532
17533 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
17534
17535         * class.c (mono_class_layout_fields): Add experimental GC aware
17536         auto layout facility. Requires class library changes to work correctly.
17537
17538         (mono_class_setup_vtable): Avoid overriding explicit interface
17539         method implementations. Fixes iface3.exe test.
17540
17541         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
17542         object reference.
17543         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
17544         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
17545
17546         * metadata.h: Add new type classification macro which determines
17547         whenever the type holds an object reference.
17548
17549 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
17550
17551         * marshal.c (mono_marshal_get_native_wrapper): cleanups
17552
17553 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
17554
17555         * gc.c (finalizer_thread): Work around a GC bug.
17556
17557 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
17558
17559         * marshal.c (emit_struct_conv): allow unions
17560
17561         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
17562
17563 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
17564
17565         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
17566
17567 2003-05-06  Martin Baulig  <martin@ximian.com>
17568
17569         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
17570
17571 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17572
17573         * socket-io.c:
17574         (Select_internal): allow NULLs, don't create arrays if not needed.
17575         Coupled with Socket.cs changes.
17576
17577         * threadpool.c:
17578         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
17579         register a finalizer for it that will close the semaphore handle. This
17580         fixes the leak and make Lupus' test run with > 4080 loops.
17581
17582 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
17583
17584         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
17585         Jerome Laban (bug #42287)
17586
17587 2003-05-02  Martin Baulig  <martin@ximian.com>
17588
17589         * debug-mono-symfile.h
17590         (MonoSymbolFile): Moved declaration into mono-debug.h.
17591         (MonoDebugMethodJitInfo): Likewise.
17592         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
17593         argument.
17594         (_mono_debug_address_from_il_offset): Take a
17595         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
17596
17597         * mono-debug.h
17598         (MonoDebugDomainData): New struct.
17599         (mono_debug_get_domain_data): New function.
17600         (mono_debug_add_method): Take an additional `MonoDomain *'
17601         argument.
17602         (mono_debug_source_location_from_address): Likewise.
17603         (mono_debug_il_offset_from_address): Likewise.
17604         (mono_debug_address_from_il_offset): Likewise.
17605
17606 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
17607
17608         * reflection.c: one more check for null type in custom attrs.
17609
17610 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17611
17612         * reflection.c: avoid warning (comparison is always false due to limited
17613         range of data type).
17614
17615 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17616
17617         * icall.c: throw an exception in Type.GetField if the argument 'name'
17618         is NULL.
17619
17620 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
17621
17622         * reflection.c: fixed handling of enums in named arguments to custom
17623         attributes (bug #42123).
17624
17625 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
17626
17627         * reflection.c: use the right array element type and handle
17628         a null for a Type argument, too.
17629
17630 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
17631
17632         * reflection.c: handle arrays as arguments to custom attributes.
17633
17634 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
17635
17636         * reflection.c: handle a string value in a custom attr
17637         ctor that takes an object.
17638
17639 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
17640
17641         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
17642         (fix bug #42063)
17643
17644 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
17645
17646         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
17647
17648 2003-04-27  Martin Baulig  <martin@ximian.com>
17649
17650         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
17651         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
17652         MONO_DEBUGGER_EVENT_BREAKPOINT.
17653         (mono_breakpoint_trampoline_code): Removed.
17654         (mono_debugger_event_handler): The last argument is now a
17655         `guint32'.
17656         (mono_debugger_insert_breakpoint_full): Removed the
17657         `use_trampoline' argument.
17658         (mono_debugger_method_has_breakpoint): Likewise.
17659         (mono_debugger_trampoline_breakpoint_callback): Renamed to
17660         mono_debugger_breakpoint_callback(); take the method and
17661         breakpoint number as arguments.
17662
17663 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
17664
17665         * metadata.c: fix off by one when loading parameters attributes.
17666
17667 2003-04-24  Martin Baulig  <martin@ximian.com>
17668
17669         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
17670
17671 2003-04-24  Martin Baulig  <martin@ximian.com>
17672
17673         * mono-debug-debugger.c: Moved all code which interacts with the
17674         Mono Debugger here.
17675
17676         * debug-mono-symfile.c: This code now just deals with the symbol
17677         file itself, the debugger code is now in mono-debug-debugger.c.
17678
17679 2003-04-23  Martin Baulig  <martin@ximian.com>
17680
17681         * mono-debug.c (mono_debug_source_location_from_il_offset):
17682         New method; like mono_debug_source_location_from_address(), but
17683         takes an IL offset instead of a machine address.
17684
17685 2003-04-23  Martin Baulig  <martin@ximian.com>
17686
17687         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
17688         `line' field; this is now computed by the debugger.
17689
17690 2003-04-23  Martin Baulig  <martin@ximian.com>
17691
17692         * mono-debug.[ch]: New files.  This is the new debugging interface.
17693
17694         * mono-debug-debugger.[ch]: New files.  Moved all code which
17695         interacts with the Mono Debugger here.
17696
17697 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
17698
17699         * domain.c (mono_init): initialize mono_defaults.monitor_class
17700
17701 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
17702
17703         * reflection.c (method_encode_code): Add a spicy exception to help
17704         future compiler authors.
17705
17706 2003-04-21  Martin Baulig  <martin@ximian.com>
17707
17708         * icall.c
17709         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17710         Make this work with relative pathnames; g_filename_to_uri() needs
17711         an absolute filename.
17712
17713 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
17714
17715         * icall.c: Track name changes in Object and ValueType.
17716
17717 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
17718
17719         * metadata.c (mono_type_stack_size): size should be a multiple of
17720         sizeof (gpointer)
17721
17722 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17723
17724         * gc.c:
17725         (internal_domain_finalize): moved into mono_domain_finalize. No need
17726         to create another thread because the finalizers will be run in the
17727         finalizer thread.
17728         
17729         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
17730         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
17731         to be run (MS does this too).
17732
17733 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
17734
17735         * object.c (mono_class_compute_gc_descriptor): Update comment.
17736
17737         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
17738
17739         * image.h: Add synchronized wrapper cache.
17740
17741         * image.c (do_mono_image_open): Initialize cache.
17742
17743         * reflection.c (create_dynamic_mono_image): Initialize cache.
17744
17745 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17746
17747         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
17748         ves_icall_System_Buffer_ByteLengthInternal.
17749
17750 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
17751
17752         * reflection.c: setup klass->nested_in earlier. Allow
17753         a dash in the assembly name.
17754
17755 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
17756
17757         * metadata.c (mono_type_to_unmanaged): dont access
17758         type->data.klass for MONO_TYPE_OBJECT
17759         (mono_type_to_unmanaged): consider System.Delegate class
17760
17761 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
17762
17763         * class.c: just setup supertypes in the proper place instead of
17764         initializing the full element class for arrays.
17765
17766 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
17767
17768         * class.c: ensure the element class of arrays is initialized.
17769         Setup the supertype info for array classes, too.
17770
17771 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
17772
17773         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
17774
17775 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17776
17777         * Makefile.am: re-added -m option when running cygpath. This way,
17778         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
17779         separator.
17780         * mono-config.c: same codepath for locating mono config file for WIN32
17781         and the rest.
17782         * assembly.c: if mono_assembly_setrootdir is called, don't override
17783         the value set.
17784
17785 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17786
17787         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
17788         MONO_ASSEMBLIES variable.
17789
17790 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
17791
17792         * icall.c: added Assembly::GetNamespaces() icall.
17793
17794 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17795
17796         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
17797
17798 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
17799
17800         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
17801         * object.c: fixed bug in the construction of vtable for proxies
17802
17803 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
17804
17805         * object.c (mono_array_new): Mark mono_array_new as an icall.
17806
17807 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17808
17809         * class.c: fixed test for public method when overriding interfaces.
17810         Closes bug #40970.
17811
17812 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
17813
17814         * appdomain.h, domain.c: added mono_domain_foreach() to
17815         be able to access the currently loaded appdomains.
17816         * object.c: make string interning work across sppdomains.
17817         Mark some functions for use as icalls.
17818
17819 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
17820
17821         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
17822
17823         * reflection.h reflection.c: Allocate long living data using 
17824         GC_MALLOC_ATOMIC so the collector does not need to scan it.
17825
17826         * reflection.c: Double the allocation size in streams instead of
17827         increasing it, to prevent unneccesary copying on large assemblies.
17828         
17829         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
17830         creation if the assembly does not have the Run flag set.
17831
17832 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
17833
17834         * class.h: avoid the C++ keywords in header files (Jerome Laban
17835         spotted and fixed this).
17836
17837 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17838
17839         * object.c:
17840         (mono_unhandled_exception): fill in the arguments for the
17841         UnhandledException event. Only trigger that event for the default
17842         domain (as MS does).
17843
17844 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
17845
17846         * object.c: Improve typed allocation stuff based on suggestions from
17847         Paolo. Also turn it on if the GC library supports it.
17848
17849 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17850
17851         * object.c object.h class.h: Added experimental typed allocation
17852         facility using the interfaces in gc_gcj.h.
17853
17854         * os/gc_wrapper.h: Added new include files.
17855         
17856 2003-04-03  Martin Baulig  <martin@ximian.com>
17857
17858         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
17859         which is not yet enabled by default.
17860
17861         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
17862         functions.
17863         (mono_gc_lock, mono_gc_unlock): New static functions.
17864
17865         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
17866         functions; stop/start the world for the garbage collector.  This
17867         is using the windows API; we need to complete the SuspendThread()/
17868         ResumeThread() implementation in the io-layer to make this work on Unix.
17869         (mono_gc_push_all_stacks): New public function; tells the garbage
17870         collector about the stack pointers from all managed threads.
17871
17872 2003-04-03  Martin Baulig  <martin@ximian.com>
17873
17874         * object.h (MonoThread): Added `gpointer stack_ptr'.
17875
17876         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
17877
17878 2003-04-03  Martin Baulig  <martin@ximian.com>
17879
17880         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
17881
17882 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
17883
17884         * reflection.c (typebuilder_setup_fields): Initialize field.first and
17885         field.last.
17886
17887 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
17888
17889         * loader.c (mono_lookup_internal_call): Report the corlib that is
17890         out of sync.
17891
17892 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
17893
17894         * icall.c (ves_icall_type_GetTypeCode): fixed check for
17895         System.DBNull (it's class not valuetype).
17896
17897 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
17898
17899         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
17900         if the array method was already assigned a token (fixes bug#40646).
17901
17902 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
17903
17904         * reflection.c (mono_reflection_get_type): Attempt type resolve even
17905         if no assembly is given.
17906
17907 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
17908
17909         * metadata.h: Added the new tables.
17910
17911         * row-indexes.h: Added definitions for new tables.
17912
17913         * metadata.c: Add schemas for new tables, and add support for
17914         computing the sizes of them.
17915
17916         * class.c: Update for handling the new type cases.
17917
17918 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
17919
17920         * metadata.h (MONO_TYPE_IS_VOID): new macro
17921
17922 2003-03-31  Martin Baulig  <martin@ximian.com>
17923
17924         * threads.h (MonoThreadCallbacks): Added `thread_created'.
17925
17926         * threads.c (mono_thread_new_init): Call `thread_created' in the
17927         mono_thread_callbacks.
17928
17929 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
17930
17931         * loader.h: added marshalbyrefobject_class to mono_defaults
17932         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
17933         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
17934           generation of output parameters.
17935           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
17936         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
17937           contextbound and the target object belongs to the context of the caller.
17938         * object.h: added context and unwrapped_server variables in MonoRealProxy.
17939         * object.c: Implemented support for interfaces and abstract classes
17940           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
17941           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
17942
17943 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
17944
17945         * class.h class.c (mono_class_is_subclass_of): New function.
17946         
17947         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
17948         routines for most common case (calls from ArrayList::ToArray).
17949
17950         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
17951         routine so programs which call Environment::Exit() can be profiled.
17952
17953         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
17954         Added MONO_ARCH_SAVE_REGS.
17955
17956         * icall.c (ves_icall_type_is_subtype_of): Use new function.
17957
17958 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
17959
17960         * blob.h: Add a couple of new MonoType types definitions.
17961
17962         * tabledefs.h: Add a couple of new call convs.
17963
17964 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
17965
17966         * reflection.h (MonoReflectionDynamicAssembly): track changes in
17967         the layout of the class.
17968
17969         * reflection.c (alloc_table): double the size on overflow to avoid
17970         unnecessary copying.
17971
17972         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
17973         avoid filling out metadata tables and blobs. Also set mb->ilgen to
17974         null so it can be garbage collected.
17975         
17976 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
17977
17978         * reflection.c (mono_reflection_get_type): Return the resolved type
17979         only if it is in the assembly we searched.
17980
17981         * reflection.c (ensure_runtime_vtable): Initialize method slots.
17982
17983         * class.c (mono_class_setup_vtable): Set the slot of the overriding
17984         method.
17985
17986 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17987
17988         * appdomain.c:
17989         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
17990         the right one is 'file:///blah', but MS allows it.
17991         * assembly.c:
17992         (mono_assembly_open): allow 'file://blah'
17993
17994         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
17995
17996 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
17997
17998         * socket-io.c: fixes bug #40310.
17999
18000 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
18001
18002         * reflection.c (mono_reflection_parse_type): handle deeply nested
18003         types correctly.
18004
18005         * reflection.c (mono_image_create_token): Use unique token values
18006         since they will be put into a hash table.
18007
18008         * class.c (mono_class_setup_vtable): If a method occurs in more than
18009         one place in the vtable, and it gets overriden, then change the
18010         other occurances too.
18011
18012         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
18013         object as return type.
18014
18015 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18016
18017         * icall.c: Deleted "ToString" implementation for double and float
18018         because they are full implemented in managed code.
18019
18020 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18021
18022         * reflection.c, reflection.h: implemented and exported functions
18023         to retrieve info about custom attributes.
18024
18025 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18026
18027         * appdomain.c: moved Uri handling to assembly.c
18028         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
18029         work when using a file Uri in *nix and windows.
18030
18031         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
18032         GetReferencedAssemblies.
18033
18034 2003-03-18  Dick Porter  <dick@ximian.com>
18035
18036         * icall.c: Rename a couple of internal calls
18037
18038         * threads.c: Set the thread state to Stopped when a thread exits.
18039         Fixes bug 39377.
18040
18041 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
18042
18043         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
18044         New icall.
18045
18046         * object.c (mono_class_vtable): fix warning.
18047
18048 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
18049
18050         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
18051
18052         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
18053         memory.
18054         (method_encode_clauses): Create exception info structures in the right
18055         order.
18056         (mono_reflection_setup_internal_class): Initialize supertypes field.
18057
18058         * class.c object.c: Handle interfaces which implement other interfaces 
18059         correctly.
18060
18061         * class.h class.c: Move the supertypes array initialization code into 
18062         a separate function so it can be used for dynamic types too. Also call
18063         it earlier, in mono_class_init(), since it can be used before the
18064         type is initialized.
18065
18066 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18067
18068         * Makefile.am:
18069         * assembly.c:
18070         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
18071
18072         * appdomain.c:
18073         * appdomain.h:
18074         * marshal.c:
18075         * object.c: remove warnings.
18076
18077 2003-03-13  Martin Baulig  <martin@ximian.com>
18078
18079         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
18080         (MonoDebugLexicalBlockEntry): New types.
18081
18082         * debug-mono-symfile.c
18083         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
18084
18085 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18086
18087         * process.c: ret can be any non-zero value accroding to MS doc.
18088
18089 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
18090
18091         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
18092         fixing a warning for a miss-used prototype, would have cause
18093         random memory corruption.
18094
18095 2003-03-07  Martin Baulig  <martin@ximian.com>
18096
18097         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
18098         getting really annoying ....
18099
18100 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
18101
18102         * reflection.c (fixup_method): added support for array methods.
18103
18104 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
18105
18106         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
18107         (pointed out by Michael Adams).
18108
18109 2003-03-04  Dick Porter  <dick@ximian.com>
18110
18111         * icall.c: Temporarily reverted the Double and Single ToString()
18112         change, because it broke nunit.
18113
18114 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
18115
18116         * object.h, threads.h: make include files compatible with C++
18117         (patch by Jerome Laban <jlaban@wanadoo.fr>).
18118
18119 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18120
18121         * icall.c: Erased ToString helper functions for Double and Single.
18122         Now, that implementations ar all in managed code (Double and Single
18123         Formatters).
18124
18125 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
18126
18127         * appdomain.c: Added method for initializing the default context of
18128         a domain. Added internal call for getting the default context.
18129         * appdomain.h: Added context variable in MonoDomain struct.
18130         * domain.c: mono_domain_set also sets the default context of the domain
18131         * icall.c: Mapped internal method InternalGetDefaultContext.
18132         * object.c: mono_object_get_virtual_method returns always a remoting
18133         wrapper if the object is a transparent proxy.
18134         mono_runtime_invoke_array: when creating an object by calling the
18135         constructor, if the created object is a proxy, then the constructor should
18136         be called using the a remoting wrapper.
18137
18138 2003-03-03  Dick Porter  <dick@ximian.com>
18139
18140         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
18141         variable so it compiles on solaris.  Problem spotted by
18142         Christopher Taylor <ct@cs.clemson.edu>
18143
18144 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18145
18146         * appdomain.c:
18147         (get_info_from_assembly_name): don't leak value.
18148
18149         * icall.c:
18150         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
18151         result.
18152
18153 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
18154
18155         * assembly.c: export mono_image_load_references ().
18156         * class.c: handle function pointers. mono_class_from_name() now
18157         supports nested type names directly.
18158
18159 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
18160
18161         * reflection.h reflection.c: Encode already created dynamic methods 
18162         and fields correctly as a DEF instead of a REF.
18163
18164         * reflection.c: Get rid of the force_ref argument to 
18165         mono_image_typedef_or_ref since it was wrong in the first place.
18166
18167         * string-icalls.c: add error checking to string constructors according
18168         to the MSDN docs.
18169
18170         * reflection.c: Emit types in the order their TypeBuilders were 
18171         created. Previously, a new table index was assigned to each type before
18172         the tables were emitted. This was wrong because the signature blob
18173         might already refer to a type by its original table index.
18174
18175 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
18176
18177         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
18178         change.
18179         
18180 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18181
18182         * Makefile.am: make assemblies dir have \ instead of / on windows.
18183
18184 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
18185
18186         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
18187         iterate over the NESTEDCLASS table using a linear search since the
18188         table is not guaranteed to be sorted by the secondary key.
18189
18190         * class.c (mono_class_create_from_typedef): fixed up call to
18191         mono_metadata_nesting_typedef.
18192         
18193 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
18194
18195         * marshal.c (mono_string_to_byvalstr): clear the memory as
18196         suggested by Jerome Laban <jlaban@wanadoo.fr>
18197
18198 2003-02-26  Dick Porter  <dick@ximian.com>
18199
18200         * process.c: Cope with padding in .rsrc blocks
18201
18202 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18203
18204         * metadata.h: reverted the filter_len change, it breaks reflection
18205         
18206 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
18207
18208         * metadata.h: added a new field to store the filter_len
18209         
18210
18211 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
18212
18213         * reflection.c: handle custom attributes for types and members
18214         created with Reflection.Emit (bug#38422).
18215
18216 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
18217
18218         * reflection.c: define RTSpecialName automatically for constructors for
18219         compatibility with MS.NET.
18220
18221         * reflection.c (mono_reflection_create_runtime_class): initialize
18222         nested_in field of dynamically created classes.
18223
18224 2003-02-22  Martin Baulig  <martin@ximian.com>
18225
18226         * debug-mono-symfile.h: Incremented version number.
18227
18228 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18229
18230         * object.h icall.c process.c: fix warnings.
18231
18232 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
18233
18234         * appdomain.h appdomain.c:
18235         (mono_domain_try_type_resolve): split the 
18236         name_or_tb argument into a name and a tb argument.
18237         (mono_domain_has_type_resolve): new function to check whenever the
18238         application has registered a TypeResolve event handler.
18239         
18240         * icall.c reflection.h reflection.c: move the type resolve logic into
18241         mono_reflection_get_type () so it will be invoked when 
18242         Assembly::GetType () is called.
18243
18244         * reflection.c:
18245         (mono_reflection_get_type): renamed to get_type_internal.
18246         (mono_reflection_get_type): fixed type name generation so it works 
18247         for nested types too.
18248         (mono_reflection_get_type): call has_type_resolve () to avoid the 
18249         costly type name generation if there is no resolve event handler.
18250
18251 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18252
18253         * class.c, image.c: load exported types from file references.
18254
18255 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
18256
18257         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
18258           used to cache the managed methods used to create proxies and make 
18259           remote invocation of methods.
18260         * class.h: Added in MonoVTable a flag to indicate that a class needs 
18261           to be remotely created.
18262         * object.c: Modified the method mono_class_vtable(). It now initializes 
18263           the remote flag of the vtable. Modified mono_object_new_specific(), 
18264           so now it checks the remote flag.
18265         * icall.c: Added a couple of internal methods, one for enabling instance 
18266           creation interception for a type, and one for creating objects bypassing
18267           the remote check.
18268
18269 2003-02-18  Martin Baulig  <martin@ximian.com>
18270
18271         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
18272         New interncall to get a method's metadata token.
18273
18274         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
18275         New interncall for the debugger.
18276
18277 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
18278
18279         * class.c (mono_class_setup_vtable): allocate supertype array
18280
18281 2003-02-18  Martin Baulig  <martin@ximian.com>
18282
18283         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
18284
18285 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18286
18287         * reflection.c:
18288         (assembly_name_to_aname): jump over unknown properties (i've found
18289         something like: 'type, assembly, version=xxx, custom=null, public...',
18290         so now will ignore custom=null and still get the rest of the values).
18291
18292 2003-02-17  Dick Porter  <dick@ximian.com>
18293
18294         * threads.c: Have Thread.Start() wait for a semaphore to signal
18295         that the thread has set up all its local data.  This fixes bug
18296         34323, where Abort() raced the new thread's TLS data.
18297
18298         Also removes the handle_store() call from start_wrapper, because
18299         threads are now always created suspended and there is no longer a
18300         race between the parent and child threads to store the info.
18301
18302 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
18303
18304         * image.c: explain the #- heap issue in a message, hopefully
18305         avoiding FAQs on mono-list.
18306
18307 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18308
18309         * icall.c:
18310         (GetEntryAssembly): if the domain has not invoked
18311         AppDomain.ExecuteAssembly yet, return the assembly of the default
18312         AppDomain.
18313
18314 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
18315
18316         * class.c (mono_ldtoken): make it work in dynamic assemblies.
18317
18318 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
18319
18320         * metadata.c, reflection.c: simple speedup to type hash
18321         and equals code.
18322
18323 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
18324
18325         * image.c, image.h, class.c, assembly.c: move module loading
18326         to MonoImage. When loading metadata, consider alignemnet from
18327         the start of metadata, not from the metadata address in memory.
18328
18329 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
18330
18331         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
18332         AssemblyBuilder objects. Factored out custom attribute creation into
18333         a separate function.
18334         (create_custom_attr): new function to create custom attributes.
18335
18336 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
18337
18338         * Makefile.am: Got tired of typing the full pathname to pedump.
18339         Until there is another option, am installing this.
18340
18341 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
18342
18343         * class.c (class_compute_field_layout): always set field->parent 
18344         (mono_ldtoken): use mono_defaults.fieldhandle_class;
18345
18346 2003-02-11  Dick Porter  <dick@ximian.com>
18347
18348         * threads-types.h:
18349         * monitor.c: Rewrote Monitor, making lock much faster and
18350         Pulse/Wait work as specified.  Also uses much fewer handles, and only
18351         creates them as needed.
18352
18353         * exception.c: Added SynchronizationLockException
18354
18355         * threads.c: Deleted old Monitor implementation.  The new one is
18356         in a new file.
18357
18358 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
18359
18360         * class.c: handled TypedReference type code. Set the correct size for
18361         class data. Setup interface_offsets for interface classes, too.
18362
18363 2003-02-09  Martin Baulig  <martin@ximian.com>
18364
18365         * debug-mono-symfile.h: Reflect latest symbol writer changes.
18366
18367 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
18368
18369         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
18370         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
18371         * object.c: fixed mono_object_get_virtual_method () for interfaces.
18372         * verify.c: check for code that runs after the end of the method.
18373
18374 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
18375
18376         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
18377         "System.Math::Round2".
18378         * sysmath.h: Added Floor, Round and Round2 definitions.
18379         * sysmath.c: Modified certain functions that were not 100% compliant
18380         with MS.NET (math precision) and added the implementation of Floor,
18381         Round and Round2.
18382
18383 2003-02-07  Martin Baulig  <martin@ximian.com>
18384
18385         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
18386
18387 2003-02-07  Martin Baulig  <martin@ximian.com>
18388
18389         * debug-mono-symfile.c: Reflected latest symwriter changes.
18390         (mono_debug_create_mono_symbol_file): Removed.
18391         (mono_debug_open_mono_symbol_file): Take an argument which
18392         specifies whether to create a dynamic symbol file.
18393
18394 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
18395
18396         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
18397
18398 2003-02-05  Martin Baulig  <martin@ximian.com>
18399
18400         * reflection.c (mono_image_build_metadata): Make this public,
18401         protect it against being called multiple times, don't create
18402         resources and don't build the compressed metadata here.
18403         (mono_image_create_pefile): Do this here.
18404
18405         * icall.c
18406         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
18407
18408 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18409
18410         * socket-io.c: fixed bug #36322.
18411
18412 2003-02-06  Piers Haken <piersh@friskit.com>
18413
18414         * appdomain.[ch]:
18415         * class.h:
18416         * debug-mono-symfile.c:
18417         * icall.c:
18418         * loader.c:
18419         * mono-config.c:
18420         * monosn.c:
18421         * reflection.c:
18422         * socket-io.c: warning cleanups
18423
18424 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
18425
18426         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
18427         function. works like remoting invoke, but does a check for the Proxy first.
18428
18429 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
18430
18431         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
18432
18433 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
18434
18435         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
18436         array of pointers.
18437         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
18438         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
18439
18440         * object.c (mono_store_remote_field_new): used by the new jit
18441         instead of mono_store_remote_field
18442         (mono_load_remote_field_new): used by the new jit
18443         instead of mono_load_remote_field
18444
18445 2003-02-05  Patrik Torstensson
18446
18447         * appdomain.c: changed unload to take the domain id instead
18448         of domain
18449         
18450         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
18451
18452
18453 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18454
18455         * appdomain.c: don't look for assemblies in ApplicationBase if
18456         PrivateBinPathProbe is set.
18457
18458 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18459
18460         * object.c: make the first argument in main_args contain the absolute
18461         path to the assembly. Fixes bug #37511.
18462
18463 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18464
18465         * icall.c: get correct UTC offset for countries not using daylight
18466         time saving. Fixes bug #30030.
18467
18468 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18469
18470         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
18471         and 1 are the family).
18472
18473 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
18474
18475         * icall.c (ves_icall_InternalExecute): removed wrong assertion
18476
18477         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
18478
18479 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
18480
18481         * reflection.c: added support for SignatureHelper tokens, which is
18482         needed by the Calli opcode.
18483
18484         * reflection.h: track changes to SignatureHelper class.
18485
18486         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
18487
18488 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18489
18490         * appdomain.c: fixed loading assemblies from PrivateBinPath.
18491
18492 2003-02-03  Patrik Torstensson
18493         * appdomain.[c|h], domain.c : 
18494          - Added support for getting a domain via domain id
18495          - Support for setting and getting domain from System.AppDomain 
18496            (used in cross appdomain channel)
18497          - Added support for get/set for a MonoAppContext on a thread 
18498            (Context class in System.Runtime.Remoting.Contexts),
18499          - Removed hack in Get/SetData and ExecuteAssembly.
18500         
18501         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
18502         the managed world to get control when a proxy is created.
18503
18504         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
18505         
18506 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
18507
18508         * icall.c
18509         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
18510         Populate the codebase field as well.
18511
18512 2003-02-02  Martin Baulig  <martin@ximian.com>
18513
18514         * debug-mono-symfile.c
18515         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
18516         (mono_debug_symfile_add_method): Allow interncalls.
18517
18518 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18519
18520         * icall.c: throw parse exception if strtod fails or the string is empty.
18521
18522 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
18523
18524         * marshal.c: handle object type separately from defined
18525         class types.
18526
18527 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
18528
18529         * marshal.c: handle NATIVE_LPSTR for strings when it's
18530         explicitly specified.
18531
18532 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
18533
18534         * reflection.c, reflection.h, icall.c: setup the reflection
18535         handle cache for ModuleBuilders and AssemblyBuilders.
18536
18537 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
18538
18539         * reflection.c (reflection_methodbuilder_to_mono_method): set
18540         pinvoke flag
18541
18542 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18543
18544         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
18545
18546 2003-01-29  Dick Porter  <dick@ximian.com>
18547
18548         * threads.c: No need for the fake_thread kludge now that Thread
18549         doesn't run a class constructor
18550         
18551 2003-01-29  Dick Porter  <dick@ximian.com>
18552
18553         * threads.c: Use g_direct_hash instead of the rather bogus
18554         g_int_hash
18555
18556 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
18557
18558         * marshal.c (mono_marshal_get_native_wrapper): add check for null
18559         (fix pinvoke12.exe)
18560         (mono_marshal_get_struct_to_ptr): generate valid IL code
18561         (mono_marshal_get_ptr_to_struct): generate valid IL code
18562         (*): correctly set sig->pinvoke, we need to memdup the signature
18563         to do that
18564
18565 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
18566
18567         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
18568         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
18569
18570 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18571
18572         * profiler.c: provide more callers information.
18573
18574 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
18575
18576         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
18577
18578         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
18579
18580         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
18581
18582 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18583
18584         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
18585         exception instead of going into an infinite loop on dates which it 
18586         can't yet handle.
18587
18588         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
18589         out-of-range exception if needed.
18590
18591         * class.c (mono_class_setup_vtable): allow a virtual method to provide
18592         an implementation for an interface method and to override an inherited
18593         method at the same time. 
18594         Imagine a scenario when a virtual method is used to override a
18595         virtual abstract method in a parent class, and this same method 
18596         provides an implementation for an method inherited from an interface. 
18597         In this case, the interface resolution code will set im->slot, which 
18598         means that the virtual method override pass will skip this method 
18599         which means a pointer to the abstract method inherited from the parent
18600         will remain in the vtable of this non-abstract class.
18601
18602         * class.c: (mono_class_setup_vtable): continue search for a real 
18603         method if only an abstract method is found.     
18604
18605 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
18606
18607         * reflection.c: add size to encoding for ByValStr and ByValArray
18608         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
18609
18610 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18611
18612         * class.c (mono_class_setup_vtable): pass the override info as an
18613         argument.
18614
18615         * class.c (mono_class_setup_vtable): set the slot of overriding methods
18616         correctly.
18617         
18618         * reflection.c (ensure_runtime_vtable); add support for method 
18619         overrides.
18620         
18621 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18622
18623         * reflection.c (resolution_scope_from_image): Hack to work to work with
18624         dynamic assemblies.
18625
18626         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
18627         added a 'force_ref' argument to force this function to allways return 
18628         a TypeRef. This is needed by mono_image_get_memberref_token ().
18629         
18630 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18631
18632         * reflection.c (mono_image_get_type_info): interfaces really don't have
18633         a parent.
18634
18635         * reflection.c (mono_image_basic_init): fill out missing fields of
18636         image structure.
18637
18638         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
18639         dynamic assemblies. This is required so dynamic assemblies show up in
18640         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
18641         Type::GetType() etc. This is consistent with MS behaviour.
18642
18643         * image.c image.h reflection.c: add newly created classes to the name 
18644         cache so mono_class_get () will find them.      
18645
18646 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
18647
18648         First part of changes to get IKVM.NET running under mono.
18649         
18650         * appdomain.h, appdomain.c: added new function 
18651         mono_domain_try_type_resolve() which will emit TypeResolve events. 
18652         This function will call AppDomain::DoTypeResolve to do the actual work.
18653
18654         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
18655         moved existing code dealing with dynamic tokens to a new function 
18656         called mono_reflection_lookup_dynamic_token (). This function will 
18657         raise TypeResolve events when appropriate. Since reflection.c is not 
18658         part of libmetadata, a new hook function called 
18659         mono_lookup_dynamic_token() is added to class.c which will call this.
18660
18661         * assembly.h assembly.c: make the invoke_load_hook function public,
18662         so it can be called for dynamic assemblies.
18663
18664         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
18665
18666         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
18667         type isn't found.
18668
18669         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
18670         MonoGHashTable, since it contains pointers to objects which the GC 
18671         needs to track.
18672
18673         * assembly.c (search_loaded): remove unused variable.
18674         
18675 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
18676
18677         * object.c: fixed issue exposed by gcc-generated IL programs
18678         that use RVA data for pointers.
18679
18680 2003-01-25  Martin Baulig  <martin@ximian.com>
18681
18682         * threads.c (start_wrapper): Moved the initialization of
18683         `start_func' above the mono_new_thread_init() call to which we
18684         pass it as argument.
18685
18686 2003-01-24  Martin Baulig  <martin@ximian.com>
18687
18688         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
18689         the MonoThread pointer.
18690
18691 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
18692
18693         * icall.c: Rename `PowImpl' to Pow.
18694
18695 2003-01-23  Dick Porter  <dick@ximian.com>
18696
18697         * threads.c (start_wrapper): Create a Thread object if needed, so
18698         the Main() thread can do the class initialisation in a subthread
18699         that has been set up to allow managed code execution.
18700
18701         Pass the thread ID instead of the MonoThread pointer to the thread
18702         start and attach callbacks.  This change is required, because the
18703         jit thread start callback must be called _before_ the Thread
18704         object can be created.
18705         
18706         (mono_thread_init): Removed much object creation code that is no
18707         longer needed.  No managed code is called from here now.
18708
18709         * object.c (mono_runtime_exec_managed_code): Create a subthread
18710         for Main, and call back to the runtime to use it.
18711         Set the exit code when Main exits.
18712
18713         * gc.c: Make sure domain finalisation happens in a subthread.
18714         Re-enable threaded GC, fixing bug 31333 (again).
18715
18716         * environment.c: System.Environment internall calls (so far just
18717         ExitCode is here, the others are still in icall.c)
18718
18719         * appdomain.c (mono_runtime_cleanup): All threads running managed
18720         code should have finished before mono_runtime_cleanup() is
18721         reached, so no need to clean up threads.
18722
18723 2003-01-22  Martin Baulig  <martin@ximian.com>
18724
18725         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
18726         `gpointer func' arguments.      
18727         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
18728         but added `MonoThread *thread' argument.
18729         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
18730
18731         * threads.c (mono_new_thread_init): Added `gpointer func' argument
18732         and pass it to the mono_thread_start_cb callback.
18733         (mono_install_thread_callbacks): New public function to install a
18734         set of callbacks which are set by the debugger.
18735         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
18736
18737 2003-01-22  Martin Baulig  <martin@ximian.com>
18738
18739         * Makefile.am: Install debug-mono-symfile.h.
18740
18741 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
18742
18743         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
18744
18745 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
18746
18747         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
18748         * class.c (mono_ptr_class_get): correctly set access levels of pointers
18749         (mono_array_class_get): correctly set access levels of arrays
18750
18751 2003-01-20      Patrik Torstensson
18752         * image.h (MonoAssemblyName): changed major, minor, build, revision
18753         from signed to unsigned.
18754
18755 2003-01-20  sean kasun <skasun@azstarnet.com>
18756
18757         * reflection.c (load_cattr_value): Now this handles
18758         MONO_TYPE_SZARRAY.  Fixes bug #35629
18759
18760 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
18761
18762         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
18763         integer value
18764
18765 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18766
18767         * decimal.c: fixed bug #26056.
18768
18769 2003-01-17  Martin Baulig  <martin@ximian.com>
18770
18771         * gc.c: Raise an ExecutionEngineException instead of using g_error().
18772
18773 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18774
18775         * exception.[ch]:
18776         (mono_get_exception_type_initialization): new function.
18777
18778         * object.c: throw a TypeInitializationException when an exception is
18779         thrown invoking the class constructor.
18780
18781 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18782
18783         * reflection.c: fixed attribute reading.
18784
18785 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18786
18787         * icall.c:
18788         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
18789         provided, look for the type in the calling assembly and then in
18790         mscorlib; if the assembly name is provided, only try that one.
18791
18792 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
18793
18794         * object.c: register the vtable before there is a chance it's
18795         queried again recursively.
18796
18797 2003-01-13  Duncan Mak  <duncan@ximian.com>
18798
18799         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
18800         gc-internal.h. 
18801         
18802 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
18803
18804         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
18805
18806 2003-01-11  Martin Baulig  <martin@ximian.com>
18807
18808         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
18809         this to 20 for the release.
18810
18811 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
18812
18813         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
18814
18815         * loader.c (mono_method_get_marshal_info): bug fix
18816
18817         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
18818         structures with explicit layout
18819
18820 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18821
18822         * profiler.c: made the output more readable (and sorted). 
18823         Added caller information for the allocation profiler.
18824
18825 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
18826
18827         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
18828
18829 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18830
18831         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
18832         to get value types.
18833         
18834 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
18835
18836         * object.c, profiler.h, profiler.c, profiler-private.h:
18837         Added object allocation profiler.
18838
18839 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
18840
18841         * reflection.h, reflection.c: handle global methods.
18842         Compress blob entries.
18843
18844 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
18845
18846         * marshal.c: fix compilation.
18847
18848 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
18849
18850         * loader.c (mono_method_get_marshal_info): impl.
18851
18852         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
18853
18854 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18855
18856         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
18857         for reference types.
18858
18859 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
18860
18861         * loader.c: fixed off by one error in loaded parameter names.
18862
18863 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
18864
18865         * marshal.c (mono_marshal_get_icall_wrapper): like
18866         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
18867         instead of a MonoMethod.
18868
18869 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18870
18871         * decimal.c: fixed bug #36537.
18872
18873 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
18874
18875         * marshal.c: throw a missing method exception if a
18876         P/Invoke method is not found.
18877
18878 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
18879
18880         * icall.c: allow a null this for constructors.
18881
18882 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
18883
18884         * icall.c: raise the proper exceptions if the arguments to the
18885         internal Invoke are incorrect.
18886
18887 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
18888
18889         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
18890
18891 2003-01-03  Martin Baulig  <martin@ximian.com>
18892
18893         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18894
18895 2002-12-31  Martin Baulig  <martin@ximian.com>
18896
18897         * debug-mono-symfile.c: Completely rewrote the type section.
18898         Instead of using individual malloc()ed fields, we use one big
18899         continuous memory area and offsets into this area.
18900         See the comments in the source code for details.
18901
18902 2002-12-30  Martin Baulig  <martin@ximian.com>
18903
18904         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
18905
18906 2002-12-30  Martin Baulig  <martin@ximian.com>
18907
18908         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
18909         line number table in this data blob instead of using an external
18910         pointer.
18911
18912 2002-12-28  Martin Baulig  <martin@ximian.com>
18913
18914         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
18915
18916 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
18917
18918         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
18919         as a boxed return type.
18920
18921 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
18922
18923         * appdomain.c
18924         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
18925         g_build_filename to properly get separators on the filename created.
18926
18927         * object.h: Small change, introduce MonoMarshalByRefObject to
18928         track the layout of that structure in the C# universe as we make
18929         changes there.
18930
18931 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
18932
18933         * object.c: removed assert to allow static fields on interfaces.
18934         * loader.c: a TypeSpec may be used for any type, not just arrays.
18935
18936 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18937
18938         * class.c, class.h: added mono_class_array_element_size ().
18939         Ignore static methods in interfaces.
18940
18941 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18942
18943         * threads.c: fixed the build under cygwin.
18944
18945 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18946
18947         * reflection.c: handle nullref constants. Allocate keys for
18948         reflection handles with the GC.
18949
18950 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18951
18952         * threads.c, threads.h: added mono_thread_get_abort_signal()
18953         to get a suitable signal for thread abort.
18954
18955 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18956
18957         * metadata.c: fix handling of ExportedType table.
18958
18959 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18960
18961         * icall.c: added WriteWindowsDebugString internal call.
18962
18963 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18964
18965         * reflection.h: added fields to match C# implementation.
18966
18967 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18968
18969         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
18970
18971 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
18972
18973         * gc.h, gc-internal.h: Rename header for GC internal calls to
18974         gc-internal.h from gc.h as to not clash with Boehm GC having its
18975         header installed as <gc.h> in outside include paths.
18976         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
18977         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
18978
18979 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18980
18981         * icall.c: assign minor, build and revision in FillName.
18982
18983 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
18984
18985         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
18986         Added support for running code generated by Reflection.Emit.
18987
18988 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18989
18990         * appdomain.c: check for NULL argument in LoadFrom.
18991
18992 2002-12-10  Dick Porter  <dick@ximian.com>
18993
18994         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
18995
18996 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18997
18998         * appdomain.c: fix buglet when building exe file name.  Handle full
18999         assembly name (needed after latest changes to AssemblyName).
19000         * image.c:
19001         (mono_image_close): free some hashtables.
19002
19003 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
19004
19005         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
19006         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
19007         on some systems (redhat 7.3) 
19008
19009 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
19010
19011         * threads.c: delete the critical section of a sync block,
19012         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
19013
19014 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
19015
19016         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
19017
19018 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19019
19020         * appdomain.[ch]: handle the assembly preload event to try loading the
19021         assemblies using the paths we have in the current domain.
19022
19023         * assembly.[ch]: created an assembly preload hook that is called to try
19024         loading the assembly by other means that the ones provided here.
19025
19026         * domain.c: initialize the domain search path.
19027
19028         From now on, assemblies (TODO: except corlib and System) are loaded
19029         according to these rules when using mono_assembly_load ():
19030
19031                 1. It tries to load the assembly from the ApplicationBase
19032                 of the current domain appending .dll and .exe (TODO: have to
19033                 try loading from name/name.dll and name/name.exe).
19034
19035                 2. It tries the search path specified in PrivateBinPath for the
19036                 current domain (if any).
19037
19038                 3. Previous behavior.
19039
19040 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
19041
19042         * icall.c: implemented GetInterfaceMap() related icall.
19043         * domain.c, loader.h: load MethodInfo in mono_defaults.
19044
19045 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
19046
19047         * gc.c: disable the finalizer thread for now, untill all the issues
19048         with it are resolved.
19049
19050 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
19051
19052         * string-icalls.c: handle embedded nulls in string ctor when the
19053         length is specified.
19054
19055 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
19056
19057         * class.c: look for explicit interface implementation in parent
19058         classes, too.
19059
19060 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
19061
19062         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
19063
19064 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
19065
19066         * gc.c: protect handles with a critical section.
19067
19068 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19069
19070         * icall.c:
19071         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
19072         parameters. If no assembly specified, try getting the type from all
19073         the assemblies in the current domain, else, load the assembly and get
19074         the type from it.
19075
19076 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19077
19078         * marshal.c: applied patch from Aleksey Demakov that fixes
19079         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
19080
19081 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19082
19083         * icall.c: fixed get_location.
19084
19085 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
19086
19087         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
19088         declarations to make it work with older gcc. 
19089
19090         * loader.c (mono_get_method): set signature->pinvoke for native calls
19091
19092 2002-11-20  Dick Porter  <dick@ximian.com>
19093
19094         * threads.c (mono_thread_init): Set the main thread's handle
19095
19096 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
19097
19098         * gc.c: allow compilation without GC support. Changed to match the
19099         mono coding style.
19100
19101 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
19102
19103         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
19104
19105 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
19106
19107         * reflection.c: set a public key token on the core assemblies.
19108
19109 2002-11-18  Dick Porter  <dick@ximian.com>
19110
19111         * threads.c: Split out some thread initialisation so that other
19112         files can set the start callback function.
19113
19114         * gc.c: Run finalisers in a separate thread, to avoid stack
19115         overflow.  Fixes bug 31333.
19116
19117         * appdomain.c: Set up GC finalisation thread.
19118
19119         * reflection.c: 
19120         * object.c: 
19121         * domain.c: Use gc.h macros for GC_malloc
19122         
19123 2002-11-15  Dick Porter  <dick@ximian.com>
19124
19125         * threadpool.c: 
19126         * threads.c:
19127         * appdomain.c: Removed mono_runtime_init_with_attach(),
19128         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
19129         merging the extra parameter with the existing function.  Removed
19130         unneeded code in mono_thread_attach().
19131
19132 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
19133
19134         * image.c (mono_image_loaded_by_guid): a method to get loaded
19135         images by guid. 
19136         (load_metadata_ptrs): we store the guid as string.
19137
19138 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
19139
19140         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
19141
19142         * metadata.c (mono_guid_to_string): imported method form Zoltan
19143         Varga (slightly modified)
19144
19145         * assembly.c (mono_assembly_open): load precompiled code
19146
19147         * loader.h (MonoMethod): we store the method token for use in the
19148         aot compiler. 
19149
19150 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19151
19152         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
19153         the hook function called when an assembly is loaded.
19154         
19155         * domain.c: Modified file.
19156         (mono_domain_assembly_load): removed hash table insertion of assemblies.
19157
19158         Fixes bug #33196.
19159
19160 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
19161
19162         * reflection.c: Map PEFileKind to the value expected by the WinNT
19163         image loader. 
19164
19165 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19166
19167         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
19168         Read until the buffer is filled completely.
19169
19170 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19171
19172         * icall.c: implemented MonoType.InternalGetEvent ().
19173
19174 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19175
19176         * appdomain.c: implemented InitAppDomainSetup. Delayed
19177         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
19178         the entry_assembly.
19179
19180         * assembly.c: base_dir is now an absolute path ending with
19181         G_DIR_SEPARATOR.
19182
19183         * icall.c: modified get_location according to the above changes.
19184
19185         * object.c: init AppDomain.SetupInformation for the default domain after
19186         we have the entry assembly.
19187
19188         * domain.c: when unloading a domain, setup = NULL.
19189
19190 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
19191
19192         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
19193
19194 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
19195
19196         * object.h, object.c: introduced mono_object_get_virtual_method ()
19197         to lookup the method invoked on an object when a callvirt is done on
19198         a method.
19199         * icall.c: make MethodInfo::Invoke() always do a virtual call.
19200
19201 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19202
19203         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
19204         current domain when loaded an assembly and failed to load it.
19205
19206         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
19207
19208 2002-10-31  Dick Porter  <dick@ximian.com>
19209
19210         * icall.c: 
19211         * file-io.h: 
19212         * file-io.c: Return the error status in a parameter, as the
19213         GetLastError() value has long since been blown away if we try and
19214         look it up in a subsequent internal call invocation.  Delete the
19215         GetLastError() internal call, because it's useless.
19216
19217 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
19218
19219         * class.[ch]: added cast_class to fix bug 29517
19220
19221 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
19222
19223         * marshal.c: create valid IL code in the filter clause:
19224         the new JIT is less forgiving:-)
19225
19226 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19227
19228         * icall.c: removed get_property internal call.
19229
19230 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
19231
19232         * appdomain.h domain.c: Added an ID to appdomains.
19233         
19234         * threads.c threads.h icall.c: Implement icall
19235         Thread:GetDomainID(), and remove unused icall 
19236         CurrentThreadDomain_internal.
19237
19238 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19239
19240         * icall.c: Don't recurse through the base types in GetConstructor.
19241         Fixes bug #32063. 
19242
19243 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19244
19245         * mempool.h, mempool.c: added mono_mempool_empty() and
19246         mono_mempool_stats().
19247
19248 2002-10-23  Dick Porter  <dick@ximian.com>
19249
19250         * file-io.c: 
19251         * file-io.h: 
19252         * icall.c: Added MonoIO.GetFileType internal call
19253
19254 2002-10-17  Dick Porter  <dick@ximian.com>
19255
19256         * appdomain.c (mono_runtime_cleanup): Don't signal the async
19257         delegate semaphore before waiting for all threads to finish,
19258         because new threads can also call async delegates.  Fixes bug
19259         32004.
19260
19261         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
19262         of 3 seconds, in case another async job is queued.  (This part is
19263         needed because the bug fix reintroduced the 3s exit lag.)  This
19264         makes the mono_runtime_shutdown flag superfluous.
19265
19266 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19267
19268         * reflection.c: include ehader size in method section headers.
19269         Really check for suplicated modules entries.
19270
19271 2002-10-17  Martin Baulig  <martin@gnome.org>
19272
19273         * debug-mono-symfile.c: Added back support for locals.
19274
19275 2002-10-14  Martin Baulig  <martin@gnome.org>
19276
19277         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
19278         MONO_TYPE_VOID.
19279
19280 2002-10-14  Martin Baulig  <martin@gnome.org>
19281
19282         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
19283         mono_class_get() instead of looking in the class cache. 
19284
19285 2002-10-13  Martin Baulig  <martin@gnome.org>
19286
19287         * debug-mono-symfile.c: Set version number to 28, include the
19288         signature in method names.
19289
19290 2002-10-13  Martin Baulig  <martin@gnome.org>
19291
19292         * debug-mono-symfile.h: Set version number to 27.
19293
19294 2002-10-11  Martin Baulig  <martin@gnome.org>
19295
19296         * gc.c: Don't register/unregister NULL pointers as disappearing links.
19297
19298 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19299
19300         * metadata.c, metadata.h: added helper function to allocate signatures.
19301
19302 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19303
19304         * icall.c: added internal call to get the location of machine.config.
19305
19306 2002-10-08  Martin Baulig  <martin@gnome.org>
19307
19308         * debug-mono-symfile.c: Ignore classes with a pending init for the
19309         moment.
19310
19311 2002-10-03  Dick Porter  <dick@ximian.com>
19312
19313         * threads.c: Freebsd pthread_t is a pointer
19314
19315 2002-10-03  Dick Porter  <dick@ximian.com>
19316
19317         * socket-io.c: Implemented GetHostName_internal
19318
19319 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19320
19321         * mono-config.c:
19322         (mono_config_parse_file): don't leak the text.
19323
19324 2002-10-02  Martin Baulig  <martin@gnome.org>
19325
19326         * debug-mono-symfile.c: Added support for methods.
19327
19328 2002-10-01  Martin Baulig  <martin@gnome.org>
19329
19330         * debug-mono-symfile.c: Don't emit methods and line numbers for
19331         the dynamic symbol file, just write the type table.  We can easily
19332         have an external helper program which creates a symbol file for an
19333         IL file.        
19334
19335 2002-10-01  Dick Porter  <dick@ximian.com>
19336
19337         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
19338         Only add the handle to the cleanup array when we're about to
19339         launch the thread.  Bug 31425 deadlocked when the test was run on
19340         mono under w32.
19341
19342 2002-10-01  Martin Baulig  <martin@gnome.org>
19343
19344         * debug-mono-symfile.c: Added support for properties.
19345
19346 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19347
19348         * reflection.c: unaligned store fix from Mark Crichton
19349         <crichton@gimp.org>.
19350
19351 2002-09-27  Martin Baulig  <martin@gnome.org>
19352
19353         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
19354         New interncall.
19355
19356 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
19357
19358         * assembly.h, assembly.c: use a sane API to hook into the assembly
19359         loading process instead of a useless special-purpouse hack
19360         (ngen needs a hook, too, for example).
19361
19362 2002-09-27  Dick Porter  <dick@ximian.com>
19363
19364         * threads.c (mono_thread_init): Call GetCurrentProcess() so
19365         io-layer can set up some process handle info.  Not needed on w32,
19366         but doesn't hurt either.
19367
19368         * process.c: Pass the program name in the second parameter to
19369         CreateProcess, so the path is searched.  Include the working
19370         directory. Implemented process name, process enumeration, and some
19371         process detail internal calls.
19372         
19373         * icall.c: Added internal calls for process lookup, and some
19374         process details
19375
19376 2002-09-26  Martin Baulig  <martin@gnome.org>
19377
19378         * assembly.c (mono_install_open_assembly_hook): New global
19379         function to install a function to be invoked each time a new
19380         assembly is loaded.
19381         (mono_assembly_open): Run this callback function if set.
19382
19383         * debug-mono-symfile.c: Put back line numbers for the dynamic
19384         symbol file and also record the .il file as source file.  This
19385         allows us to install the temporary symbol file as `file.dbg' just
19386         like a compiler-generated one.
19387
19388 2002-09-26  Nick Zigarovich <nick@chemlab.org>
19389
19390         * Corrected typo in gc.c (BOHEM vs BOEHM).
19391
19392 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19393
19394         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
19395         GetProperties. Also avoid calling g_slist_length in GetProperties and
19396         GetMethods.
19397
19398 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19399
19400         * reflection.c: avoid unaligned stores (bug spotted by
19401         Mark Crichton  <crichton@gimp.org>).
19402
19403 2002-09-25  Martin Baulig  <martin@gnome.org>
19404
19405         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
19406         instead of guint64 for addresses and added prologue/epilogue info.
19407
19408 2002-09-25  Martin Baulig  <martin@gnome.org>
19409
19410         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
19411         store line number info.  For the dynamic symbol file, we only need
19412         to provide the JIT generated dynamic line number info for the dynamic
19413         symbol file.
19414
19415 2002-09-25  Martin Baulig  <martin@gnome.org>
19416
19417         * debug-mono-symfile.h: Incremented version number.
19418
19419 2002-09-24  Martin Baulig  <martin@gnome.org>
19420
19421         * class.c (mono_debugger_class_init_func): New global function
19422         pointer variable.
19423         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
19424         call it.
19425
19426         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
19427         function.  This is called via the mono_debugger_class_init_func
19428         hook to add all types to the dynamic type table.
19429         (ves_icall_MonoDebugger_GetType): New interncall to get a class
19430         from its metadata token.
19431
19432         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
19433         New interncall for the debugger.
19434
19435 2002-09-24  Nick Drochak <ndrochak@gol.com>
19436
19437         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
19438         before using it in case it is null.
19439         
19440 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19441
19442         * metadata.c: allow custom modifiers in local var signatures
19443         (bug spotted by Zoltan Varga).
19444
19445 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19446
19447         * class.c: deal with the <Module> class that may have a NULL vtable.
19448         Eliminate warnings.
19449
19450 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19451
19452         * image.c, image.h: more strong name helpers.
19453         * monosn.c: more work: convert pem keys to cryptoapi format.
19454
19455 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19456
19457         * string-icalls.c: speedup IndexOf.
19458
19459 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19460
19461         * icall.c: updates from Zoltan.2.Varga@nokia.com.
19462
19463 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19464
19465         * icall.c: cleanup: use mono_object_domain ().
19466
19467 2002-09-23  Martin Baulig  <martin@gnome.org>
19468
19469         * debug-mono-symfile.c: Improved type support.
19470
19471 2002-09-22  Martin Baulig  <martin@gnome.org>
19472
19473         * debug-mono-symfile.c: Added support for reference types and strings.
19474
19475 2002-09-22  Martin Baulig  <martin@gnome.org>
19476
19477         * debug-mono-symfile.c: Started to work on the type table.
19478
19479 2002-09-21  Martin Baulig  <martin@gnome.org>
19480
19481         * debug-mono-symfile.c: Largely reworked the symbol table format.
19482         The symbol table is now incrementally updated each time a new
19483         method is added.  We're now also using our own magic and version
19484         so that you don't need to recompile all your classes if the
19485         dynamic table changes.
19486         (mono_debug_update_mono_symbol_file): Removed.
19487         (mono_debug_symfile_add_method): New function to add a method.
19488
19489 2002-09-21  Martin Baulig  <martin@gnome.org>
19490
19491         * icall.c
19492         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
19493         New interncall.
19494
19495         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
19496         New interncall to get a method from its metadata token.
19497
19498 2002-09-21  Martin Baulig  <martin@gnome.org>
19499
19500         * debug-mono-symfile.c: Create type table.
19501
19502 2002-09-20  Martin Baulig  <martin@gnome.org>
19503
19504         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
19505
19506 2002-09-20  Martin Baulig  <martin@gnome.org>
19507
19508         * debug-mono-symfile.c: Provide information about params and locals.
19509
19510 2002-09-20  Martin Baulig  <martin@gnome.org>
19511
19512         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
19513         New interncall.
19514
19515         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
19516         interncall to get a method from its metadata token.
19517
19518 2002-09-20  Martin Baulig  <martin@gnome.org>
19519
19520         * debug-mono-symfile.c: Added a few checks for method->header
19521         being non-NULL.  This should never happen, but for the moment
19522         let's use a g_warning() rather than a g_assert().
19523
19524 2002-09-19  Mark Crichton  <crichton@gimp.org>
19525
19526         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
19527         even if support for it isn't present.  Added an #ifdef to fix this.
19528
19529         * socket-io.c: Added checks back for Solaris support.
19530
19531 2002-09-19  Martin Baulig  <martin@gnome.org>
19532
19533         * debug-mono-symfile.c (read_string, write_string): Reflect latest
19534         changes in the symbol file format.
19535
19536 2002-09-18  Martin Baulig  <martin@gnome.org>
19537
19538         * debug-mono-symfile.c: Set version number to 21.
19539
19540 2002-09-18  Dick Porter  <dick@ximian.com>
19541
19542         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
19543         on netbsd.  Fixes bug 30051.
19544
19545 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19546
19547         * reflection.c:
19548         (set_version_from_string): little fix.
19549
19550 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19551
19552         * monosn.c, Makefile.am: added strong name utility.
19553         * reflection.h, reflection.c: implemented delayed signing,
19554         locale, version and hash id assembly attributes.
19555
19556 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19557
19558         * loader.c, metadata.c: load param attributes in signatures.
19559
19560 2002-09-16  Martin Baulig  <martin@gnome.org>
19561
19562         * debug-mono-symfile.c: Added string table with all method names.
19563
19564 2002-09-14  Martin Baulig  <martin@gnome.org>
19565
19566         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
19567         fast method lookup.
19568
19569 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19570
19571         * reflection.c: record the public key token of referenced assemblies.
19572
19573 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19574
19575         * image.c, image.h: added functions to get the strong name and the
19576         public key of an assembly.
19577         * pedump.c: use them.
19578
19579 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
19580
19581         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
19582
19583 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
19584
19585         * marshal.c (mono_marshal_get_managed_wrapper): Added
19586         MONO_TYPE_BOOLEAN 
19587
19588 2002-09-11  Martin Baulig  <martin@gnome.org>
19589
19590         * gc.c: Call GC_unregister_disappearing_link() on all links when
19591         finalizing them, this is necessary to aviod a crash in boehm's
19592         finalize handler.
19593
19594 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19595
19596         * gc.c: handle GetTarget for finalized objects spotted and fixed by
19597         nick@chemlab.org.
19598
19599 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19600
19601         * icall.c: implemented MonoType::Module.
19602         * reflection.c, reflection.h: mono_module_get_object () from
19603         Tomi Pakarinen <tomi.pakarinen@welho.com>.
19604
19605 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19606
19607         * icall.c: ignore overridden methods in GetMethods ().
19608         Fix for FieldInfo::SetValue().
19609         * object.c: handle float/double in runtime invoke.
19610
19611 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19612
19613         * object.c: allow a constructor to be called again on an object.
19614
19615 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19616
19617         * class.h, class.c: move field layout code to it's own function and
19618         export it. Get an interface id earlier. Move fields in MonoClass
19619         so they are more cache friendly and align the bitfields.
19620         * loader.c: temporary handle get_param_names() for a runtime method.
19621         * reflection.c, reflection.h: more code to handle runtime creation of
19622         types.
19623
19624 2002-09-09  Martin Baulig  <martin@gnome.org>
19625
19626         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
19627         signature with the pinvoke field being set for the actual call.
19628
19629 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19630
19631         * icall.c: removed some unused icalls. Start of map of glib charsets
19632         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
19633
19634 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19635
19636         * debug-helpers.c: break infinite loop (found and fixed by
19637         Holger Arnold <harnold@gmx.de>).
19638
19639 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19640
19641         * icall.c: target may be null in create_delegate.
19642
19643 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19644
19645         * marshal.c: handle a boolean return type.
19646
19647 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19648
19649         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
19650
19651 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19652
19653         * gc.c: fix weakreferences.
19654
19655 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19656
19657         * icall.c: added icall to get default codepage.
19658
19659 2002-09-03  Dick Porter  <dick@ximian.com>
19660
19661         * threads.h: 
19662         * threads.c: Use MonoThread instead of MonoObject where
19663         apropriate.
19664
19665         Store running thread objects in a hash table, so that we have all
19666         the info to hand when waiting for them to finish
19667         (means we don't need OpenThread() any more, so mingw builds should
19668         be fully functional again.)
19669
19670         * verify.c:
19671         * object.h: Added thread ID to MonoThread
19672
19673 2002-09-03  Martin Baulig  <martin@gnome.org>
19674
19675         * icall.c (System.Reflection.Assembly::get_location): New interncall.
19676
19677 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19678
19679         * icall.c: fixed leak in get_temp_path. Thanks lupus.
19680
19681 2002-09-03  Martin Baulig  <martin@gnome.org>
19682
19683         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
19684         argument to store the end address of the disassembled instruction.
19685
19686         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
19687         here from debug-symfile.h.
19688         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
19689         JIT into this struct.
19690         (MonoSymbolFile): Added `char *image_file' field.
19691         (MonoDebugGetMethodFunc): Removed.
19692         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
19693         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
19694         (mono_debug_find_method): New method.
19695
19696         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
19697         create a full symbol file.
19698         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
19699         and static symbol files.
19700         (mono_debug_find_method): The symbol file keeps an internal method hash,
19701         call this to get a MonoDebugMethodInfo from a MonoMethod.
19702
19703         * debug-symfile.[ch]: Removed.
19704
19705 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
19706
19707         * image.c (do_mono_image_open): Remove linker version check.
19708
19709 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
19710
19711         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
19712         wrappers for instance methods.
19713         
19714 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19715
19716         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
19717
19718 2002-08-28  Dick Porter  <dick@ximian.com>
19719
19720         * Makefile.am: Export HOST_CC for w32 builds
19721
19722 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19723
19724         * file-io.c process.c: MonoString are null terminated, no
19725         need for mono_string_to_utf16() anymore.
19726
19727 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19728
19729         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
19730
19731 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
19732
19733         * icall.c, reflection.h: speedup System.MonoType.
19734
19735 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19736
19737         * reflection.c: allow null as the value of a string argument in
19738         custom attributes constructors.
19739
19740 2002-08-27  Martin Baulig  <martin@gnome.org>
19741
19742         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
19743         `trampoline_address' field.
19744
19745 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
19746
19747         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
19748         check (fixes bug #29486) 
19749
19750 2002-08-27  Martin Baulig  <martin@gnome.org>
19751
19752         * debug-mono-symfile.c: Changed the file format in a way that allows us
19753         open it read-only and to use a specially malloced area for all the
19754         dynamic data.  We can now also generate a symbol file on-the-fly if we're
19755         debugging IL code and there is no MCS generated symbol file for it.
19756
19757 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19758
19759         * object.c: added a define for a good string and array
19760         creation speedup (not enabled by default because we need to deal with
19761         the synch stuff).
19762
19763 2002-08-26  Martin Baulig  <martin@gnome.org>
19764
19765         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
19766         function to create a dynamic symbol file.  This is used by the
19767         debugger to create a symbol file for IL code on-the-fly.
19768
19769 2002-08-26  Martin Baulig  <martin@gnome.org>
19770
19771         * loader.c (mono_lookup_pinvoke_call): Include the error message
19772         from g_module_error() in the error message.
19773
19774 2002-08-24  Martin Baulig  <martin@gnome.org>
19775
19776         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
19777         function to update the symbol file.  The symbol file is mmap()ed
19778         writable, but private.  This allows us to install the symbol file
19779         together with the assembly.
19780
19781 2002-08-24  Martin Baulig  <martin@gnome.org>
19782
19783         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
19784         but they can read the new symbol file format which mcs is now creating.
19785
19786         * debug-symfile.c (mono_debug_find_source_location): Moved to
19787         debug-mono-symfile.c; this is now operating on the new symbol file.
19788
19789 2002-08-23  Martin Baulig  <martin@gnome.org>
19790
19791         * debug-helpers.c (mono_method_desc_from_method): New function to get
19792         a MonoMethodDesc from a MonoMethod.
19793
19794 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
19795
19796         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
19797         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
19798
19799 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19800
19801         * string-icalls.[ch]: make helper methods static.
19802
19803 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19804
19805         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
19806         types to it and to SetValueInternal.
19807
19808         * object.c: Moved handle_enum label to its proper place. This was the
19809         f... bug! ;-)
19810
19811         This time i compiled mcs and gtk-sharp and they both work.
19812
19813 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19814
19815         * icall.c: reverted partially my previous patch until 
19816         object.c:set_value handles enums correcly.
19817
19818 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19819
19820         * icall.c:
19821         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
19822         (ves_icall_System_Environment_get_MachineName): removed warning when
19823         compiling under cygwin.
19824
19825 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19826
19827         * object.c: fixed field_get_value() for reference types.
19828
19829 2002-08-22  Dick Porter  <dick@ximian.com>
19830
19831         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
19832         Don't free a buffer while it's still needed.  Patch from Jonathan
19833         Liger <Jonathan.liger@wanadoo.fr>
19834
19835 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
19836
19837         * icall.c (ves_icall_System_Environment_get_Platform): Add new
19838         internal call.
19839
19840 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
19841
19842         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
19843         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
19844
19845         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
19846         we call unmanaged code which throws exceptions.
19847
19848 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19849
19850         * appdomain.h: added per-domain entry_assembly.
19851         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
19852         arguments.
19853         * icall.c: Assembly::GetEntryAssembly icall.
19854         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
19855         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
19856
19857 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19858
19859         * appdomain.h, gc.c: added mono_domain_finalize ().
19860
19861 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19862
19863         * object.c:
19864         (mono_print_unhandled_exception): changed g_warning by g_printerr
19865         because g_log has a 1024 characters limit (yeah, i got a big stack
19866         trace). Don't print exception name, that should be in ToString 
19867         returned string.
19868
19869 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19870
19871         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
19872         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
19873
19874 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19875
19876         * object.c:
19877         (mono_print_unhandled_exception): after previous commit, i realized
19878         that MS calls ToString on the exception. I changed this function to
19879         do that. This way we get stack_trace for free.
19880
19881 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19882
19883         * object.c:
19884         (mono_print_unhandled_exception): invoke Message property instead of
19885         getting 'message' field from Exception. Don't allocate memory for
19886         'trace' and 'message' if not needed.
19887
19888 2002-08-18  Dick Porter  <dick@ximian.com>
19889
19890         * unicode.c: Fix asserts to match Encoder.cs checks
19891
19892 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19893
19894         * marshal.c: fix unaligned store issue and a few wrong
19895         opcode argument types.
19896
19897 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19898
19899         * icall.c: added GetUninitializedObjectInternal internal call.
19900
19901 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
19902
19903         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
19904         to the right domain.
19905
19906 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
19907
19908         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
19909
19910         * class.c (class_compute_field_layout): set blittable to false for Strings
19911
19912         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
19913
19914 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19915
19916         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
19917         first chunk of code to create types at runtime. Code to
19918         handle ReflectedType/DeclaringType. Make reflection handles
19919         domain specific.
19920
19921 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19922
19923         * class.c: set correct name in arrays.
19924
19925 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
19926
19927         * appdomain.c (mono_domain_transfer_object): make it work with
19928         valuetypes. bug fixes.
19929
19930 2002-08-12  Dick Porter  <dick@ximian.com>
19931
19932         * object.h: Rename some parameters to avoid c++ keywords (Patch
19933         from Joseph Wenninger <kde@jowenn.at>)
19934
19935 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
19936
19937         * icall.c: added icall to implement Assembly.GetFile*.
19938
19939 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19940
19941         * reflection.h, reflection.c: code to embed managed resources.
19942
19943 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19944
19945         * class.c: move all the type size stuff into
19946         class_compute_field_layout().
19947
19948 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19949
19950         * class.c: ensure enums have always the correct instance size.
19951         * unicode.c: remove wrong assert.
19952
19953 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19954
19955         * assembly.c: fix mem corruption issue.
19956         * image.h, image.c: added mono_image_get_resource () to access
19957         managed resources.
19958         * icall.c: implemented Assembly.EntryPoint property and some
19959         Managed Resources related internalcalls.
19960
19961
19962 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19963
19964         * image.c, image.h: impemented mono_image_get_entry_point ().
19965         * appdomain.c: use mono_image_get_entry_point.
19966
19967 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19968
19969         * reflection.c: support the object type argument when loading
19970         custom attributes.
19971
19972 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
19973
19974         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
19975         String as return type.
19976
19977 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
19978
19979         * reflection.c: fix encoding of named args for custom attrs to match
19980         the ms implementation. Read them back when instantiating custom
19981         attributes.
19982
19983 2002-08-02  Radek Doulik  <rodo@ximian.com>
19984
19985         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
19986         by Dietmar as quick fix
19987         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
19988         16 as stack size, used on more places as quick fix before Dietmar
19989         will fix it properly
19990
19991 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
19992
19993         * object.h, object.c: added accessors for fields and properties.
19994
19995 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
19996
19997         * class.c, class.h: made mono_class_get_field_from_name ()
19998         loop on parent types.
19999         Added mono_class_get_property_from_name ().
20000
20001 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20002
20003         * class.c, class.h: move the code to setup the type vtable in its own
20004         function so that it can be reused also for types created at runtime.
20005         Eliminate the "class" identifier from the header file.
20006         * reflection.c: setup the vtable for enums so that we can create
20007         objects for use in SetConstant ().
20008
20009 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
20010
20011         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
20012         instead of the delegate itself as this pointer (bug #28383)
20013
20014 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
20015
20016         * marshal.c (mono_marshal_get_managed_wrapper): added return type
20017         conversions.
20018
20019 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20020
20021         * loader.c: don't set the pinvoke bit on icalls.
20022
20023 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
20024
20025         * debug-helpers.c (mono_method_full_name): only print a number to
20026         indicate wrapper type (so that the output is more readable in traces).
20027
20028 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
20029
20030         * class.c (mono_class_init): include method override patch from Paolo
20031
20032 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
20033
20034         * icall.c: fixed GetTypeCode().
20035
20036 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
20037
20038         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
20039         use real delegate invoke function to make it work with multicast
20040         delegates (fix bug# 28291).
20041
20042 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20043
20044         * object.c: load constant strings.
20045
20046 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20047
20048         * reflection.c: no magic numbers.
20049         * tabledefs.h: security action enum.
20050
20051 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20052
20053         * assembly.c: fix possible memory corruption.
20054
20055 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20056
20057         * reflection.h, reflection.c: added support for linking resources.
20058         * verify.c: check we have an updated corlib.
20059
20060 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
20061
20062         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
20063         string arrays.
20064         (mono_marshal_string_array): null terminate unmanaged string arrays.
20065         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
20066
20067 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20068
20069         * icall.c: Type.GetType () can now return also types from the
20070         calling assembly.
20071
20072 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20073
20074         * loader.h, loader.c: stack walking support.
20075         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
20076         GetCallingAssembly.
20077
20078 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
20079
20080         * marshal.c: added optimisations for blittable types 
20081
20082         * class.c (mono_array_class_get): do not set blittable attribute on arrays
20083         (mono_class_setup_mono_type): set blittable attribute for single
20084         and double.
20085
20086         * marshal.c (mono_string_utf8_to_builder): impl.
20087         (mono_string_builder_to_utf8): impl.
20088         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
20089
20090 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
20091
20092         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
20093         (mono_marshal_get_managed_wrapper): impl. byref types
20094
20095 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20096
20097         * icall.c:
20098         (search_method): don't display debug message. 
20099
20100 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20101
20102         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
20103
20104 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
20105
20106         * appdomain.c: set the missing filename when throwing exception.
20107
20108 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
20109
20110         * metadata.c (mono_type_size): code cleanup
20111         (mono_type_stack_size): removed some test code
20112
20113 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
20114
20115         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
20116         mono_get_exception_file_not_found now.
20117
20118         * exception.c (mono_exception_from_name_two_strings): New version
20119         that will call a constructor with two string arguments. 
20120         (mono_get_exception_file_not_found): New helper routine, used to
20121         report file-not-found errors.
20122
20123 2002-07-20  Dick Porter  <dick@ximian.com>
20124
20125         * process.h:
20126         * process.c: Pass file handles to CreateProcess
20127         
20128         * icall.c:
20129         * file-io.h:
20130         * file-io.c: Implemented CreatePipe
20131
20132 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20133
20134         * metadata.c (mono_get_param_info): set alignment for value types
20135
20136 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20137
20138         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
20139         Constify mono_domain_assembly_open().
20140         * loader.c: handle null namespace in icalls.
20141
20142 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
20143
20144         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
20145         (emit_str_to_ptr_conv): marshal object as structs
20146
20147         * metadata.c (mono_type_to_unmanaged): marshal object as structs
20148
20149         * marshal.c (mono_marshal_get_runtime_invoke): support value types
20150
20151 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
20152
20153         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
20154         (mono_marshal_get_native_wrapper): we an now return value types
20155
20156 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20157
20158         * verify.c: more checks implemented.
20159
20160 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
20161
20162         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
20163         (fix bug #27695)
20164         (mono_marshal_get_native_wrapper): allow byref arguments
20165         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
20166         impl. PtrToStringXXX methods
20167         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
20168         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
20169         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
20170         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
20171         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
20172
20173 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20174
20175         * reflection.c: fix buglet in parsing an assembly name.
20176
20177 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20178
20179         * marshal.c (emit_ptr_to_str_conv): first impl.
20180
20181 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20182
20183         * object.c, class.h: cache the vtable in the class as suggested by
20184         vargaz@freemail.hu (Zoltan Varga).
20185
20186 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20187
20188         * class.h, loader.c: added mono_field_from_token().
20189         * verify.c: first cut of type checking code.
20190
20191 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
20192
20193         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
20194
20195 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
20196
20197         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
20198         (fix bug #27782)
20199         (mono_marshal_get_remoting_invoke): impl.
20200         (mono_delegate_begin_invoke): impl.
20201         (mono_mb_emit_save_args): impl.
20202         (mono_delegate_end_invoke): impl.
20203         (mono_marshal_get_delegate_begin_invoke):
20204         (mono_marshal_get_delegate_end_invoke):
20205         (mono_marshal_get_delegate_invoke): generate a special name for
20206         those methods (including the signature) and associate them whith
20207         the delegate class. 
20208
20209 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
20210
20211         * reflection.[ch]: 
20212         (mono_reflection_type_from_name): now it has a MonoImage parameter
20213         which is used as the default image to search the type in. If the image
20214         is NULL or getting the type from it fails, it defaults to corlib.
20215
20216         * icall.c: changed 1 call to mono_reflection_type_from_name to match
20217         new parameter.
20218
20219 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20220
20221         * reflection.c: update the parameter table index.
20222
20223 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20224
20225         * domain.c: don't include the mark byte in the string hash.
20226
20227 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20228
20229         * icall.cs: icall for Type.GetTypeCode ().
20230         * verify: a couple of fixes and disabled local initialization checks.
20231
20232 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
20233
20234         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
20235
20236         * debug-helpers.c (mono_method_full_name): print the type of the
20237         runtime wrapper
20238
20239         * metadata.c (mono_signature_hash): a hash function for signatures
20240         (mono_signature_hash): better hash algorithm
20241
20242         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
20243
20244         * debug-helpers.c (mono_method_full_name): this can now generate
20245         method names with signatures
20246
20247         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
20248         method dont have this pointers.
20249
20250 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20251
20252         * reflection.c: fixup typebuilder tokens.
20253         * image.c: fix buglet.
20254         * marshal.h: remove whitespace.
20255         * metadata.h, metadata.c: reinstate code that was removed.
20256         * verify.c: handle catch directives and fix another couple of bugs.
20257
20258 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
20259
20260         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
20261         (mono_marshal_get_native_wrapper): make it comp. with the old code
20262         (mono_marshal_get_native_wrapper): support boolean
20263         (mono_marshal_get_managed_wrapper): support more types
20264
20265 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
20266
20267         * class.c (class_compute_field_layout): compute class->blittable attribute.
20268
20269 2002-07-09  Dick Porter  <dick@ximian.com>
20270
20271         * threads.c: Make the thread cleaning up cope with threads that
20272         call ExitThread()
20273
20274 2002-07-08  Radek Doulik  <rodo@ximian.com>
20275
20276         * reflection.c (method_encode_code): use non-translated values to
20277         compute finally_start, this fixes exception handling on ppc, yay!
20278
20279         * decimal.h (struct signscale): fix endianess
20280
20281 2002-07-07  Radek Doulik  <rodo@ximian.com>
20282
20283         * reflection.c: swap box_val and not val
20284
20285 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20286
20287         * reflection.c, reflection.h: handle full assembly info in type name.
20288         Handle Type arguments when loading custom attributes.
20289         * icall.c: updated to use new mono_reflection_type_from_name () method.
20290
20291 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20292
20293         * loader.c:
20294         (method_from_memberref): also print assembly name when method not found.
20295
20296 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20297
20298         * icall.c:
20299         (ves_icall_TypeGetProperties): fixed bug #27473. 
20300
20301 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20302
20303         * reflection.c: display image name and token when cannot find the
20304         .ctor for an attribute.
20305
20306 2002-07-05  Martin Baulig  <martin@gnome.org>
20307
20308         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20309
20310 2002-07-04  Dick Porter  <dick@ximian.com>
20311
20312         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
20313         compile on mingw.  This will cause mingw builds to not wait for
20314         subthreads to terminate after the main thread does.  I've lodged a
20315         bug with the mingw developers for them to wrap OpenThread().
20316
20317 2002-07-03  Dick Porter  <dick@ximian.com>
20318
20319         * threads.c: Store thread IDs instead of handles, because
20320         GetCurrentThread() returns a pseudohandle and therefore stores
20321         useless values.  mono_thread_cleanup() continues checking the
20322         array of threads until it is empty, to cope with subthreads
20323         spawning new threads after the main thread has finished.
20324
20325         * profiler.h:
20326         * profiler.c:
20327         * profiler-private.h: Pass the thread ID to thread profiler
20328         functions, instead of a handle
20329
20330 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20331
20332         * verify.c: fixes to make it more usable.
20333         * pedump.c: added --verify code to verify IL code in an assembly.
20334
20335 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20336
20337         * reflection.c: turn errors into warnings to allow compiling corlib.
20338
20339 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
20340
20341         * reflection.c: add special cases to compile corlib.
20342
20343 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20344
20345         * reflection.c: handle properties with only a set method.
20346
20347 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20348
20349         * opcodes.h: add enum with opcodes in opval order.
20350
20351 2002-07-01  Dick Porter  <dick@ximian.com>
20352         
20353         * object.h:
20354         * object.c (mono_runtime_run_main): Removed unneeded argument
20355
20356 2002-06-28  Martin Baulig  <martin@gnome.org>
20357
20358         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
20359
20360 2002-06-27  Dick Porter  <dick@ximian.com>
20361
20362         * threads.c: Store the handle in both the parent thread and in the
20363         subthread, to minimise the time between starting a new thread and
20364         storing its ID.
20365
20366 2002-06-26  Dick Porter  <dick@ximian.com>
20367
20368         * appdomain.c (mono_runtime_cleanup): Close the socket library
20369         after all the threads have finished, not before
20370
20371 2002-06-26  Martin Baulig  <martin@gnome.org>
20372
20373         * debug-symfile.c (mono_debug_find_source_location): Added
20374         `guint32 *line_number' argument.  If it's not NULL, store the line number
20375         there and return the file name without the line number.
20376
20377 2002-06-25  Dick Porter  <dick@ximian.com>
20378
20379         * icall.c:
20380         * process.h:
20381         * process.c: Process forking and other support functions
20382
20383 2002-06-25  Dick Porter  <dick@ximian.com>
20384
20385         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
20386         things dont happen when the image is closed.
20387         (mono_image_lookup_resource): Walk the resource section looking
20388         for a particular entry
20389
20390         * cil-coff.h: PE resource section decoding
20391
20392 2002-06-25  Dick Porter  <dick@ximian.com>
20393         
20394         * assembly.h:
20395         * assembly.c: 
20396         (mono_assembly_foreach): Accessor functions to walk the list of
20397         loaded assemblies
20398         (mono_assembly_set_main):
20399         (mono_assembly_get_main): Process methods need to know which
20400         assembly is the "main" one
20401
20402         * object.c (mono_runtime_run_main): Record the main assembly
20403
20404         * debug-helpers.c: Fix typo
20405
20406 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
20407
20408         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
20409         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
20410
20411 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20412
20413         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
20414
20415 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
20416
20417         * image.c (do_mono_image_open): Initialize reference count,
20418         otherwise we leak the MonoImage.
20419
20420 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20421
20422         * reflection.c: small tweak to handle self-hosting.
20423
20424 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
20425
20426         * reflection.c: fix type name parse code.
20427
20428 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20429
20430         * reflection.c: break out of the loop.
20431         * image.c: special case corlib.
20432
20433 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20434
20435         * reflection.c: add all the custom attrs at the end to ensure the
20436         ctors have been properly initialized when the attributes are defined
20437         in the current assembly.
20438
20439 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20440
20441         * reflection.c: handle correctly multiple-nested types.
20442
20443 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
20444
20445         * row-indexes.h: fix typos.
20446         * reflection.c: adjust for typos and fix method_def_or_ref
20447         encoding in MethodImpl table.
20448
20449 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20450
20451         * reflection.c: fix entry point patching (thanks Serge!).
20452
20453 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
20454
20455         * verify.c: add check for System.Exception
20456
20457 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
20458
20459         * image.c, class.c: minifix for code just c&p'ed.
20460         * reflection.c: warning fix.
20461         * object.h, loader.h, domain.c: load also StringBuilder.
20462
20463 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
20464
20465         * marshal.h, marshal.c: some support code to handle complex marshaling.
20466
20467 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20468
20469         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
20470         Better signatures with vtable error dump.
20471
20472 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
20473
20474         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
20475
20476 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
20477
20478         * icall.c (ves_icall_Type_GetField): impl.
20479
20480 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20481
20482         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
20483         to retrieve a marshal description blob for a field or param.
20484
20485 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
20486
20487         * reflection.h, reflection.c: change order of nested type emission
20488         to avoid table corruption. The NestedTypes table is sorted.
20489         * icall.c: change order of GetConstructor results to workaround mcs bug.
20490
20491 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20492
20493         * reflection.h, reflection.c: handle field and param marshal
20494         information.
20495
20496 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20497
20498         * icall.c, marshal.c marshal.h: more Marshal class implementation.
20499
20500 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20501
20502         * reflection.c: fix call convention.
20503
20504 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20505
20506         * reflection.h, reflection.c: mono_image_get_memberref_token()
20507         takes a type instead of a class, now. Added
20508         mono_image_get_array_token() to create tokens for the special
20509         multi-dim array methods.
20510
20511 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20512
20513         * assembly.c: handle modules (no assembly table). Split
20514         loading references in its own function.
20515         * class.c: handle moduleref resolution scope.
20516         * image.c, image.h: cache module name in image.
20517
20518 2002-06-07  Martin Baulig  <martin@gnome.org>
20519
20520         * reflection.c (mono_image_get_type_info): Only add a class layout entry
20521         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
20522
20523 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20524
20525         * icall.c: more signature fixes that used uint instead of int.
20526
20527 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20528
20529         * reflection.c: fixed signature of field refs.
20530
20531 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20532
20533         * class.c, reflection.c: handle typerefs of nested types
20534         (both on read and when writing files).
20535
20536 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
20537
20538         * icall.c: fix method signatures that tried to workaround the previous
20539         typo, d'oh!
20540
20541 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20542
20543         * debug-helpers.c: fix typo.
20544
20545 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20546
20547         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
20548         rewrote the PE/COFF writing code (our programs are understood by the
20549         ms runtime, now).
20550
20551 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
20552
20553         * gc.c, gc.h, icall.c: weakreference support.
20554
20555 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
20556
20557         * Makefile.am, mono-config.c: use $(sysconfdir).
20558
20559 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20560
20561         * icall.c: changed default precision of Double.ToString() to 15.
20562         Fixed memory leak. Unified with Single.ToString.
20563
20564 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
20565
20566         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
20567
20568 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
20569
20570         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
20571         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
20572         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
20573         and myself.
20574
20575 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20576
20577         * debug-symfile.c, sysmath.c: yet more compilation fixes.
20578
20579 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20580
20581         * reflection.c, socket-io.c: more compilation fixes.
20582
20583 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20584
20585         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
20586         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
20587         unicode.c: warning and compiler compatibility fixes.
20588
20589 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20590
20591         * class.h, metadata.c: fixed warnings/compilation errors.
20592
20593 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
20594
20595         * Makefile.am, mono-config.c, mono-config.h: configuration file
20596         support routines.
20597         * loader.c, loader.h: make Dll mapping configurable at runtime in the
20598         config file. Export methods to insert and lookup mappings.
20599
20600 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
20601
20602         * reflection.c: handle types and boxed objects in custom attr
20603         constructors.
20604
20605 2002-05-30  Martin Baulig  <martin@gnome.org>
20606
20607         * debug-symfile.c
20608         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
20609
20610 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
20611
20612         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
20613         to lookup the implmap row for a P/Invoke method.
20614         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
20615         P/Invoke method from the runtime on an as needed basis.
20616
20617 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
20618
20619         * metadata.c (mono_metadata_parse_signature): impl.
20620
20621 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20622
20623         * class.c: handle .pack directive.
20624
20625 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
20626
20627         * object.c: initialize static fields with RVA data.
20628
20629 2002-05-25  Martin Baulig  <martin@gnome.org>
20630
20631         * debug-symfile.c
20632         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
20633
20634 2002-05-24  Martin Baulig  <martin@gnome.org>
20635
20636         * debug-symfile.c
20637         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
20638         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
20639         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
20640
20641 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20642
20643         * object.c: special case string ctros in invoke.
20644         * gc.c: silly whitespace changes.
20645
20646 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
20647
20648         * threadpool.[ch]: impl. a threadpool that can
20649         be used by mint and mono.
20650
20651 2002-05-22  Martin Baulig  <martin@gnome.org>
20652
20653         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
20654         The first argument is now a `MonoReflectionModuleBuilder *', the return
20655         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
20656         `methods' field to get the method builder.  The `token' argument is the
20657         unfixed token.
20658
20659         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
20660         invalid characters instead of g_assert_not_reached()ing.  This seems
20661         to be the behaviour of mscorlib.
20662
20663 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
20664
20665         * object.c (mono_runtime_invoke_array): applied patch from Rachel
20666         Hestilow to fix bug #25104
20667
20668 2002-05-21  Martin Baulig  <martin@gnome.org>
20669
20670         * debug-symfile.c (mono_debug_find_source_location): New function.
20671         Looks up an IL offset in the line number table and returns the source
20672         location as a string.
20673
20674 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20675
20676         * icall.c:
20677         (mono_double_ToStringImpl): changed %f by %g until we have something
20678         better.
20679
20680 2002-05-21  Nick Drochak  <ndrochak@gol.com>
20681
20682         * icall.c : Use different name for Math.Pow's icall.  Needed to check
20683         parameters first in C#.
20684
20685 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20686
20687         * icall.c, reflection.h: added icall to get info about an event.
20688
20689 2002-05-20  Radek Doulik  <rodo@ximian.com>
20690
20691         * object.c (mono_value_box): don't use memcpy for boxing on BIG
20692         endian
20693         (mono_value_box): don't use memcpy for small sizes on
20694         architectures with unaligned access
20695
20696 2002-05-20  Martin Baulig  <martin@gnome.org>
20697
20698         * reflection.c (mono_reflection_setup_internal_class): Don't crash
20699         if `tb->parent == NULL'.
20700         (mono_reflection_create_internal_class): New function.  This is
20701         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
20702         for enum types.
20703
20704         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
20705         New interncall.
20706
20707 2002-05-19  Martin Baulig  <martin@gnome.org>
20708
20709         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
20710         argument to get the length, don't default to the array length.
20711
20712 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
20713
20714         * assembly.c (mono_assembly_setrootdir): New function used to
20715         override the MONO_ASSEMBLIES directory.
20716
20717 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20718
20719         * icall.c: ValueType_GetHashCode() initialize local var.
20720
20721 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20722
20723         * reflection.c: sort custom attributes table.
20724
20725 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20726
20727         * reflection.c: support named args in custom attributes (write support).
20728
20729 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
20730
20731         * reflection.c: fix finally position calculation.
20732
20733 2002-05-15  Radek Doulik  <rodo@ximian.com>
20734
20735         * reflection.c: fixed endianess at many places
20736
20737         * icall.c (ves_icall_InitializeArray): comment out debug msg
20738
20739 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
20740
20741         * object.c (mono_unhandled_exception): new function to handle
20742         unhandled exceptions.
20743         (mono_unhandled_exception): call the UnhandledException event.
20744         (mono_runtime_delegate_invoke): impl.
20745
20746 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
20747
20748         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
20749         returns the RVA, not the direct pointer to the data. Handle the case
20750         when the class size is fixed.
20751
20752 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
20753
20754         * reflection.c: fix some endianess issues.
20755
20756 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
20757
20758         * object.c (mono_runtime_invoke): is now able to catch exceptions.
20759
20760         * threads.c (mono_thread_init): added a callback which is invoked
20761         at thread start.
20762
20763 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20764         
20765         * icall.c: make GetHashCode return non-negative values.
20766
20767 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
20768
20769         * object.c, icall.c, gc.c: revert to address-based hashcode.
20770
20771 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
20772
20773         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
20774
20775 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20776
20777         * icall.c, class.c: special case <Module>.
20778
20779 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
20780
20781         * icall.c: fix bug in GetNow().
20782
20783 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
20784
20785         * object.c (mono_runtime_class_init): make sure that we call all
20786         static class constructors.
20787
20788 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
20789
20790         * reflection.c: sort methodsemantics table.
20791
20792 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
20793
20794         * reflection.h, reflection.c: honour init locals setting.
20795
20796 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
20797
20798         * icall.c: copied Double ToStringImpl for Single ToStringImpl
20799
20800 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20801
20802         * reflection.c: support ContructorBuilders in attribute blob creation.
20803
20804 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20805
20806         * reflection.c: some changes to build a binary that can be run
20807         directly in windows.
20808
20809 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20810
20811         * loader.c: print a big message when an icall can't be found.
20812
20813 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20814
20815         * string-icalls.c: fix bug 24248.
20816
20817 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
20818
20819         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
20820         icall.c, reflection.h: separate assembly loading by pathname and by
20821         assembly name. Use the MONO_PATH env var to search for assemblies.
20822
20823 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20824
20825         * assembly.c, image.h: add some support for assemblies
20826         with multiple modules.
20827         * class.c, class.h: export mono_class_from_typeref().
20828         * loader.c: remove duplicated code and use mono_class_from_typeref(),
20829         instead.
20830
20831 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20832
20833         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
20834         documentation says (the ECMA one is correct).
20835
20836 2002-05-02  Dick Porter  <dick@ximian.com>
20837
20838         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
20839         Don't name the synchronisation mutex.
20840
20841 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
20842
20843         * rand.c
20844         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
20845         Make the prototypes match.
20846         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
20847         Same.
20848
20849         * icall.c
20850         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
20851         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
20852         all systems have tm.tm_zone, so use strftime() with %Z to print
20853         the timezone abreviation into a temp string.
20854
20855         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
20856         rather than mono_array_addr() on a MonoString on Big Endian
20857         machines.
20858
20859 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
20860
20861         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
20862         fix bug 24041
20863
20864 2002-04-30  Dick Porter  <dick@ximian.com>
20865
20866         * socket-io.c: Cope with SOCKET being an integer rather than a
20867         pointer now.
20868
20869         * threads.c: Added Thread_free_internal, to deal with thread
20870         handle cleanup.  Moved calls to handle_store() and handle_remove()
20871         to start_wrapper(), so each can only be called once.  Allocate
20872         synchronisation blocks with GC_malloc(), and use GC finalisation
20873         to close the handles.
20874
20875         * icall.c: added System.Threading.Thread::Thread_free_internal
20876
20877 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20878
20879         * icall.c: support Environment.Exit, CommandLineArgs().
20880
20881 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
20882
20883         * object.c, object.h: added mono_runtime_run_main () and
20884         mono_runtime_get_main_args () for use in System.Environment.
20885
20886 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
20887
20888         * gc.c: fix thinko, enable actual finalization since the jit is now
20889         fixed.
20890
20891 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20892
20893         * gc.c, object.c: take into account that an object may be offset wrt the address
20894         returned by GC_malloc().
20895
20896 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
20897
20898         * image.c: handle files without entries in the assembly table (modules).
20899
20900 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
20901
20902         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
20903         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
20904         allowed to be null when it's System.Object class setup.
20905
20906 2002-04-27  Martin Baulig  <martin@gnome.org>
20907
20908         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
20909         if `tb->parent == NULL' rather than crashing.
20910
20911 2002-04-28  Nick Drochak  <ndrochak@gol.com>
20912
20913         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
20914         calling acos() where asin() should have been called.
20915
20916 2002-04-26  Martin Baulig  <martin@gnome.org>
20917
20918         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
20919         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
20920         there's a subdirectory called `System', but we don't want to read that
20921         subdirectory as an assembly.
20922
20923 2002-04-25  Martin Baulig  <martin@gnome.org>
20924
20925         * debug-symfile.c: Reflect latest MonoString changes.
20926
20927 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
20928
20929         * rand.c, rand.h: instance method icalls need to have an explicit
20930         this pointer as first argument in the C implementation.
20931
20932 2002-04-25  Nick Drochak <ndrochak@gol.com>
20933
20934         * icall.c: Fix typo in map for GetNonZeroBytes
20935
20936 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20937
20938         * string-icalls.c : String does now passes unit tests without any 
20939         errors, the following changes has been made:
20940         
20941         Implemented replace methods.
20942         Renaming of methods to (try) follow the standard.
20943         Fixed compare ordinal
20944         Made all memory allocated directly to function instead of via icall function.
20945         Small performance fix in is_in_array function
20946                         
20947  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
20948
20949         c (mono_string_Internal_ctor_charp_int_int):
20950         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
20951         sindex < 0, throw ArgumentOutOfRangeException instead of
20952         ArgumentNullException.
20953
20954         Added new check for length == 0, however
20955         I need to make it return String.Empty from the C code.
20956         
20957         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
20958         that calculate the length for us here.
20959         
20960         (mono_string_Internal_ctor_sbytep_int_int): Replaced
20961         mono_string_new_utf16 with mono_string_new, since value is utf8.
20962
20963 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20964
20965         * object.c: register the object for finalization if needed.
20966         Allocate one more char in the string for the terminating 0 char.
20967
20968 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
20969
20970         * class.c, class.h, image.c: check if a type implemenst a destructor.
20971         Use the proper key for array class lookups.
20972         * icall.c: register the icalls in the System.GC class.
20973         * gc.c, gc.h: GC-related functions and icalls.
20974
20975 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20976
20977         * icall.c:
20978         * socket-io.c:
20979         * unicode.c: free some strings gotten from mono_string_to_utf8 and
20980         changed a couple of free () by g_free ().
20981
20982         * decimal.c: one-liner in the comments for decimal2string ().
20983
20984 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20985
20986         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
20987
20988 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
20989
20990         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
20991         * object.c (mono_runtime_invoke_array) : handle null in params
20992
20993 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20994
20995         * string-icalls.c: fixed bug in split (one off bug)
20996
20997 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
20998
20999         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
21000         * icalls.c: added String::Equals as internal method
21001
21002 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
21003
21004         * threads.c: fixed bug in the double interlocked functions
21005
21006 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
21007
21008         * threads.c: implemented all of the new interlocked icalls.
21009         * string-icalls.c: fix a bug in insert.
21010         * icalls.c: added the icalls for interlocked, removed old string functions.
21011         
21012 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21013
21014         * loader.c: fix off-by-one error when reading argument names.
21015
21016 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21017
21018         * profiler.c: win32 counter implementation (untested).
21019         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
21020         (the latter needs testing and more complete impl. from win32 folks).
21021
21022 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
21023
21024         * object.c: mono_array_new_full workaround mono_array_class_get
21025         problem.
21026
21027 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21028
21029         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
21030         * object.h (mono_string_chars): Changed casting type.
21031
21032 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21033
21034         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
21035                            method signatures to use gunichar2 instead of gint16.
21036
21037 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
21038
21039         * object.h, object.c: domain-specific versions of mono_object_new and
21040         mono_array_new.
21041
21042 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
21043
21044         * object.c: changed String layout
21045
21046         * string-icalls.c (mono_string_Internal_ctor_chara): added
21047         internal string constructors.
21048
21049 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
21050
21051         * threads.c: pass 'this' to the thread start routine.
21052
21053 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21054
21055         * string-icalls.c: fix IndexOf and LastIndexOf. Now
21056         InternalCompareStr don't call twice mono_string_cmp_char for the last
21057         character. Improved performance in mono_string_cmp_char.
21058
21059 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
21060
21061         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
21062         code into its own library: libmonoruntime.
21063
21064 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
21065
21066         * object.h, object.c: changed array format so that szarrays do not
21067         require a bounds structure.
21068         * icall.c, appdomain.c: support for new szarray format.
21069
21070 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
21071
21072         * metadata.c: compare also the retuns type when comparing signatures:
21073         we didn't do this as an optimization since really overloaded methods
21074         must differ also in the arguments, but this doesn't work with
21075         low-level IL code (or when using explicit conversion operators: see
21076         bug#23498 for an example).
21077
21078 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
21079
21080         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
21081
21082 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
21083
21084         * icall.c: make MonoType::GetElementType its own icall.
21085
21086 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
21087
21088         * icall.c: remove MonoMethod_get_Name().
21089         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
21090         object.
21091
21092 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21093
21094         * string-icalls.c: optimized a few methods.
21095
21096 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
21097
21098         * icall.c: added all new string internal calls
21099         * string-icalls.c: added, new string internal call implementation.
21100         * object.c: added mono_string_new_size for allocating a string a size
21101
21102 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
21103
21104         * object.c (mono_object_isinst): use the same code as in the
21105         optimized x86 version.
21106
21107 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
21108
21109         * profiler.c: TSC-based timer code (faster and more accurate).
21110         Not hooked up in configure, yet (set USE_X86TSC to 1).
21111
21112 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
21113
21114         * profiler.c, profiler.h: track time spent compiling methods.
21115         * threads.c: track thread creation/destruction.
21116
21117 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
21118
21119         * profiler.c, profiler.h, profiler-private.h: profiling interface
21120         and sample implementation. Moved here so that it can be used also by
21121         the jit.
21122
21123 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
21124
21125         * reflection.c, reflection.h: keep types and other handles separate in
21126         the hash tables for referred tokens. Add guid for modules.
21127
21128 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
21129
21130         * assembly.c: fix bugs found with valgrind.
21131         * metadata.h, metadata.c: added mono_metadata_guid_heap().
21132
21133 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
21134
21135         * threads: added icall support for getting current domain for
21136                    the thread.
21137  
21138 2002-04-13  Martin Baulig  <martin@gnome.org>
21139
21140         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
21141         (MonoDebugVarInfo): Added `index' field for register based addresses.
21142         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
21143         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
21144         `MonoDebugVarInfo *params' and `guint32 this_offset' with
21145         `MonoDebugVarInfo *this_var'.
21146
21147         * debug-symfile.c (relocate_variable): New static function to write
21148         a location description for a local variable or method parameter.
21149
21150 2002-04-12  Martin Baulig  <martin@gnome.org>
21151
21152         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
21153         stack offset and begin/end scope address of a local variable.
21154         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
21155         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
21156         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
21157
21158         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
21159         Added new relocation types for start/end scope of a local variable.
21160
21161 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
21162
21163         * object.h: add mono_object_domain() macro.
21164         * reflection.c: handle typespecs.
21165         * icall.c: MonoMethod::get_Name() implementation.
21166
21167 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21168
21169         * icall.c: String::GetHashCode() icall implementation.
21170
21171 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21172
21173         * icall.c: String::IndexOfAny icall.
21174         * object.c, object.h: make array->max_length more useful.
21175         Intrduced mono_object_class() and mono_string_length() macros.
21176
21177 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21178
21179         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
21180         instead of g_unichar_isdigit.
21181
21182 2002-04-11  Nick Drochak  <ndrochak@gol.com>
21183
21184         * icall.c: Implement a simple Double.ToString().
21185
21186 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
21187
21188         * appdomain.h: only io-layer.h is supposed to be included.
21189         * icall.c: explicitly import environ. Fix warning.
21190
21191 2002-04-10  Nick Drochak  <ndrochak@gol.com>
21192
21193         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
21194                 return true even if it's not Daylight Savings time.
21195                 Only return false for the case where the function isn't
21196                 implemented for a plaform (read Windows).
21197
21198 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
21199
21200         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
21201         data with a mutex.
21202
21203 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
21204
21205         * mempool.c (mono_mempool_alloc): only use g_malloc when
21206         absolutely necessary.
21207
21208 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21209
21210         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
21211
21212         * class.c (mono_class_vtable): use domain mempool to allocate vtable
21213         (mono_class_proxy_vtable): use domain mempool
21214
21215 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
21216
21217         * appdomain.h, appdomain.c: split initialization that requires the
21218         execution engine support into mono_runtime_init().
21219
21220 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
21221
21222         * class.c (mono_class_init): don't include vtable inside MonoClass
21223         to save some memory, gather some statistics.
21224         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
21225
21226 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21227
21228         * icall.c: internalcall implementation for ValueType.Equals().
21229
21230 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
21231
21232         * object.c (mono_message_init): moved 
21233         (mono_runtime_exec_main): new arch. independent impl.
21234         (mono_runtime_invoke_array): new method - like
21235         mono_runtime_invoke, but you can pass an array of objects.
21236         (mono_remoting_invoke): new arch. independent impl.
21237         (mono_message_invoke): new arch. independent impl.
21238         (mono_runtime_class_init): new arch. independent impl.
21239         (mono_runtime_object_init): new arch. independent impl.
21240
21241 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
21242
21243         * metadata.c, object.c, reflection.c: documented the exported
21244         functions.
21245
21246 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
21247
21248         * icall.c: simpler code to pass the assembly builder data to corlib.
21249         Implement GetNestedTypes() internalcall.
21250
21251 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
21252
21253         * class.c: warn if a type can't be loaded.
21254
21255 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
21256
21257         * image.h: typedef MonoImageOpenStatus
21258         * types.h: removed unused file
21259         
21260 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
21261
21262         * icall.c: Enum_ToObject accepts enum value arguments.
21263
21264 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
21265
21266         * class.c: move initialization of properties, events and nested
21267         classes, so that they happen for interfaces, too.
21268
21269 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
21270
21271         * icall.c: cleanup some ugly casts in Array_SetValue*.
21272
21273 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
21274
21275         * icall.c: the values array fro enums is of the correct type, now.
21276         Implement (correctly) getFullName instead of assQualifiedName for
21277         MonoType.
21278         * reflection.h, reflection.c: added mono_type_get_name ().
21279
21280 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
21281
21282         * assembly.c, image.h: for each MonoImage, record from wich assembly
21283         it was loaded.
21284         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
21285         Make Type.Assembly work.
21286
21287 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
21288
21289         * debug-symfile.h: use char* instead of gpointer to avoid
21290         unnecessary casts.
21291
21292         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
21293
21294         * icall.c (ves_icall_InternalExecute): impl. FielSetter
21295         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
21296
21297 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
21298
21299         * icall.c (mono_message_init): impl. (code cleanup)
21300         (ves_icall_InternalExecute): impl. FieldGetter
21301
21302         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
21303         defined we call all (non-static)methods through the vtable. 
21304
21305 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
21306
21307         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
21308         finalizer even though the memory is still referenced (and the chunk of
21309         memory is not freed).
21310
21311 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21312
21313         * assembly.c: fix brokeness.
21314
21315 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
21316
21317         * class.c: kill some warnings. Check explicit interface method
21318         implementation also without considering the namespace.
21319         Load also literal strings in static class data.
21320
21321 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
21322
21323         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
21324         (default_assembly_name_resolver): Make the resolver take the
21325         "base" directory where the assembly was originally defined, so we
21326         can load DLLs that are in the same directory as the assembly that
21327         is being referenced.
21328
21329 2002-03-28  Dick Porter  <dick@ximian.com>
21330
21331         * file-io.h: 
21332         * file-io.c:
21333         * socket-io.c: 
21334         * unicode.h: 
21335         * unicode.c: Warning cleanups
21336
21337 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
21338
21339         * object.h, reflection.h: use the correct type instead of MonoObject.
21340
21341 2002-03-28  Martin Baulig  <martin@gnome.org>
21342
21343         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
21344         (mono_debug_update_symbol_file): Initialize classes if necessary.
21345
21346 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21347
21348         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
21349         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
21350
21351 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
21352
21353         * assembly.h: fix function prototype.
21354         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
21355         * mono-endian.h: use const cast.
21356
21357 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21358
21359         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
21360
21361 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21362
21363         * loader.c: don't assert when a typeref can't be loaded, give
21364         a chance to the runtime to trow an exception instead.
21365         * loader.h: fix warning.
21366
21367 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
21368
21369         * class.c (mono_class_proxy_vtable): added proxy support
21370
21371 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
21372
21373         * icall.c: removed last of PAL calls, added System.Environment
21374         * file-io.h, file-io.c: MonoIO implementation
21375         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
21376
21377 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21378
21379         * appdomain.c: do not use the byte marker in ldstr table lookup.
21380         * debug-helpers.c: allow two ':' to separate class and method name.
21381         * object.c: allocate arrays bounds with the GC, too.
21382         * verify: add a few more checks.
21383
21384 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
21385
21386         * reflection.c: output also literal strings. Allocate parameter data
21387         with GC_malloc() (thanks, Martin, for catching this!).
21388
21389 2002-03-26  Martin Baulig  <martin@gnome.org>
21390
21391         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
21392         include the `this' offset in the `param_offsets'.
21393
21394 2002-03-25  Martin Baulig  <martin@gnome.org>
21395
21396         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
21397         mono_debug_get_class() function to get the classes. Added new
21398         relocation types for arrays and strings.
21399         (mono_debug_get_class): New static function to search in all
21400         referenced assemblies for a metadata token.
21401
21402         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
21403
21404 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
21405
21406         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
21407         hold gc-allocated objects. Make the string heap a stream like the
21408         others. Removed duplicated code when writing stream info.
21409         Added asserts to catch possible buffer overflows. Set the sorted map
21410         for tables that need sorting. Added some documentation.
21411
21412 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
21413
21414         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
21415         for interned strings and vtables.
21416
21417 2002-03-24  Martin Baulig  <martin@gnome.org>
21418
21419         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
21420         it in the array since it was created with g_slist_prepend().
21421
21422 2002-03-24  Martin Baulig  <martin@gnome.org>
21423
21424         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
21425         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
21426         (mono_debug_method_from_token): Renamed to
21427         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
21428         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
21429
21430         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
21431         relocation types.
21432
21433         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
21434
21435 2002-03-24  Martin Baulig  <martin@gnome.org>
21436
21437         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
21438         (mono_debug_method_from_token): New func.
21439
21440         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
21441         New interncall, calls mono_debug_local_type_from_signature().
21442         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
21443         calls mono_debug_method_from_token().
21444
21445 2002-03-23  Martin Baulig  <martin@gnome.org>
21446
21447         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
21448         specifies the number of bytes to be converted, not the array size.
21449         Return the number of chars, not the number of bytes.
21450         (ves_icall_iconv_get_chars): The `byteCount' argument
21451         specifies the number of bytes to be converted, not the array size.
21452
21453 2002-03-23  Martin Baulig  <martin@gnome.org>
21454
21455         * reflection.h (MonoReflectionSigHelper): New type.
21456
21457         * reflection.c (mono_reflection_sighelper_get_signature_local),
21458         (mono_reflection_sighelper_get_signature_local): New functions.
21459
21460         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
21461         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
21462         interncalls.
21463
21464 2002-03-23  Martin Baulig  <martin@gnome.org>
21465
21466         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
21467         is_writeable is set.
21468         (mono_raw_buffer_update): New function to write the modified map
21469         back to disk.
21470
21471         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
21472
21473         * debug-symfile.c (mono_debug_update_symbol_file): Call
21474         mono_raw_buffer_update() when done writing.
21475
21476 2002-03-23  Martin Baulig  <martin@gnome.org>
21477
21478         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
21479
21480         * debug-symfile.c: Added support for arguments and local variables.
21481
21482 2002-03-23  Dick Porter  <dick@ximian.com>
21483
21484         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
21485         protected by ifdefs, hence breaking the w32 build.
21486
21487 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21488
21489         * object.c: implement is_interned() the right way.
21490
21491 2002-03-21  Martin Baulig  <martin@gnome.org>
21492
21493         * debug-symfile.[ch]: New files to handle debugging information
21494         files. There's also support to dynamically update these symbol
21495         files to include machine dependent information.
21496
21497 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
21498
21499         * threads.c (mono_thread_create): new function to create thread
21500         from C
21501
21502 2002-03-20  Martin Baulig  <martin@gnome.org>
21503
21504         * icall.c (ves_icall_InternalInvoke): Create a new object if the
21505         method is a constructor.
21506         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
21507         points to ves_icall_InternalInvoke().
21508
21509 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
21510
21511         * file-io.c: Flush shouldn't throw exceptions.
21512
21513 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
21514
21515         * file-io.c: FileStream flush support; FileSetLength now
21516         restores file pointer.
21517
21518 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21519
21520         * class.c: set image for pointer classes.
21521
21522 2002/03/19  Nick Drochak <ndrochak@gol.com>
21523
21524         * sysmath.c: Forgot one.
21525
21526 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
21527
21528         * sysmath.c: Avoid redefining existing names.
21529
21530 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
21531
21532         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
21533         handled by runtime as icall rather than dllimport from libm.so
21534         * file-io.c, file-io.h: fixed handle argument type.
21535
21536 2002-03-18  Dick Porter  <dick@ximian.com>
21537
21538         * reflection.c (mono_image_get_type_info): rename interface to
21539         iface, because of "#define interface struct" on windows.
21540
21541 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
21542
21543         * class.c, class.h: rename and export mono_ptr_class_get().
21544         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
21545         * reflection.c, reflection.h, icall.c: better/saner type name
21546         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
21547         method signatures.
21548
21549 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
21550
21551         * class.c (mono_class_init): removed hardcoded GHC_SLOT
21552
21553         * icall.c (ves_icall_InternalInvoke): impl.
21554
21555 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21556
21557         * reflection.c: output the interface map table, too.
21558
21559 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21560
21561         * class.c (class_compute_field_layout): separate computation of 
21562         static field layout
21563
21564 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
21565
21566         * icall.c: added System.Buffer support.
21567         * file-io.c: moved file icalls from PAL to FileStream.
21568
21569 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
21570
21571         * icall.c (ves_icall_System_Object_GetHashCode): impl.
21572
21573 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
21574
21575         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
21576
21577 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21578
21579         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
21580
21581 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21582
21583         * debug-helpers.{c,h}: moved here from monograph some useful functions
21584         to locate a method by name/signature in a class or image. Included
21585         also a small and flexible IL disassembler.
21586
21587 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21588
21589         * reflection.c: fixup tokens in methods with small header size, too.
21590
21591 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
21592
21593         * object.c (mono_string_to_utf8): remove assert(!error), instead
21594         print a warning. 
21595
21596 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
21597
21598         * icall.c: update to the new mono_Array_class_get interface.
21599
21600 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21601
21602         * appdomain.c, object.c: Boehm-GC enable.
21603         * icall.c: make get_data_chunk() support split data requests.
21604         Ensure a class is initialized in more cases. Return only the first
21605         property found in GetProperties() or the compiler gets confused. 
21606         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
21607         * reflection.h, reflection.c: add fixup mechanism for field and method
21608         tokens. Initialize assembly->typeref in a single place. Output
21609         properties after events. Support custom attributes for events, too.
21610         Typo fix for paramter custom attrs.
21611
21612 2002-03-07  Martin Baulig  <martin@gnome.org>
21613
21614         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
21615
21616 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
21617
21618         * class.c (mono_array_class_get): fix. for multi. dim. arrays
21619
21620 2002-03-06  Martin Baulig  <martin@gnome.org>
21621
21622         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
21623         non-zero lower bounds. See testcases #F10-#F13.
21624
21625 2002-03-05  Martin Baulig  <martin@gnome.org>
21626
21627         * exception.c (mono_get_exception_argument_out_of_range): New exception.
21628
21629         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
21630         ves_icall_System_Array_GetValue(), only calculate the absolute array position
21631         here.
21632         (ves_icall_System_Array_SetValue): Likewise.
21633         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
21634         as argument and does the actual work. This function is used when copying a
21635         multi-dimensional array.
21636         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
21637         now do all the widening conversions of value types.
21638         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
21639
21640 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21641
21642         * class.c: remove some magic numbers and use the smbolic names,
21643         instead. Added init_events() to load event info at class init time.
21644         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
21645         and mono_metadata_methods_from_event().
21646         * reflection.h, reflection.c: added support for writing out the evnets
21647         related information.
21648
21649 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
21650
21651         * reflection.h, icall.c: use a different method (GetInterfaces)
21652         to gather interface info and add isbyref, isprimitive and
21653         ispointer to the ves_icall_get_type_info() return value.
21654
21655 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
21656
21657         * class.h: stared adding support for events.
21658         * icall.c: split find_members implementation. Added debug icall to get
21659         the address of an object.
21660         * reflection.c: handle TypeBuilders in mono_type_get_object().
21661
21662 2002-03-01  Martin Baulig  <martin@gnome.org>
21663
21664         * icall.c (ves_icall_System_Array_GetLength): This must throw an
21665         ArgumentOutOfRangeException(), not an ArgumentException().
21666         (ves_icall_System_Array_GetLowerBound): Likewise.
21667         (ves_icall_System_Array_GetValue): Improved argument checking.
21668         (ves_icall_System_Array_SetValue): Improved argument checking.
21669
21670 2002-03-01  Martin Baulig  <martin@gnome.org>
21671
21672         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
21673         called with invalid arguments rather than just dying with g_assert().
21674         (ves_icall_System_Array_SetValue): Likewise.
21675         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
21676         raise a NotImplementedException instead.
21677         (ves_icall_System_Array_GetLength): Added argument checking.
21678         (ves_icall_System_Array_GetLowerBound): Added argument checking.
21679
21680 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
21681
21682         * object.h (mono_assert): new macros mono_assert and
21683         mono_assert_not_reached
21684
21685 2002-02-28  Martin Baulig  <martin@gnome.org>
21686
21687         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
21688         and "System::String::IsInterned" to "System::String::_IsInterned".
21689
21690 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
21691
21692         * icall.c: remove hacks for typebuilder. Added icall to create a
21693         modified type from a tybebuilder.
21694         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
21695         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
21696         to create a backing MonoClass for a TypeBuilder.
21697
21698 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21699
21700         * class.c, class.h: more refactoring of class init.
21701         Export mono_class_setup_mono_type() and mono_class_setup_parent().
21702
21703 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
21704
21705         * marshal.c, marshal.h: start of marshaling interface.
21706
21707 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21708
21709         * icall.c: fix order in assembly qualified name icall.
21710
21711 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21712
21713         * class.c: do not free str, since we store it in the hash table.
21714         * reflection.h: add label field to MonoILExceptionInfo.
21715         * reflection.c: handle references to more than one assembly. Handle
21716         case when there isn't a module created in the assembly.
21717
21718 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
21719
21720         * class.c: Fix typo. Start refactoring of class init code.
21721
21722 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
21723
21724         * appdomain.c: exit with 1 on error.
21725         * class.c: we already have the name in MonoClassField.
21726         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
21727         MonoStreamHeader instead of an offset of image->raw_metadata.
21728
21729 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
21730
21731         * appdomain.c (mono_init): Be even more descriptive about the error.
21732
21733 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
21734
21735         * appdomain.c: give the user an informative message when corlib can't
21736         be loaded.
21737
21738 2002-02-26  Martin Baulig  <martin@gnome.org>
21739
21740         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21741         New icall to get the time zone data.
21742
21743 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21744
21745         * reflection.c: set virtual and raw size of section correctly.
21746         * threads.c: transfer domain information to newly created threads.
21747
21748 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21749
21750         * class.c: when instancing a class in a domain, load the default
21751         vaules for static fields from the constant table. Fix System.Enum to
21752         not be an enum.
21753         * icall.c: implement Object::GetType() internalcall. Implemented
21754         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
21755         Fixed checking of binding flags in find_members().
21756         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
21757         * reflection.c: handle enumerations when writing to the constant
21758         table. Use a different object cache for types.
21759
21760
21761 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
21762
21763         * object.c (mono_object_isinst): fix for arrays
21764
21765         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
21766
21767 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21768
21769         * object.c: don't use mprotect ()  and fix intern pool hash table
21770         lookup for big endian systems.
21771
21772 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21773
21774         * icall.c: change type_is_subtype_of () signature.
21775
21776 2002-02-21  Mark Crichton  <crichton@gimp.org>
21777
21778         * rand.c, rand.h: Added random number generator for
21779         System.Security.Cryptography classes.
21780
21781         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
21782
21783         * icall.c: Added System.Security.Cryptography calls.
21784
21785 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
21786
21787         * class.c, icall.c, metadata.c: better support for pointer types.
21788         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
21789         * reflection.c: Add support for getting custom attrs for properties
21790         and simplify some code.
21791
21792 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
21793
21794         * icall.c: change getToken () and add custom attribute GetBlob()helper
21795         method.
21796         * reflection.h: add custom attrs array to the reflection builder structures.
21797         * reflection.c: encode and emit custom attributes for all the relevant
21798         reflection objects. Cache fieldref and methodref tokens. Change
21799         mono_image_create_token() interface to take a MonoDynamicAssembly.
21800         More complete custom attributes decoder. Load custom attributes for
21801         Assembly, Field, Method and Constructor objects, too. Make the
21802         returned array an Attribute[] one, not object[]. Added
21803         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
21804         custom attribute constructor.
21805
21806 2002-02-20  Dick Porter  <dick@ximian.com>
21807
21808         * icall.c:
21809         * rawbuffer.c:
21810         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
21811         problem code out for now).
21812
21813 2002-02-19  Radek Doulik  <rodo@ximian.com>
21814
21815         * object.c (mono_ldstr): use hash table to avoid multiple swapping
21816
21817 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
21818
21819         * icall.c: register the GetCustomAttributes method.
21820         * object.c, object.h: add mono_string_new_len ().
21821         * reflection.h, reflection.c: added mono_runtime_invoke(),
21822         mono_install_runtime_invoke(). Added
21823         mono_reflection_get_custom_attrs () to load custom attributes and
21824         create the attribute objects.
21825
21826 2002-02-19  Dick Porter  <dick@ximian.com>
21827         * threads-dummy-types.c:
21828         * threads-dummy-types.h:
21829         * threads-dummy.c:
21830         * threads-dummy.h:
21831         * threads-pthread-types.c:
21832         * threads-pthread-types.h:
21833         * threads-pthread.c:
21834         * threads-pthread.h:  Deleted obsolete files
21835
21836 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
21837
21838         * class.c (mono_class_vtable): runtime init the class when we
21839         allocate static class data.
21840
21841         * icall.c (ves_icall_System_Array_SetValue): check for null values.
21842
21843         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
21844         and String - but we will need generic marshalling support in the
21845         future. 
21846         (mono_init): set the domain name in a ms compatible way
21847
21848         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
21849         String[].
21850
21851 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
21852
21853         * object.c (mono_array_clone): use alloca() instead of g_malloc  
21854         for sizes
21855
21856         * appdomain.c (mono_domain_unload): impl.
21857
21858 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
21859
21860         * appdomain.c, object.c: fix intern pool implementation.
21861         * class.c: fix alignment code.
21862
21863 2002-02-16  Radek Doulik  <rodo@ximian.com>
21864
21865         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
21866         and s2 > s1, just copy lower bytes to be compatible with little
21867         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
21868         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
21869
21870         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
21871         force big_endian to be 1 for big endian machines 
21872         (ves_icall_iconv_new_decoder): ditto
21873
21874 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
21875
21876         * socket-io.c (convert_sockopt_level_and_name): If the system
21877         doesn't define SOL_IP or SOL_TCP, get them by hand using
21878         getprotobyname() and caching the values (because this could be a
21879         slow operation).
21880         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
21881         Use the appropriate struct when the system does support it. Ie,
21882         not all systems have struct ip_mreqn so use struct ip_mreq when
21883         appropriate.
21884
21885 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
21886
21887         * reflection.c: handle finally clauses.
21888
21889 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
21890
21891         * socket-io.c: use g_snprintf() instead of snprintf.
21892
21893 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21894
21895         * reflection.c (mono_param_get_objects): Cast second argument to
21896         mono_method_get_param_names to a const char** to silence the
21897         compiler warning.
21898
21899         * appdomain.c (mono_domain_assembly_open): Put parens around the
21900         truth statement in the for-loop.
21901
21902         * unicode.c (iconv_convert): Got rid of a compiler warning about
21903         int i being unused when the system has a new iconv.
21904         (iconv_get_length): Same.
21905
21906         * image.c (load_class_names): Cast the second argument to
21907         g_hash_table_insert() to char* to hush compiler warnings about the
21908         arg being a const.
21909         (mono_image_open): Same here.
21910
21911         * socket-io.c: Don't conditionally include sys/filio.h or
21912         sys/sockio.h here anymore since we now get them from
21913         io-layer/io-layer.h
21914         (inet_pton): If the system doesn't support inet_aton, implement
21915         using inet_addr and also #define INADDR_NONE if it isn't defined
21916         by the system.
21917
21918 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
21919
21920         * metadata.c, metadata.h: added function to get packing and size info
21921         of a typedef.
21922         * reflection.h, reflection.c: handle field RVA data. Save info about
21923         the table layout if needed. Assign typedef indexes to all the types
21924         before dumping the info about them to avoid forward reference problems.
21925
21926 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
21927
21928         * socket-io.c (convert_sockopt_level_and_name): ifdef
21929         SO_ACCEPTCONN because it is not defined on my system (old debian)
21930
21931 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
21932
21933         * opcode.c: use stddef.h to get NULL.
21934
21935 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
21936
21937         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
21938         for FIONBIO, FIONREAD and SIOCATMARK.
21939         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
21940         define INADDR_NONE and besides, inet_addr() is deprecated and
21941         should not be used. Use inet_pton() instead - it also has the
21942         added bonus that it can easily handle IPv6 addresses as well.
21943         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
21944
21945 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
21946
21947         * decimal.c: remove _MSC_VER conditional.
21948
21949 2002-02-13  Dick Porter  <dick@ximian.com>
21950
21951         * socket-io.c: 
21952         * icall.c: Internal calls for Blocking, Select, Shutdown,
21953         GetSocketOption and SetSocketOption
21954
21955 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21956
21957         * assembly.cs: better resolver: use it instead of some kludgy
21958         code.
21959
21960 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
21961
21962         * reflection.c: the best way to speed-up the compiler is to avoid
21963         infinite loops.
21964
21965 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
21966
21967         * class.c (mono_class_vtable): changed the object layout
21968         (obj->vtable->class). 
21969         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
21970
21971 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
21972
21973         * assembly.c: look for assemblies in the assembly dir, too.
21974
21975 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21976
21977         * class.c: fix thinko in mono_class_from_type().
21978
21979 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
21980
21981         * exception.h, exception.c: added TypeLoadException.
21982         * object.h, object.c: added mono_array_clone ().
21983         * icall.c: handle throwOnError in AssemblyGetType().
21984         Added Array.Clone().
21985         * opcode.h, opcode.c: use a single value for the opcode val.
21986         Compile fix for non-gcc compilers.
21987
21988 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
21989
21990         * opcodes.c, opcodes.h: export interesting info about opcodes.
21991
21992 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
21993
21994         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
21995         icalls. 
21996
21997         * class.c (class_compute_field_layout): set element_class for enums
21998         (mono_class_create_from_typedef): set element_class for normal classes
21999
22000         * icall.c (ves_icall_System_Enum_get_value): impl.
22001
22002         * class.c (mono_class_create_from_typedef): do not set valuetype
22003         flag for System.ValueType and System.Enum
22004
22005 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
22006
22007         * unicode.c (iconv_convert): fix big endian problem.
22008
22009 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22010
22011         * class.c: add asserts if we are ever going to scribble over memory.
22012         * socket-io.c: not all systems have AF_IRDA defined.
22013
22014 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
22015
22016         * class.c (class_compute_field_layout): do not consider static
22017         fields to compute alignment
22018
22019 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
22020
22021         * appdomain.c (mono_appdomain_get): impl.
22022         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
22023
22024 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
22025
22026         * icall.c: ignore "file://" prefix when loading an assembly.
22027
22028 2002-01-23  Dick Porter  <dick@ximian.com>
22029
22030         * socket-io.c:
22031         * icall.c:
22032         * Makefile.am: Added socket support
22033
22034 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
22035
22036         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
22037         code back.  This should return the assemblies that are loaded by
22038         the runtime on behalf of an application domain. 
22039
22040         The current implementation is still broken, it just returns every
22041         assembly loaded, but until we get real applications domain this
22042         will do.
22043
22044 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
22045
22046         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
22047         AppDomain object.
22048
22049 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
22050
22051         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
22052         the mono_class_from_name lookup.
22053         (ves_icall_get_parameter_info): ditto.
22054         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
22055         method.
22056         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
22057
22058 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
22059
22060         * class.c: load also nested classes on class init.
22061         System.ValueType instance methods gets passed boxed
22062         values, unless methods in derived classed that get a pointer to the
22063         data.
22064         * icall.c: use better name parsing code in GetType().
22065         * image.c, image.h: add mono_image_loaded ().
22066         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
22067         * reflection.c, reflection.h: added mono_reflection_parse_type().
22068
22069 2002-01-22  Veronica De Santis <veron78@interfree.it>
22070
22071         * icall.c : Added mapping of internal calls for Manual and Auto reset events
22072         * threads.c : Added the implementation of internal calls for events
22073         * threads.h : Added prototypes of internal calls for events
22074         
22075 2002-01-21  Radek Doulik  <rodo@ximian.com>
22076
22077         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
22078
22079 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
22080
22081         * class.c (mono_class_init): set min_align to 1 (instead of 0)
22082         (mono_class_value_size): use min_align
22083
22084 2002-01-20  Dick Porter  <dick@ximian.com>
22085
22086         * threads.h:
22087         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
22088         so it compiles on w32.
22089
22090 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
22091
22092         * metadata.c (mono_type_stack_size): impl.
22093
22094         * class.c (mono_class_get_field): impl. memberref token
22095
22096 2002-01-16 Veronica De Santis <veron78@@interfree.it>
22097
22098         * icall.h : Added the internal calls mapping for CreateMutex_internal
22099                     and ReleaseMutex_internal.
22100         * threads.h : Added the prototype of mutexes internal calls.
22101         * threads.c : Added the implementations of mutexes internal calls.
22102
22103 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
22104
22105         * metaparse.h: removed unused file.
22106         * reflection.c, reflection.h: added stream_data_align () function 
22107         to align data in streams and keep stream aligned. Add support for
22108         exception support in method headers.
22109
22110 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
22111
22112         * unicode.c: make iconv_convert () return the number of bytess written
22113         in the output buffer.
22114
22115 2002-01-15  Dick Porter  <dick@ximian.com>
22116         * threads.c: Make the runtime's idea of infinite timeouts coincide
22117         with the class library's
22118
22119         Fix a particularly egregious bug in mono_thread_cleanup(). That
22120         code was so utterly bogus it must have been written on a Monday.
22121
22122 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
22123
22124         * reflection.h: add subtypes field to TypeBuilder.
22125         * reflection.c: encode constants for literal fields.
22126         Handle subtypes. Fix user string token (and add a zero byte)
22127         at the end.
22128         
22129 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
22130
22131         * class.c (mono_class_init): bug fix: assign slot numbers for
22132         abstract methods.
22133
22134 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22135
22136         * reflection.c: don't try to output a code RVA for abstract methods.
22137         Small fixes for method header format. Output parameter info to the
22138         ParamDef table. Save method overriding info to MethodImpl table.
22139         Fix property support. Allow typedef.extends to be a type in the
22140         building assembly.
22141         * verify.c: fix off-by-one error.
22142
22143 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
22144
22145         * class.c: fix mono_class_from_mono_type () for szarray types.
22146         Remove unused cache check in mono_class_from_type_spec().
22147         * icall.c: *type_from_name () functions handle simple arrays and byref.
22148         * reflection.c: handle byref and szarray types. Handle methods without
22149         body (gets P/Invoke compilation working). Handle types and fields in
22150         get_token ().
22151         * reflection.h: add rank to MonoTypeInfo.
22152
22153 2002-01-10  Dick Porter  <dick@ximian.com>
22154
22155         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
22156         internal calls
22157
22158 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
22159
22160         * icall.c: initialize class in type_from_handle ().
22161         Loop also in parent classes for get_method ().
22162         * reflection.c: properly encode class and valuetype types.
22163         Start on encoding TypeBuilder types. Handle fieldrefs.
22164         Use correct length when registering a user string.
22165         Handle ConstructorBuilder and MonoMethod in get_token ().
22166         Make mono_type_get_object () aware of cached types.
22167         * object.c: back out change to mono_string_new ().
22168
22169 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
22170         * object.c: mono_string_new should return a NULL when the string 
22171         passed in is NULL -- not try to deference it.
22172         
22173 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
22174
22175         * icall.c: hack to make IsSubType work for TypeBuilders.
22176         * reflection.c: emit constructors before methods.
22177         Retrieve param names in mono_param_get_objects().
22178
22179 2002/01/05  Nick Drochak  <ndrochak@gol.com>
22180
22181         * Makefile.am: fix list of headers and sources so automake 1.5
22182         doesn't complain. Removed \# at end of list.
22183
22184 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
22185
22186         * reflection.c: get token for a method ref. Set return type of
22187         constructor to void.
22188         * loader.c: debug message.
22189         * class.c: typo fix.
22190
22191 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
22192
22193         * icall.c: fix array init with rank > 1. FindMembers
22194         loops in parent class as well.
22195         * image.c: do not insert nested types in name cache.
22196         * reflection.c: warning fix.
22197         * reflection.h: add override method (for interface impl).
22198
22199 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
22200
22201         * metadata.c: fix customattr decoding.
22202
22203 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
22204
22205         * rawbuffer.cs: Added native Win32 implementation, avoids using
22206         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
22207
22208 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
22209
22210         * class.c: make the low-level routines handle the cache.
22211
22212 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
22213
22214         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
22215
22216 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
22217
22218         * class.c: fix mono_array_element_size() for objects.
22219         * class.h, class.c: add properties to MonoClass and load them
22220         at init time.
22221         * icall.c: check with isinst() when assigning a value to an array
22222         instead of requiring the classes to match exactly.
22223         Implemented icall for System.Type::GetType().
22224         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
22225         enums. Handle bindingflags when looking for methods and fields.
22226         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
22227         and mono_metadata_methods_from_property().
22228         * reflection.h, reflection.c: added structures for propreties,
22229         parameters and enums. Implemented mono_property_get_object() and
22230         mono_param_get_objects().
22231
22232 2001-12-18  Dick Porter  <dick@ximian.com>
22233
22234         * file-io.c: Use mono_string_to_utf16() instead of
22235         mono_string_chars()
22236
22237         * object.c: Added mono_string_to_utf16(), which copies the non
22238         NULL-terminated MonoString into a new double-null-terminated
22239         buffer.
22240
22241 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
22242
22243         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
22244
22245 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
22246
22247         * file-io.c: raise exceptions if handle is invalid.
22248
22249 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
22250
22251         * assembly.c: yet another check for mscorlib.
22252         * class.c, class.h: load nesting info for classes.
22253         * icall.c: many new functions to support the Reflection classes.
22254         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
22255         * reflection.h, reflection.c: mono_image_create_token(),
22256         mono_assembly_get_object(), mono_type_get_object(),
22257         mono_method_get_object(), mono_field_get_object(): methods to return
22258         objects that parallel the C representation of assemblies, types,
22259         methods, fields.
22260
22261 2001-12-11  Dick Porter  <dick@ximian.com>
22262
22263         * icall.c:
22264         * file-io.c: Internal calls for file IO.
22265
22266 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
22267
22268         * tabledefs.h: missing FileAttributes.
22269         * verify.h, verify.c: use is_valid_string () to simplify and check for
22270         valid strings more correctly. Fix warnings and speeling.
22271         Check more tables: Filed, File, ModuleRef, StandAloneSig.
22272         Check code: branches, maxstack, method calls.
22273
22274 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
22275
22276         * object.c (mono_object_allocate): removed static, so that the jit
22277         can allocate value types.
22278
22279         * icall.c (ves_icall_System_DateTime_GetNow): impl.
22280
22281 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22282
22283         * class.c: init enum types right away and register the
22284         token->MonoClass map in mono_class_create_from_typedef ().
22285         * verify.h, verify.c: first cut of the verifier.
22286         * pedump.c: add --verify switch to verify metadata tables.
22287         * tabledefs.h: add some missing enums.
22288
22289 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
22290
22291         * class.c (mono_install_runtime_class_init): impl.
22292         (mono_class_init): renamed mono_class_metadata_init to
22293         mono_class_init, also removed the metadata_inited flag
22294
22295         * object.c (mono_object_isinst): use faster algorithm
22296
22297 2001-11-30  Radek Doulik  <rodo@ximian.com>
22298
22299         * mono-endian.h: reverted last change
22300         added function prototypes
22301
22302         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
22303         add mono-endian.c back
22304
22305         * mono-endian.c: returned back, as Paolo pointed out, it's needed
22306         for unaligned access, I've mistaked it with endianess. I am
22307         sorry.
22308         (mono_read16): fix reverted endianess
22309         (mono_read64): ditto
22310         (mono_read32): ditto
22311
22312 2001-11-30  Dick Porter  <dick@ximian.com>
22313
22314         * exception.c: Implement mono_exception_from_name()
22315
22316 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22317
22318         * metadata.h, metadata.c: remove params_size and locals_size and their
22319         calculation from the metadata code: they are only usefult to the
22320         interp.
22321
22322 2001-11-29  Radek Doulik  <rodo@ximian.com>
22323
22324         * object.c (mono_ldstr): swap bytes here, it's probably not the
22325         best place, but works for me now, I'll redo it once I know mono
22326         better, also note that I add PROT_WRITE and don't reset back, also
22327         note that it's only affects big endians, so x86 should be OK
22328
22329         * mono-endian.h (read16): use just glib macros for both endians
22330
22331         * mono-endian.c: removed as glib macros are used in in
22332         mono-endian.h so we don't need to care about endianess for read
22333         macros as glib does that for us already
22334
22335 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
22336
22337         * class.h, class.h: take minimum alignment into consideration so
22338         that the fields of a class remain aligned also when in an array.
22339
22340 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22341
22342         * loader.h, loader.c: add mono_method_get_param_names().
22343         * class.c: 0-init class fields.
22344
22345 2001-11-26  Dick Porter  <dick@ximian.com>
22346
22347         * icall.c:
22348         * threads-types.h:
22349         * threads.c: New file that handles System.Threading on all platforms
22350
22351         * object.c: 
22352         * object.h: Remove the synchronisation struct from MonoObject,
22353         replace it with a pointer that gets initialised on demand
22354
22355         * Makefile.am: Replace all the system-specific threading code with
22356         a single file that uses the new wrapper library
22357
22358 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
22359
22360         * class.c, class.h: add mono_install_trampoline() so that the runtime
22361         can register a function to create a trampoline: removes the ugly
22362         requirement that a runtime needed to export arch_create_jit_trampoline.
22363         * object.h, object.c: added mono_install_handler() so that the runtime
22364         can install an handler for exceptions generated in C code (with
22365         mono_raise_exception()). Added C struct for System.Delegate.
22366         * pedump.c: removed arch_create_jit_trampoline.
22367         * reflection.c: some cleanups to allow registering user strings and
22368         later getting a token for methodrefs and fieldrefs before the assembly
22369         is built.
22370         * row-indexes.h: updates and fixes from the new ECMA specs.
22371
22372 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
22373
22374         * class.h, class.c: add enum_basetype field to MonoClass.
22375         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
22376         to get index in the constant table reated to a field, param or
22377         property.
22378         * reflection.h, reflection.c: handle constructors. Set public-key and
22379         version number of the built assembly to 0.
22380         * row-indexes.h: update from new ECMA spec.
22381
22382 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22383
22384         * class.h, class.c: add a max_interface_id to MonoClass.
22385         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
22386         since it's used to do that. Added mono_type_type_from_obj().
22387         Make GetType() return NULL instead of segfaulting if the type was not
22388         found. Handle simple arrays in assQualifiedName.
22389         * object.h: add a struct to represent an Exception.
22390         * reflection.c: output call convention in method signature.
22391         Add code to support P/Invoke methods and fixed offsets for fields.
22392
22393 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
22394
22395         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
22396         the value.
22397         * icall.c: use mono_array_addr instead of array->vector: fixes the
22398         reflection image writing.
22399         * reflection.c: init call convention byte to 0 in method signature.
22400         Encode the property signature. Don't output property-related methods
22401         twice. Really process the properties for a type (don't cast a field to
22402         a property, my mom always told me that).
22403         Fix 64 bit issues in pointer alignment in a different and more
22404         readable way.
22405
22406 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
22407
22408         * loader.h: Removed type class from MonoDefaults, added monotype
22409
22410         * loader.c: Loaded MonoType, removed loading of Type
22411
22412         * icall.c (my_mono_new_object): Now returns a System.MonoType,
22413         and fills in System.Type._impl with a RuntimeTypeHandle rather
22414         than the actual MonoClass *
22415
22416         (ves_icall_type_from_handle): change from type_class to
22417         monotype_class
22418
22419         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
22420         implemented
22421
22422         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
22423         implemented
22424
22425         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
22426
22427         (ves_icall_System_Reflection_Assembly_GetType): implemented
22428
22429         (ves_icall_System_MonoType_assQualifiedName): implemented
22430
22431         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
22432
22433 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
22434
22435         * assembly.c (mono_assembly_open): Implement a cache for the
22436         assemblies. 
22437
22438         (mono_assembly_close): only destroy the assembly when the last
22439         reference is gone.
22440         
22441 2001-11-09  Dick Porter  <dick@ximian.com>
22442
22443         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
22444
22445 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
22446
22447         * class.c (mono_class_metadata_init): bug fix: compute the right slot
22448
22449 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
22450
22451         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
22452         from Martin Weindel.
22453         * object.h: add mono_string_chars ().
22454
22455 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
22456
22457         * reflection.c (build_compressed_metadata): Eliminates warnings
22458         and uses 64-bit clean code.
22459
22460         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
22461         (mono_type_equal): Change signature to eliminate warnings.
22462
22463 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
22464
22465         * icall.c, loader.c: remove the internalcall array constructors.
22466         Changes to match the new MonoArray structure.
22467         * object.h, object.c: an array object doesn't allocate an extra
22468         vector. Add mono_array_new_full () to create jagged arrays easily.
22469
22470 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
22471
22472         * metadata.h, metadata.c: add mono_metadata_field_info () to
22473         retreive all the info about a field from vairous tables.
22474         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
22475         * class.h, class.c: augment MonoClassField with more info.
22476         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
22477         policy and load a field's RVA if needed.
22478
22479 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
22480
22481         * class.c (mono_class_metadata_init): create a trampoline for all
22482         virtual functions instead of actually compiling them.
22483
22484 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
22485
22486         * class.h, class.c: include name in MonoClassField.
22487         * class.c: fix fundamental type of System.Object and System.String.
22488         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
22489         tokens in ldtoken.
22490         * icall.c: remove internalcalls for the Reflection stuff that is now
22491         done in C# code.
22492         * loader.c: mono_field_from_memberref () implementation.
22493         * mono-endian.c: thinko (s/struct/union/g).
22494         * object.c, object.h: make the mono_string_* prototypes actually use
22495         MonoString instead of MonoObject.
22496         * reflection.c, reflection.h: updates for changes in the reflection
22497         code in corlib: we use C structures that map to the actual C# classes.
22498         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
22499         fat method header if needed and use the info from the ILGenerator for
22500         methods. Handle fields in types. Misc fixes.
22501
22502 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
22503
22504         * class.c (mono_class_metadata_init): bug fix: always allocate
22505         space for static class data
22506
22507 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
22508
22509         * class.c (mono_compute_relative_numbering): use relative
22510         numbering to support fast runtime type checks.
22511
22512 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
22513
22514         * class.c (mono_class_create_from_typeref): added debugging output
22515         to print class name when MonoDummy is returned instead of real class
22516
22517 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
22518
22519         * class.c (mono_class_metadata_init): interface offset table now
22520         contains pointers into the vtable - this is more efficient for the jit
22521
22522 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
22523
22524         * class.c (mono_class_metadata_init): use a temporary vtable (the
22525         old algorithm only worked for the interpreter, but not for the jit)
22526
22527 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
22528
22529         * loader.c (method_from_memberref): use mono_class_get to get the
22530         class of an array instead of using System.Array directly.
22531         (mono_get_method): also add MEMBERREF methods to the method cache
22532         which usefull for arrays.
22533
22534 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
22535
22536         * pedump.c (arch_compile_method): added to compute vtable entry
22537
22538         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
22539         number of interfaces.
22540         
22541         * class.h: merged MonoArrayClass into MonoClass
22542
22543         * class.c (mono_class_create_from_typedef): compute the vtable size and
22544         allocate space to include the vtable inside MonoClass
22545         (mono_class_metadata_init): initialize the vtable
22546
22547 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
22548
22549         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
22550         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
22551         * image.c: endian fixes by Laurent Rioux.
22552         * object.h, object.c: rename MonoStringObject to MonoString and
22553         MonoArrayObject to MonoArray. Change some function names to conform to
22554         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
22555         guint16* as first argument, so don't use char*.
22556         Provide macros to do the interesting things on arrays in a portable way.
22557         * threads-pthread.c: updates for the API changes and #include <sched.h>
22558         (required for sched_yield()).
22559         * icall.c: updates for the API changes above.
22560         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
22561         platforms that need them.
22562
22563 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22564
22565         * class.c: set the correct type for all the fundamental
22566         type when loading the class.
22567
22568 2001-10-05  Dick Porter  <dick@ximian.com>
22569
22570         * threads-pthread.c (pthread_mutex_timedlock): Simple
22571         compatibility version for C libraries that lack this call.
22572
22573 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22574
22575         * class.c: MonoTypes stored in MonoClass are stored as
22576         fundamental MonoTypes when the class represents a
22577         fundamental type (System.Int32, ...).
22578         The TypeHandle return by ldtoken is a MonoType*.
22579         * icall.c: ves_icall_get_data_chunk () write out all the
22580         PE/COFF stuff. Implement ves_icall_define_method (),
22581         ves_icall_set_method_body (), ves_icall_type_from_handle ().
22582         * image.c: properly skip unknown streams.
22583         * loader.h, loader.c: add type_class to mono_defaults.
22584         * metadata.c, metadata.h: export compute_size () as
22585         mono_metadata_compute_size () with a better interface.
22586         Typo and C&P fixes.
22587         * pedump.c: don't try to print the entry point RVA if there is no entry point.
22588         * reflection.c, reflection.h: many cleanups, fixes, output method
22589         signatures and headers, typedef and typeref info, compress the metadata
22590         tables, output all the heap streams, cli header etc.
22591         * row-indexes.h: typo fixes.
22592
22593 2001-10-04  Dick Porter  <dick@ximian.com>
22594
22595         * object.h: Add a synchronisation mutex struct to MonoObject
22596
22597         * object.c (mono_new_object): Initialise the object
22598         synchronisation mutexes
22599
22600         * icall.c: System.Threading.Monitor internal calls
22601         
22602         * threads-pthread.h:
22603         * threads-pthread.c: System.Threading.Monitor internal calls
22604
22605         * threads-types.h: New file, includes the system-specific thread
22606         structures
22607         
22608         * threads-pthread-types.h:
22609         * threads-pthread-types.c: New files, handle pthread-specific
22610         synchronisation types
22611
22612         * threads-dummy-types.h: 
22613         * threads-dummy-types.c: New files of dummy support for
22614         thread-specific types
22615
22616         * metadata.c:
22617         * image.c:
22618         * pedump.c: include mono-endian.h not endian.h
22619         
22620         * Makefile.am: More threads files.
22621         Name mono-endian.h not endian.h
22622
22623 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
22624
22625         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
22626         stuff and implement a few more bits.
22627         * icall.c: a field needs to be dereferenced twice. Do not use the same
22628         name for two variables in the same scope.
22629         * image.c, image.h: cleanups.
22630
22631 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
22632
22633         * class.c (mono_class_metadata_init): bug fix: compute the right size
22634
22635 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
22636
22637         * icall.c: implemented some of the Reflection internalcalls.
22638         * image.c, image.h: start writing out the PE/COFF image.
22639         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
22640         that does the reverse than decode_blob_size ().
22641         * object.c: use mono_metadata_encode_value (). Move here
22642         temporary implementation of mono_string_to_utf8 ().
22643         * rawbuffer.c: make malloc_map static.
22644
22645 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22646
22647         * metadata.c: fix type comparison for arrays.
22648         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
22649         Added a couple of new classes to monodefaults.
22650         * icall.c: added a couple of Reflection-related internalcalls.
22651         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
22652         Added a byval_arg MonoType to MonoClass.
22653
22654 2001-09-28  Dick Porter  <dick@ximian.com>
22655
22656         * icall.c:
22657         * threads-pthread.h: 
22658         * threads-pthread.c: Implemented internal calls for
22659         LocalDataStoreSlot operations.  Applied mutexes around all shared
22660         data.  Reworked the thread creation and Start() operations to
22661         avoid a race condition.
22662         
22663         * threads-dummy.h:
22664         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
22665
22666 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
22667
22668         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
22669
22670 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
22671
22672         * class.c, loader.c: warn and return NULL instead of erroring out.
22673         * icall.c: added System.AppDomain::getCurDomain().
22674         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
22675
22676 2001-09-25  Dick Porter  <dick@ximian.com>
22677
22678         * threads-pthread.h:
22679         * threads-pthread.c: Implemented timed thread joining and added
22680         System.Threading.Thread::Join_internal internal call
22681
22682         * icall.c: Added System.Threading.Thread::Join_internal internal call
22683
22684         * threads-dummy.h:
22685         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
22686
22687 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
22688
22689         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
22690         mono_string_intern () to implement the semantics of the ldstr opcode
22691         and the interning of System.Strings.
22692         * icall.c: provide hooks to make String::IsIntern and String::Intern
22693         internalcalls.
22694
22695 2001-09-23  Dick Porter  <dick@ximian.com>
22696
22697         * threads-dummy.c: 
22698         * threads-dummy.h: New files of dummy threading routines
22699
22700         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
22701         support code based on system specifics
22702
22703         Rename PTHREAD_LIBS to THREAD_LIBS
22704         
22705 2001-09-23  Dick Porter  <dick@ximian.com>
22706
22707         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
22708         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
22709         internal calls.
22710         (mono_thread_init): Set up a Thread object instance to return when
22711         the main thread calls Thread.CurrentThread
22712         (mono_thread_cleanup): Wait for all subthreads to exit
22713
22714         * icall.c: New internal calls for System.Threading.Thread::Sleep
22715         (including Schedule) and CurrentThread
22716
22717         * threads.h: New file, to insulate thread-specific stuff from the
22718         rest of the code
22719
22720 2001-09-21  Dick Porter  <dick@ximian.com>
22721
22722         * threads-pthread.h: 
22723         * threads-pthread.c: New file, for handling pthreads-style
22724         threading support.  Start() now starts a new thread and executes
22725         the ThreadStart delegate instance.
22726
22727         * icall.c: Added the internalcall for
22728         System.Threading.Thread::Start_internal
22729
22730         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
22731
22732 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
22733
22734         * loader.c: work around the different signatures for delegates
22735         constructors csc generates in compiled code vs the ones compiled in mscorlib.
22736
22737 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22738
22739         * class.h, class.c: add mono_class_get_field_from_name ().
22740         * *: Fix C comments and other ANSI C issues.
22741
22742 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
22743
22744         * endian.h, assembly.c: fix some endianness issues.
22745
22746 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
22747
22748         * loader.h, load.c: add delegate_class to mono_defaults.
22749         Handle runtime provided methods in mono_get_method ().
22750
22751 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
22752
22753         * loader.c (mono_get_method): use pinvoke for internal call
22754
22755         * icall.c: use pinvoke for internal call
22756
22757         * loader.c (method_from_memberref): set the method name
22758
22759 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
22760
22761         * metadata.c: help the compiler generate better code for
22762         mono_class_from_mono_type ().
22763
22764 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
22765
22766         * class.c (mono_class_metadata_init): delayed computing of the
22767         class size to mono_class_metadata_init ()
22768
22769 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
22770
22771         * class.c, class.h: add an interfaces member to MonoClass.
22772         * image.c, image.h: add assembly_name field to MonoImage
22773         from the assembly table.
22774         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
22775
22776 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22777
22778         * class.c: Handle Array in mono_class_from_mono_type ().
22779         * metadata.c, pedump.c: some endian fixes.
22780
22781 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
22782
22783         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
22784         * metadata.c: fix small problem introduced with the latest commit.
22785
22786 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
22787
22788         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
22789         We don't need a MonoMetadata pointer anymore to compare signatures in
22790         mono_metadata_signature_equal (), update callers.
22791         Reduced memory usage an number of allocations for MonoMethodHeader and
22792         MonoMethodSignature.
22793
22794 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
22795
22796         * metadata.c: added compare for szarray.
22797
22798 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
22799
22800         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
22801         and add a couple more types to it and mono_defaults. Give an hint on
22802         classes that need implementing in our corlib and are referenced
22803         in mscorlib.
22804
22805 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
22806
22807         * class.h, class.c: keep track if a class is also an Enum.
22808         * loader.c: Implement a couple more types for use in libffi
22809         marshalling. Gives better diagnostics when failing to dlopen
22810         a library. Set method->klass for P/Invoke methods, too.
22811
22812 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
22813
22814         * class.c, class.h: add a MonoType this_arg to MonoClass that
22815         represents a pointer to an object of the class' type that
22816         can be used by the interpreter and later the type cache.
22817         Add best guess alignment info for valuetype objects.
22818
22819 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
22820
22821         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
22822         into MonoType: one less level of indirection and allocation and
22823         simplifies quite a bit of code. Added cache for MonoTypes that are
22824         used frequently, so that we don't need to allocate them all the time.
22825
22826 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
22827
22828         * class.c (mono_class_create_from_typedef): System.Enum is also a
22829         value type, although it does not derive from System.ValueType
22830         (maybe a bug in the ms compiler?)
22831
22832         * metadata.c (mono_type_size): return the right size for value types
22833
22834         * loader.c (mono_get_method): only initialize method header if not abstract
22835
22836         * class.c (mono_class_from_mono_type): use mono_default values. 
22837
22838 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
22839
22840         * *: use MonoClass pointers instead of <type_tokens>
22841         
22842         * class.h: new flag: metadata_inited.
22843
22844         * class.c (mono_class_metadata_init): impl.
22845         (mono_class_instance_size): impl.
22846         (mono_class_data_size): impl.
22847
22848 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
22849
22850         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
22851         MonoClass now has the name and name_space fields. 
22852         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
22853         mono_get_method () takes and optional MonoClass as argument.
22854         Removed mono_typedef_from_name() and added mono_class_token_from_name()
22855         instead that takes advantage of a map from class names to typedef
22856         tokens in MonoImage.
22857
22858 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
22859
22860         * metadata.c: zero is not a valid alignment boundary.
22861         Merge MONO_TYPE_VOID in default decoding code.
22862
22863 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
22864
22865         * image.h: merged MonoMetadata into MonoImage
22866
22867         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
22868         identify the type of elements.
22869
22870 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
22871
22872         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
22873         * cil-coff.h: split MonoMSDOSHeader and add size info.
22874         * image.c: add some consistency checks.
22875         * metadata.c: fix row size computation: one programmer
22876         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
22877         add explanation for the locator routine.
22878         Fix decoding of size in method header.
22879         
22880 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
22881
22882         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
22883         (g_concat_dir_and_file): Bring g_concat_dir_and_file
22884         function from gnome-libs.  This uses the right path separator
22885         based on the OS, and also works around a bug in some systems where
22886         a double slash is not allowed. 
22887         (default_assembly_name_resolver): Use g_concat_dir_and_file
22888         (mono_assembly_open): ditto.
22889
22890 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
22891
22892         * metadata.c (mono_metadata_signature_equal): impl.
22893
22894         * *: void is now a realy MonoType (instead of using NULL)
22895         
22896         * metadata.c (do_mono_metadata_parse_type): use
22897         mono_metadata_parse_type to parse void value.
22898
22899 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
22900
22901         * metadata.c, metadata.h: in the signature and method header store
22902         only the space required for holding the loca vars and incoming arguments.
22903
22904 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
22905
22906         * metadata.c (do_mono_metadata_parse_type): treat void like any
22907         other type (instead of assigning NULL);
22908
22909 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
22910
22911         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
22912
22913 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
22914
22915         * image.c (do_mono_image_open): added a cache for arrays.
22916
22917 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22918
22919         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
22920         decode a single column from a row in a metadata table and changes
22921         to take advantage of it in the typedef locator (gives a nice speed up).
22922         Store offset info for function params.
22923
22924 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
22925
22926         * image.h (MONO_IMAGE_IS_CORLIB): removed 
22927
22928 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
22929
22930         * assembly.c: how could mono_assembly_close () had ever worked?
22931         * metadata.c, metadata.h: provide offset info for local vars.
22932         Implement mono_type_size () to take care of alignment as well
22933         as size (it was mono_field_type_size in cli/class.c before).
22934
22935 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
22936
22937         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
22938
22939         * assembly.h (CORLIB_NAME): set to corlib.dll
22940
22941         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
22942
22943 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
22944
22945         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
22946         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
22947         tokentype.h: massive namespace cleanup.
22948
22949 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
22950
22951         * metadata.h, metadata.c: decode exception clauses when parsing method header.
22952
22953 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
22954
22955         * metadata.c (mono_metadata_free_type): added check for type !=
22956         NULL (void) before calling mono_metadata_free_type()
22957
22958 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
22959
22960         * metadata.h, row_indexes.h: added header with enumerations to use
22961         to index in the columns from tables in metadata and to decode coded
22962         tokens: we should start using this instead of embedding magic numbers
22963         all over the code.
22964
22965 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
22966
22967         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
22968         Move metadata_t info from cli_image_info_t to MonoImage, where
22969         it's easily accessible. Changed all the uses accordingly.
22970         Added the method and class caches to MonoImage.
22971         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
22972         and mono_metadata_decode_value () signature to be more consistent
22973         with the other parse functions (and simplify code). Taken advantage
22974         of zero-length array allocation with GCC. Removed reduntant (and
22975         wrong) MonoFieldType struct and use MonoParam instead. Changed
22976         mono_metadata_parse_field_type () to use common code for parsing.
22977         Added mono_metadata_typedef_from_field () and
22978         mono_metadata_typedef_from_method () to lookup a typedef index from a
22979         field or method token.
22980         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
22981
22982 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
22983
22984         * metadata.c (mono_metadata_parse_field_type): Implement. 
22985         (do_mono_metadata_parse_type): Split engine from
22986         mono_metadata_parse_type, so that we can create smaller structures
22987         for things that just have one pointer to the MonoType (look at
22988         the MonoFieldType)
22989
22990 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
22991
22992         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
22993         as Jan Gray found out, it is incorrect. 
22994
22995 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
22996
22997         * assembly.c: Implement asssembly loading.  This loads an image
22998         and loads all the referenced assemblies.  Come to think of it, we
22999         could always do lazy loading of the assemblies. 
23000
23001         * image.c (mono_image_open): Keep loaded images in a hashtable.
23002
23003         * image.h (MonoImage): Add reference count.
23004
23005 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
23006
23007         * assembly.c (mono_assembly_open): Keep track of the file name in
23008         case the assembly has no ASSEMBLY table.
23009
23010         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
23011         from get.c here.
23012
23013 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
23014
23015         * metadata.c, metadata.h: decode local vars in method header
23016         parse function. Change callers accordingly.
23017
23018 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
23019
23020         * metadata.h, cil-coff.h: protect against multiple inclusion.
23021         Added some new structures to hold information decoded from metadata:
23022         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
23023         and relevant decoding/free functions.
23024         * metadata.c: implement decoding functions. Add warning for out of bounds
23025         index in mono_metadata_locate(). Implement mono_get_method () to retreive
23026         all the info about a method signature and invocation. Remove check on
23027         uninitialized local var in parse_mh() and fix memory leak.
23028
23029 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
23030
23031         * metadata.h: More macros.
23032
23033         * tokentype.h: New file.
23034
23035 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
23036
23037         * assembly.c: added a consistency check and initialize
23038         some structures with g_new0().
23039         * metadata.c: fixed a couple more bugs in table size computation
23040         and add other checks for out-of bound access to metadata.
23041
23042 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
23043
23044         * metatada.c: fix bugs computing table sizes. Spew a
23045         warning when index in string heap is out of bounds.
23046
23047 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
23048
23049         * metadata.h: Add a couple of macros to manipulate tokens. 
23050
23051 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
23052
23053         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
23054         cli_section_tables).
23055
23056 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
23057
23058         * metadata.c (mono_metadata_user_string): New function, provides
23059         access to the UserString heap. 
23060
23061 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
23062
23063         * metadata.c: Add inline documentation.
23064
23065 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
23066
23067         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
23068         files. 
23069
23070 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
23071
23072         * typeattr.h: New file, TypeAttribute flags. 
23073
23074 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
23075
23076         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
23077         mono_assembly_ensure_section): Section loading code.
23078         (load_section_tables): Load the sections.
23079
23080         * mono/metadata/metadata.c (mono_metadata_locate_token,
23081         mono_metadata_locate): Functions to locate the information
23082         definition given a token or a table and an index.
23083         (mono_metadata_compute_table_bases): New.
23084         (compute_size): New function to compute the sizes of the various
23085         tables.
23086
23087         * mono/metadata/metadata.h: Finish listing the different index
23088         types. 
23089
23090         * mono/metadata/pedump.c: Improve to dump new information.
23091
23092 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
23093
23094         * mono/metadata/metadata.c: Entered all the tables matching
23095         Beta2. 
23096
23097         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
23098
23099
23100